Listar Posts
Obtén los posts de tu workspace con filtro por estado y paginación por cursor.
Obtén los posts de tu workspace con filtro por estado y paginación por cursor.
/api/v1/postLista los posts de tu workspace, con filtro opcional por estado.
| Parámetro | Tipo | Default | Descripción |
|---|---|---|---|
status | string | — | Filtrar por estado del post. Omitir para todos los estados |
limit | number | 20 | Número de posts a retornar (1–100) |
cursor | string | — | ID de post para paginar desde ahí. Omitir para la primera página |
| Valor | Descripción |
|---|---|
PENDING | Posts programados esperando ser publicados |
PUBLISHED | Posts ya publicados en la plataforma |
DRAFT | Posts guardados pero no programados ni publicados |
FAILED | Posts que fallaron durante la publicación |
curl --request GET \
--url 'https://dopost.co/api/v1/post?status=PENDING&limit=10' \
--header 'x-api-key: <apiKey>'curl --request GET \
--url 'https://dopost.co/api/v1/post?status=PENDING&limit=10' \
--header 'x-api-key: <apiKey>'{
"posts": [
{
"id": "cm3abc123def456",
"status": "PENDING",
"platform": "INSTAGRAM",
"text": "¡Hola desde la API de dopost!",
"media": [],
"account": {
"id": "cm3xyz789ghi012",
"platform": "INSTAGRAM",
"platformUsername": "johndoe"
},
"schedule": {
"scheduledFor": "2025-12-25T12:00:00.000Z",
"status": "SCHEDULED",
"publishedAt": null
},
"jobId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"source": "api",
"createdAt": "2025-07-01T12:00:00.000Z",
"updatedAt": "2025-07-01T12:00:00.000Z"
}
],
"nextCursor": "cm3xyz789ghi012",
"hasMore": true
}{
"posts": [
{
"id": "cm3abc123def456",
"status": "PENDING",
"platform": "INSTAGRAM",
"text": "¡Hola desde la API de dopost!",
"media": [],
"account": {
"id": "cm3xyz789ghi012",
"platform": "INSTAGRAM",
"platformUsername": "johndoe"
},
"schedule": {
"scheduledFor": "2025-12-25T12:00:00.000Z",
"status": "SCHEDULED",
"publishedAt": null
},
"jobId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"source": "api",
"createdAt": "2025-07-01T12:00:00.000Z",
"updatedAt": "2025-07-01T12:00:00.000Z"
}
],
"nextCursor": "cm3xyz789ghi012",
"hasMore": true
}| Campo | Descripción |
|---|---|
posts | Array de objetos post |
nextCursor | Pasa como cursor para obtener la siguiente página. null cuando no hay más items |
hasMore | true si hay más posts después de esta página |
Los resultados se ordenan del más reciente al más antiguo. Itera usando el nextCursor:
let cursor = undefined;
do {
const params = new URLSearchParams({ status: "PENDING", limit: "50" });
if (cursor) params.set("cursor", cursor);
const res = await fetch(`https://dopost.co/api/v1/post?${params}`, {
headers: { "x-api-key": "<apiKey>" },
});
const { posts, nextCursor } = await res.json();
console.log(`Obtenidos ${posts.length} posts`);
cursor = nextCursor;
} while (cursor);let cursor = undefined;
do {
const params = new URLSearchParams({ status: "PENDING", limit: "50" });
if (cursor) params.set("cursor", cursor);
const res = await fetch(`https://dopost.co/api/v1/post?${params}`, {
headers: { "x-api-key": "<apiKey>" },
});
const { posts, nextCursor } = await res.json();
console.log(`Obtenidos ${posts.length} posts`);
cursor = nextCursor;
} while (cursor);| Status | Error | Causa |
|---|---|---|
400 | Invalid status | El valor de status no es uno de los valores permitidos |
401 | Invalid or missing API key | Header x-api-key inválido o faltante |
403 | API key does not have permission for this action | La API key no tiene el scope necesario para este endpoint |
429 | Rate limit exceeded | Demasiadas peticiones. Revisa las cabeceras X-RateLimit-* y reintenta tras el tiempo indicado |