> ## 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.

# Obtener User Profiles

> Obtén todos los perfiles asociados al primary profile.

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} />

Obtén todos los perfiles asociados al primary profile. El Primary Profile no se devuelve en los resultados.

Por motivos de seguridad, los Profile Keys no se devuelven mediante esta llamada GET. Consulta [aquí](/apis/profiles/create-profile) para más información.

## Parámetros de cabecera

<HeaderAPI noProfileKey />

## Parámetros de consulta

<ParamField query="title" type="string">
  Devuelve solo el perfil asociado al título codificado en URL.
</ParamField>

<ParamField query="refId" type="string">
  Devuelve solo el perfil asociado al `refId` indicado. El refId se devolvió durante la
  creación del perfil o desde el endpoint /user.
</ParamField>

<ParamField query="hasActiveSocialAccounts" type="boolean" default={false}>
  Si es `true`, devuelve solo los perfiles que tienen al menos una cuenta social conectada
  (longitud de `activeSocialAccounts` mayor que cero). Si es `false`, devuelve solo los perfiles con cero
  cuentas sociales conectadas (longitud de `activeSocialAccounts` igual a cero).
</ParamField>

<ParamField query="includesActiveSocialAccounts" type="array">
  Filtra los perfiles para incluir aquellos cuyo `activeSocialAccounts` contiene todas las plataformas de redes sociales especificadas en la lista `includesActiveSocialAccounts`. Los perfiles pueden tener plataformas adicionales en su `activeSocialAccounts` más allá de las incluidas en `includesActiveSocialAccounts` y aun así aparecer en los resultados filtrados.

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

<ParamField query="isByokLinked" type="boolean">
  Filtra los perfiles por estado de migración a BYOK (Bring Your Own Key). Si es `true`, devuelve solo los perfiles que han completado la migración BYOK. Si es `false`, devuelve solo los perfiles que tienen una plataforma elegible para BYOK conectada pero aún no han migrado. Los perfiles sin una plataforma elegible para BYOK se excluyen cuando este filtro está activo. Cuando se omite, se devuelven todos los perfiles independientemente del estado de BYOK. Actualmente se aplica a [X/Twitter BYOK](/dashboard/connect-social-accounts/x-twitter-byo-keys).
</ParamField>

<ParamField query="actionLog" type="boolean" default={false}>
  Devuelve el historial del registro de acciones de creación y eliminación de User Profiles de los últimos 60 días y el recuento de usuarios activos utilizado para la facturación en los últimos 60 días. Nota:

  <ul className="custom-bullets">
    <li>
      Action Log: no se devolverán el título ni las etiquetas para el historial del registro de acciones anterior a marzo de 2025.
    </li>

    <li>
      User Profile Report: el periodo de tiempo puede no corresponderse con tu periodo de facturación. Por ejemplo, tu periodo de facturación podría empezar y terminar el día 10 del mes.
      Consulta tus facturas para conocer el periodo de facturación y otros detalles.
    </li>
  </ul>

  Puedes especificar un periodo de tiempo diferente estableciendo actionLog a un número de días. Por ejemplo,
  el parámetro de consulta `actionLog=10` devolverá el registro de acciones de los últimos 10 días y el recuento de usuarios activos reportado
  de los últimos 10 días. El periodo permitido es de 1 día a 365 días.
</ParamField>

<ParamField query="limit" type="number" default={5000}>
  Limita el número de perfiles devueltos. El valor predeterminado y máximo es 5000.
</ParamField>

<ParamField query="cursor" type="string">
  Si hay más perfiles por devolver y el flag `hasMore` es `true`, se devolverá `nextCursor` en la respuesta.
  Pasa este cursor al parámetro de consulta `cursor` para obtener el siguiente conjunto de perfiles.
</ParamField>

<ParamField query="include" type="string | array">
  Devuelve datos ampliados del perfil para la resolución de problemas. Requiere el parámetro `refId` (búsqueda de un único perfil).

  Valores (cadena separada por comas o array): `suspension`, `socialHealth`, `linkingErrors`, `activity`, `quota`, `unlinkHistory`, `actionLog`.

  <ul className="custom-bullets">
    <li>`suspension` - isSuspended, reason, suspendedAt, unsuspendAt, suspensionCount</li>
    <li>`socialHealth` - por plataforma: linked, linkedAt, relinkRecommended, messagingEnabled, tokenExpiresAt</li>
    <li>`linkingErrors` - por plataforma: code, message, details, createdAt</li>
    <li>`activity` - timestamps de lastApiCall y lastPost</li>
    <li>`quota` - used, limit</li>
    <li>`unlinkHistory` - última desvinculación: platform, source (user/system), details, createdAt</li>
    <li>`actionLog` - historial de acciones del perfil (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>
