API de Contenidos
La API de Contenidos proporciona puntos finales para crear, programar, cargar archivos multimedia, inspeccionar y cancelar trabajos de publicación en redes sociales.
📌 Puntos finales
섹션 제목: “📌 Puntos finales”| Método | Ruta | Descripción | Alcance requerido |
|---|---|---|---|
POST | /v1/brand/contents/uploads | Generar una URL PUT pre-firmada para cargas de imágenes y videos | publishing:create o * |
POST | /v1/brand/contents | Enviar una publicación inmediata o programada (202 Accepted) | publishing:create o * |
GET | /v1/brand/contents | Listar contenidos de la marca con paginación y filtros de estado | publishing:read o * |
GET | /v1/brand/contents/{content_id} | Recuperar detalles del contenido y el resultado del trabajo de publicación | publishing:read o * |
DELETE | /v1/brand/contents/{content_id}/cancel | Cancelar una publicación programada antes de que comience el procesamiento | publishing:delete o * |
1. URL pre-firmada para carga de multimedia (POST /v1/brand/contents/uploads)
섹션 제목: “1. URL pre-firmada para carga de multimedia (POST /v1/brand/contents/uploads)”Para adjuntar archivos multimedia a las publicaciones, solicite una URL de carga pre-firmada y cargue el binario directamente al almacenamiento S3/R2 a través de HTTP PUT.
Formatos multimedia compatibles
섹션 제목: “Formatos multimedia compatibles”- Imágenes (Máx. 20 MB, vencimiento de URL 300 s):
image/jpeg,image/png,image/webp,image/gif - Videos (Máx. 500 MB, vencimiento de URL 600 s):
video/mp4,video/quicktime(.mov),video/webm
Ejemplo de solicitud
섹션 제목: “Ejemplo de solicitud”curl -X POST "https://api.ankk.app/v1/brand/contents/uploads" \ -H "Authorization: Bearer spk_live_xxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "filename": "launch-banner.png", "content_type": "image/png", "size": 1420500 }'Ejemplo de respuesta (200 OK)
섹션 제목: “Ejemplo de respuesta (200 OK)”{ "upload_url": "https://storage.ankk.app/sns-posts/original/brand_.../launch-banner.png?X-Amz-Signature=...", "asset_ref": "https://cdn.ankk.app/sns-posts/original/brand_.../launch-banner.png", "method": "PUT", "object_key": "sns-posts/original/brand_.../launch-banner.png", "content_type": "image/png", "size": 1420500, "expires_in_seconds": 300}Cargar binario a través de PUT
섹션 제목: “Cargar binario a través de PUT”curl -X PUT "<upload_url>" \ -H "Content-Type: image/png" \ --data-binary "@/path/to/launch-banner.png"2. Publicar contenido (POST /v1/brand/contents)
섹션 제목: “2. Publicar contenido (POST /v1/brand/contents)”Envíe texto junto con el asset_ref cargado para crear un trabajo de publicación.
Campos del cuerpo de la solicitud
섹션 제목: “Campos del cuerpo de la solicitud”| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
connection_id | string | Requerido | ID de conexión de SNS de destino (API de Conexiones) |
idempotency_key | string | Requerido | Clave única generada por el cliente que evita envíos duplicados |
text | string | Opcional | Texto del cuerpo de la publicación |
media | array | Opcional | Matriz de objetos multimedia con url o asset_ref |
scheduled_for | string | Opcional | Marca de tiempo ISO 8601 para la programación. Omitir para publicación inmediata |
thread_posts | array | Opcional | Publicaciones adicionales para el encadenamiento de conversaciones en Threads |
provider_settings | object | Opcional | Configuraciones específicas de la plataforma (por ejemplo, categoría de YouTube) |
Ejemplo de solicitud (publicación inmediata)
섹션 제목: “Ejemplo de solicitud (publicación inmediata)”curl -X POST "https://api.ankk.app/v1/brand/contents" \ -H "Authorization: Bearer spk_live_xxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "connection_id": "conn_01jm8x9k2example", "idempotency_key": "launch-2026-001", "text": "Excited to launch our new product today! 🚀\nhttps://ankk.app", "media": [ { "url": "https://cdn.ankk.app/sns-posts/original/brand_.../launch-banner.png" } ] }'Ejemplo de respuesta (202 Accepted)
섹션 제목: “Ejemplo de respuesta (202 Accepted)”{ "content_id": "content_01jm8za2example", "status": "scheduled", "publish_job_id": "job_01jm8za2jobexample", "connection_id": "conn_01jm8x9k2example", "idempotency_key": "launch-2026-001"}3. Listar e inspeccionar contenido
섹션 제목: “3. Listar e inspeccionar contenido”Listar contenido (GET /v1/brand/contents)
섹션 제목: “Listar contenido (GET /v1/brand/contents)”curl -X GET "https://api.ankk.app/v1/brand/contents?status=published&limit=20" \ -H "Authorization: Bearer spk_live_xxxxxxxx"Obtener detalles del contenido (GET /v1/brand/contents/{content_id})
섹션 제목: “Obtener detalles del contenido (GET /v1/brand/contents/{content_id})”curl -X GET "https://api.ankk.app/v1/brand/contents/content_01jm8za2example" \ -H "Authorization: Bearer spk_live_xxxxxxxx"4. Cancelar publicación programada (DELETE /v1/brand/contents/{content_id}/cancel)
섹션 제목: “4. Cancelar publicación programada (DELETE /v1/brand/contents/{content_id}/cancel)”Cancele una publicación scheduled antes de que comience su ejecución.
curl -X DELETE "https://api.ankk.app/v1/brand/contents/content_01jm8za2example/cancel" \ -H "Authorization: Bearer spk_live_xxxxxxxx"