API des contenus
L’API des contenus fournit des points de terminaison pour créer, programmer, consulter et annuler des tâches de publication, ainsi que pour téléverser des médias.
📌 Points de terminaison (Endpoints)
Section intitulée « 📌 Points de terminaison (Endpoints) »| Méthode | Chemin | Description | Portée (Scope) requise |
|---|---|---|---|
POST | /v1/brand/contents/uploads | Générer une URL PUT pré-signée pour les téléchargements d’images et de vidéos | publishing:create ou * |
POST | /v1/brand/contents | Soumettre un post immédiat ou programmé (202 Accepted) | publishing:create ou * |
GET | /v1/brand/contents | Lister les contenus de la marque avec pagination et filtres de statut | publishing:read ou * |
GET | /v1/brand/contents/{content_id} | Récupérer les détails du contenu et le résultat de la tâche de publication | publishing:read ou * |
DELETE | /v1/brand/contents/{content_id}/cancel | Annuler un post programmé avant le début du traitement | publishing:delete ou * |
1. URL pré-signée de téléchargement de média (POST /v1/brand/contents/uploads)
Section intitulée « 1. URL pré-signée de téléchargement de média (POST /v1/brand/contents/uploads) »Pour joindre des médias aux publications, demandez une URL de téléchargement pré-signée et téléchargez le binaire directement sur le stockage S3/R2 via HTTP PUT.
Formats de médias pris en charge
Section intitulée « Formats de médias pris en charge »- Images (Max 20 Mo, expiration de l’URL à 300s) :
image/jpeg,image/png,image/webp,image/gif - Vidéos (Max 500 Mo, expiration de l’URL à 600s) :
video/mp4,video/quicktime(.mov),video/webm
Exemple de requête
Section intitulée « Exemple de requête »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 }'Exemple de réponse (200 OK)
Section intitulée « Exemple de réponse (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}Télécharger le binaire via PUT
Section intitulée « Télécharger le binaire via PUT »curl -X PUT "<upload_url>" \ -H "Content-Type: image/png" \ --data-binary "@/path/to/launch-banner.png"2. Publier du contenu (POST /v1/brand/contents)
Section intitulée « 2. Publier du contenu (POST /v1/brand/contents) »Soumettez du texte avec l’asset_ref téléchargé pour créer une tâche de publication.
Champs du corps de la requête
Section intitulée « Champs du corps de la requête »| Champ | Type | Requis | Description |
|---|---|---|---|
connection_id | string | Requis | ID de la connexion SNS cible (API des connexions) |
idempotency_key | string | Requis | Clé unique générée par le client empêchant les soumissions en double |
text | string | Optionnel | Texte du corps de la publication |
media | array | Optionnel | Tableau d’objets multimédias avec url ou asset_ref |
scheduled_for | string | Optionnel | Horodatage ISO 8601 pour la programmation. Omettre pour une publication immédiate |
thread_posts | array | Optionnel | Publications supplémentaires pour le chaînage de conversations sur Threads |
provider_settings | object | Optionnel | Paramètres spécifiques à la plateforme (ex: catégorie YouTube) |
Exemple de requête (Publication immédiate)
Section intitulée « Exemple de requête (Publication immédiate) »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" } ] }'Exemple de réponse (202 Accepted)
Section intitulée « Exemple de réponse (202 Accepted) »{ "content_id": "content_01jm8za2example", "status": "scheduled", "publish_job_id": "job_01jm8za2jobexample", "connection_id": "conn_01jm8x9k2example", "idempotency_key": "launch-2026-001"}3. Lister et inspecter le contenu
Section intitulée « 3. Lister et inspecter le contenu »Lister le contenu (GET /v1/brand/contents)
Section intitulée « Lister le contenu (GET /v1/brand/contents) »curl -X GET "https://api.ankk.app/v1/brand/contents?status=published&limit=20" \ -H "Authorization: Bearer spk_live_xxxxxxxx"Obtenir les détails du contenu (GET /v1/brand/contents/{content_id})
Section intitulée « Obtenir les détails du contenu (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. Annuler une publication programmée (DELETE /v1/brand/contents/{content_id}/cancel)
Section intitulée « 4. Annuler une publication programmée (DELETE /v1/brand/contents/{content_id}/cancel) »Annulez une publication au statut scheduled avant le début de son exécution.
curl -X DELETE "https://api.ankk.app/v1/brand/contents/content_01jm8za2example/cancel" \ -H "Authorization: Bearer spk_live_xxxxxxxx"