> ## Documentation Index
> Fetch the complete documentation index at: https://www.ayrshare.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Obtenir les profils d'utilisateur

> Obtenez tous les profils associés au profil principal.

export const PlansAvailable = ({plans = [], maxPackRequired}) => {
  let displayPlans = plans;
  if (plans && plans.length === 1) {
    const lowerCasePlan = plans[0].toLowerCase();
    if (lowerCasePlan === "business") {
      displayPlans = ["Launch", "Business", "Enterprise"];
    } else if (lowerCasePlan === "premium") {
      displayPlans = ["Premium", "Launch", "Business", "Enterprise"];
    }
  }
  return <Note>
Available on {displayPlans.length === 1 ? "the " : ""}
{displayPlans.join(", ").replace(/\b\w/g, l => l.toUpperCase())}{" "}
{displayPlans.length > 1 ? "plans" : "plan"}.

{maxPackRequired && <span onClick={() => window.open('https://www.ayrshare.com/docs/additional/maxpack', '_self')} className="flex items-center mt-2 cursor-pointer">
 <span className="px-1.5 py-0.5 rounded text-sm" style={{
    backgroundColor: '#C264B6',
    color: 'white',
    fontSize: '12px'
  }}>
   Max Pack required
 </span>
</span>}
</Note>;
};

export const HeaderAPI = ({noProfileKey, profileKeyRequired}) => <>
    <ParamField header="Authorization" type="string" required>
      <a href="/apis/overview#authorization">API Key</a> of the Primary Profile.
      <br />
      <br />
      Format: <code>Authorization: Bearer API_KEY</code>
    </ParamField>
    {!noProfileKey && (profileKeyRequired ? <ParamField header="Profile-Key" type="string" required>
          <a href="/apis/overview#profile-key-format">Profile Key</a> of a User Profile.
          <br />
          <br />
          Format: <code>Profile-Key: PROFILE_KEY</code>
        </ParamField> : <ParamField header="Profile-Key" type="string">
          <a href="/apis/overview#profile-key-format">Profile Key</a> of a User Profile.
          <br />
          <br />
          Format: <code>Profile-Key: PROFILE_KEY</code>
        </ParamField>)}
  </>;

<PlansAvailable plans={["business"]} maxPackRequired={false} />

Obtenez tous les profils associés au profil principal. Le profil principal n'est pas retourné dans les résultats.

Pour des raisons de sécurité, les clés de profil ne sont pas retournées via cet appel GET. Veuillez consulter [ici](/apis/profiles/create-profile) pour plus d'informations.

## Paramètres d'en-tête

<HeaderAPI noProfileKey />

## Paramètres de requête

<ParamField query="title" type="string">
  Retourne uniquement le profil associé au titre encodé en URL.
</ParamField>

<ParamField query="refId" type="string">
  Retourne uniquement le profil associé au `refId` donné. Le refId a été retourné lors de la
  création du profil ou depuis le point de terminaison /user.
</ParamField>

<ParamField query="hasActiveSocialAccounts" type="boolean" default={false}>
  Si `true`, retourne uniquement les profils qui ont au moins un compte social connecté
  (longueur de `activeSocialAccounts` supérieure à zéro). Si `false`, retourne uniquement les profils avec zéro
  compte social connecté (longueur de `activeSocialAccounts` égale à zéro).
</ParamField>

<ParamField query="includesActiveSocialAccounts" type="array">
  Filtrez les profils pour inclure ceux dont `activeSocialAccounts` contient toutes les plateformes de réseaux sociaux spécifiées dans la liste `includesActiveSocialAccounts`. Les profils peuvent avoir des plateformes supplémentaires dans leur `activeSocialAccounts` en plus de celles listées dans `includesActiveSocialAccounts` tout en étant inclus dans les résultats filtrés.

  Valeurs : `bluesky`, `facebook`, `gmb`, `instagram`, `linkedin`, `pinterest`, `reddit`, `snapchat`, `telegram`, `threads`, `tiktok`, `twitter`, `youtube`.
</ParamField>

<ParamField query="isByokLinked" type="boolean">
  Filtrez les profils selon le statut de migration BYOK (Bring Your Own Key). Si `true`, retourne uniquement les profils qui ont terminé la migration BYOK. Si `false`, retourne uniquement les profils qui ont une plateforme éligible BYOK connectée mais qui n'ont pas encore migré. Les profils sans plateforme éligible BYOK sont exclus lorsque ce filtre est défini. Lorsqu'il est omis, tous les profils sont retournés indépendamment du statut BYOK. S'applique actuellement à [X/Twitter BYOK](/dashboard/connect-social-accounts/x-twitter-byo-keys).
</ParamField>

<ParamField query="actionLog" type="boolean" default={false}>
  Retourne l'historique du journal d'actions de création et de suppression des profils d'utilisateur pour les 60 derniers jours ainsi que le nombre d'utilisateurs actifs utilisé pour la facturation pour les 60 derniers jours. Remarque :

  <ul className="custom-bullets">
    <li>
      Journal d'actions : le titre et les étiquettes ne seront pas retournés pour l'historique du journal d'actions antérieur à mars 2025.
    </li>

    <li>
      Rapport de profils d'utilisateur : la période peut ne pas correspondre à votre période de facturation. Par exemple, votre période de facturation peut commencer et se terminer le 10 du mois.
      Consultez vos factures pour la période de facturation et d'autres détails.
    </li>
  </ul>

  Vous pouvez spécifier une période différente en définissant actionLog sur un nombre de jours. Par exemple,
  le paramètre de requête `actionLog=10` retournera le journal d'actions pour les 10 derniers jours et le nombre d'utilisateurs actifs signalé
  pour les 10 derniers jours. La période autorisée est de 1 jour à 365 jours.
</ParamField>

<ParamField query="limit" type="number" default={5000}>
  Limite le nombre de profils retournés. La valeur par défaut et maximale est de 5000.
</ParamField>

<ParamField query="cursor" type="string">
  S'il y a des profils supplémentaires à retourner et que l'indicateur `hasMore` est `true`, le `nextCursor` sera retourné dans la réponse.
  Passez ce curseur au paramètre de requête `cursor` pour retourner l'ensemble suivant de profils.
</ParamField>

<ParamField query="include" type="string | array">
  Retourne des données de profil étendues pour le dépannage. Nécessite le paramètre `refId` (recherche d'un seul profil).

  Valeurs (chaîne séparée par des virgules ou tableau) : `suspension`, `socialHealth`, `linkingErrors`, `activity`, `quota`, `unlinkHistory`, `actionLog`.

  <ul className="custom-bullets">
    <li>`suspension` - isSuspended, reason, suspendedAt, unsuspendAt, suspensionCount</li>
    <li>`socialHealth` - Par plateforme : linked, linkedAt, relinkRecommended, messagingEnabled, tokenExpiresAt</li>
    <li>`linkingErrors` - Par plateforme : code, message, details, createdAt</li>
    <li>`activity` - horodatages lastApiCall, lastPost</li>
    <li>`quota` - used, limit</li>
    <li>`unlinkHistory` - Dernier délien : platform, source (user/system), details, createdAt</li>
    <li>`actionLog` - Historique des actions de profil (create/update/delete)</li>
  </ul>
</ParamField>

<RequestExample>
  ```javascript cURL theme={"system"}
  curl \
  -H "Authorization: Bearer API_KEY" \
  -X GET https://api.ayrshare.com/api/profiles
  ```

  ```javascript cURL (with include) theme={"system"}
  curl \
  -H "Authorization: Bearer API_KEY" \
  -X GET "https://api.ayrshare.com/api/profiles?refId=160c8700bd6ade&include=suspension,socialHealth,activity,quota"
  ```

  ```javascript JavaScript theme={"system"}
  const API_KEY = "API_KEY";

  fetch("https://api.ayrshare.com/api/profiles", {
        method: "GET",
        headers: {
          "Authorization": `Bearer ${API_KEY}`
        }
      })
        .then((res) => res.json())
        .then((json) => console.log(json))
        .catch(console.error);
  ```

  ```python Python theme={"system"}
  import requests

  headers = {'Authorization': 'Bearer API_KEY'}

  r = requests.get('https://api.ayrshare.com/api/profiles', headers=headers)

  print(r.json())
  ```

  ```php PHP theme={"system"}
  <?php

  $url = 'https://api.ayrshare.com/api/profiles';
  $apiKey = 'API_KEY'; // Replace with your actual API key

  $curl = curl_init();

  curl_setopt_array($curl, [
      CURLOPT_URL => $url,
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_HTTPGET => true,
      CURLOPT_HTTPHEADER => [
          'Content-Type: application/json',
          'Authorization: Bearer ' . $apiKey
      ],
  ]);

  $response = curl_exec($curl);

  if (curl_errno($curl)) {
      echo 'Error:' . curl_error($curl);
  } else {
      echo json_encode(json_decode($response), JSON_PRETTY_PRINT);
  }

  curl_close($curl);

  ```

  ```csharp C# theme={"system"}
  using System;
  using System.Net.Http;
  using System.Threading.Tasks;

  namespace ProfilesGETRequest_csharp
  {
  class Profiles
  {
      static async Task Main(string[] args)
      {
          string API_KEY = "API_KEY";
          string url = "https://api.ayrshare.com/api/profiles";

          using (var client = new HttpClient())
          {
              client.DefaultRequestHeaders.Add("Authorization", "Bearer " + API_KEY);

              try
              {
                  HttpResponseMessage response = await client.GetAsync(url);
                  response.EnsureSuccessStatusCode();
                  string responseBody = await response.Content.ReadAsStringAsync();
                  Console.WriteLine(responseBody);
              }
              catch (HttpRequestException e)
              {
                  Console.WriteLine($"Error: {e.Message}");
              }
          }
      }
  }
  }
  ```
</RequestExample>

<ResponseExample>
  ```javascript 200: Success theme={"system"}
  {
      "profiles": [
          {
              "status": "active",
              "title": "Digg It Title",
              "displayTitle": "Your title",
              "created": {
                  "_seconds": 1604094099,
                  "_nanoseconds": 530000000
              },
              "createdUTC": "2022-03-02T16:11:00.839Z",
              "refId": "160c8700bd6ade099b242d845e268fb986130c53",
              "activeSocialAccounts": [
                  "twitter",
                  "facebook",
                  "linkedin",
                  "instagram"
              ],
              "isByokLinked": true
          },
          {
              "status": "active",
              "title": "Super Profile",
              "created": {
                  "_seconds": 1604377627,
                  "_nanoseconds": 252000000
              },
              "createdUTC": "2022-03-02T16:11:00.839Z",
              "refId": "170a8700bd6ade099b242d845e268fb986130c53"
          },
          {
              "status": "suspended",
              "title": "Good Fun Title",
              "created": {
                  "_seconds": 1605107864,
                  "_nanoseconds": 96000000
              },
              "createdUTC": "2022-03-02T16:11:00.839Z",
              "refId": "180s8700bd6ade099b242d845e268fb986130c53",
              "activeSocialAccounts": [
                  "facebook",
                  "linkedin",
                  "youtube"
              ],
              "suspended": true
          }
      ],
      "count": 100,
      "lastUpdated": "2025-06-14T15:53:26.016Z",
      "nextUpdate": "2025-06-14T15:58:26.016Z",
      "pagination": {
          "hasMore": true,
          "nextCursor": "eyJjcmVhdGVkIjoiMjAyNS0wNi0xNFQwMjo1",
          "limit": 100
      }
  }
  ```

  ```json 200: Action Log theme={"system"}
  {
    "profiles": {
      "actionLog": [
          {
              "action": "create",
              "refId": "2d83hd839282ehd892d2999912d1dsdgldfkepw",
              "title": "Profile 1",
              "created": "2025-05-29T14:10:33.709Z"
          },
          {
              "action": "create",
              "refId": "fmm02nd9c3nm9djjffdfsfshfihvp848jcsf222s",
              "title": "Profile 2",
              "created": "2025-05-28T20:33:32.186Z"
          }
      ],
      "userProfilesReport": [
              {
                  "reported": "2025-03-31T08:00:22.651Z",
                  "userProfileCount": 135
              },
              {
                  "reported": "2025-04-01T08:00:16.632Z",
                  "userProfileCount": 135
              }
      ],
      "lastUpdated": "2025-06-14T15:56:02.260Z",
      "nextUpdate": "2025-06-14T16:01:02.260Z"
  }
  ```

  ```json 200: Include Extended Data theme={"system"}
  {
      "profiles": [
          {
              "title": "Brand Marketing",
              "refId": "160c8700bd6ade099b242d845e268fb986130c53",
              "status": "suspended",
              "activeSocialAccounts": ["twitter", "instagram"],
              "suspension": {
                  "isSuspended": true,
                  "reason": "Too many duplicate posts",
                  "suspendedAt": "2026-03-01T10:00:00.000Z",
                  "unsuspendAt": "2026-03-03T10:00:00.000Z",
                  "suspensionCount": 2
              },
              "socialHealth": {
                  "twitter": {
                      "linked": true,
                      "linkedAt": "2026-01-15T10:30:00.000Z",
                      "relinkRecommended": false,
                      "messagingEnabled": true,
                      "tokenExpiresAt": null
                  },
                  "instagram": {
                      "linked": true,
                      "linkedAt": "2026-02-01T08:00:00.000Z",
                      "relinkRecommended": true,
                      "messagingEnabled": false,
                      "tokenExpiresAt": "2026-04-01T08:00:00.000Z"
                  }
              },
              "activity": {
                  "lastApiCall": "2026-03-05T09:15:00.000Z",
                  "lastPost": "2026-03-04T14:30:00.000Z"
              },
              "quota": {
                  "used": 450,
                  "limit": 1000
              }
          }
      ],
      "count": 1,
      "pagination": {
          "hasMore": false,
          "nextCursor": null,
          "limit": 5000
      }
  }
  ```
</ResponseExample>
