curl \
-H "Authorization: Bearer API_KEY" \
-X GET https://api.ayrshare.com/api/profiles
curl \
-H "Authorization: Bearer API_KEY" \
-X GET "https://api.ayrshare.com/api/profiles?refId=160c8700bd6ade&include=suspension,socialHealth,activity,quota"
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);
import requests
headers = {'Authorization': 'Bearer API_KEY'}
r = requests.get('https://api.ayrshare.com/api/profiles', headers=headers)
print(r.json())
<?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);
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}");
}
}
}
}
}
{
"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
}
}
{
"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"
}
],
"userProfileReport": [
{
"reported": "2025-04-01T08:00:16.632Z",
"userProfilesCount": 135
},
{
"reported": "2025-03-31T08:00:22.651Z",
"userProfilesCount": 135
}
]
},
"lastUpdated": "2025-06-14T15:56:02.260Z",
"nextUpdate": "2025-06-14T16:01:02.260Z"
}
{
"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
}
}
Profiles
Obtener User Profiles
Obtén todos los perfiles asociados al primary profile.
GET
/
profiles
curl \
-H "Authorization: Bearer API_KEY" \
-X GET https://api.ayrshare.com/api/profiles
curl \
-H "Authorization: Bearer API_KEY" \
-X GET "https://api.ayrshare.com/api/profiles?refId=160c8700bd6ade&include=suspension,socialHealth,activity,quota"
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);
import requests
headers = {'Authorization': 'Bearer API_KEY'}
r = requests.get('https://api.ayrshare.com/api/profiles', headers=headers)
print(r.json())
<?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);
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}");
}
}
}
}
}
{
"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
}
}
{
"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"
}
],
"userProfileReport": [
{
"reported": "2025-04-01T08:00:16.632Z",
"userProfilesCount": 135
},
{
"reported": "2025-03-31T08:00:22.651Z",
"userProfilesCount": 135
}
]
},
"lastUpdated": "2025-06-14T15:56:02.260Z",
"nextUpdate": "2025-06-14T16:01:02.260Z"
}
{
"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
}
}
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í para más información.
Parámetros de cabecera
Parámetros de consulta
string
Devuelve solo el perfil asociado al título codificado en URL.
string
Devuelve solo el perfil asociado al
refId indicado. El refId se devolvió durante la
creación del perfil o desde el endpoint /user.boolean
predeterminado: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).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.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.boolean
predeterminado: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 diario de User Profiles de los últimos 60 días. Nota:
- Action Log: no se devolverán el título ni las etiquetas para el historial del registro de acciones anterior a marzo de 2025.
- 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.
actionLog=10 devolverá el registro de acciones de los últimos 10 días y el recuento diario de User Profiles
de los últimos 10 días. El periodo permitido es de 1 día a 365 días.number
predeterminado:5000
Limita el número de perfiles devueltos. El valor predeterminado y máximo es 5000.
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.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, state.suspension- isSuspended, reason, suspendedAt, unsuspendAt, suspensionCountsocialHealth- por plataforma: linked, linkedAt, relinkRecommended, messagingEnabled, tokenExpiresAtlinkingErrors- por plataforma: code, message, details, createdAtactivity- timestamps de lastApiCall y lastPostquota- used, limitunlinkHistory- última desvinculación: platform, source (user/system), details, createdAtactionLog- historial de acciones del perfil (create/update/delete)state- por red: un único valorstatenormalizado, mássince,actionable,messageyhelpUrl
state, así que
una red que nunca se ha vinculado devuelve unlinked en lugar de omitirse.
Se devuelve exactamente un valor state por red, resuelto en este orden
cuando se cumple más de una condición:state | Significado | actionable |
|---|---|---|
suspended | La cuenta está suspendida, por lo que la red no puede usarse ni vincularse. | false |
unlinked | La red no está vinculada a este perfil. | true |
identityVerificationRequired | Meta exige que el titular de la cuenta vuelva a verificar su identidad. Publicar devuelve code: 326. | true |
restricted | El token de acceso ya no es válido. Vuelve a vincular para restaurar el acceso. | true |
rateLimited | La cuenta superó su límite de tasa de la API. Se restablece automáticamente al final del día. | false |
linked | Vinculada y en buen estado. | false |
actionable indica si el usuario final puede actuar para resolver el estado, así que
es lo que decide si tu fila muestra un botón. since se incluye
solo cuando hay una marca de tiempo registrada para ese estado, y se omite
en caso contrario - en particular para restricted, que no registra ninguna fecha.curl \
-H "Authorization: Bearer API_KEY" \
-X GET https://api.ayrshare.com/api/profiles
curl \
-H "Authorization: Bearer API_KEY" \
-X GET "https://api.ayrshare.com/api/profiles?refId=160c8700bd6ade&include=suspension,socialHealth,activity,quota"
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);
import requests
headers = {'Authorization': 'Bearer API_KEY'}
r = requests.get('https://api.ayrshare.com/api/profiles', headers=headers)
print(r.json())
<?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);
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}");
}
}
}
}
}
{
"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
}
}
{
"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"
}
],
"userProfileReport": [
{
"reported": "2025-04-01T08:00:16.632Z",
"userProfilesCount": 135
},
{
"reported": "2025-03-31T08:00:22.651Z",
"userProfilesCount": 135
}
]
},
"lastUpdated": "2025-06-14T15:56:02.260Z",
"nextUpdate": "2025-06-14T16:01:02.260Z"
}
{
"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
}
}