KKreatoAI/Documentation API

Comptes connectés

Un espace de travail peut connecter plusieurs comptes d'un même réseau — deux pages Facebook, deux comptes TikTok, plusieurs profils LinkedIn. GET /v2/accounts liste ces comptes et vous donne l'identifiant à placer dans targets pour publier sur celui que vous voulez.

Principe

GET
/v2/accounts

Lister les comptes connectés et leurs identifiants

Scope requis : accounts:read ou publish:posts — lister ses comptes étant un prérequis de la publication, une clé déjà autorisée à publier n'a rien à changer. Seuls les réseaux publiables par l'API sont listés (WhatsApp Business dispose de sa propre logique de modèles et n'est pas une cible de /v2/posts).

Lister les comptes

curl https://api.kreatoai.com/v2/accounts \
  -H "x-api-key: sk-kre-v1-votre_cle"
// 200 OK
{
  "items": [
    {
      "id": "a3f27c9e-4b12-4c8d-9f01-7d2e5b8a1c34",
      "platform": "facebook",
      "name": "Campus Plus",
      "avatarUrl": "https://…/photo.jpg",
      "isDefault": true,
      "connectedAt": "2026-07-22T09:14:02.000Z"
    },
    {
      "id": "b71c04d2-8e35-4a90-b6f7-1c9d3e0a5f28",
      "platform": "facebook",
      "name": "AgriBusiness Afrique",
      "avatarUrl": "https://…/photo.jpg",
      "isDefault": false,
      "connectedAt": "2026-07-23T11:02:47.000Z"
    },
    {
      "id": "c04e91a7-2d68-4f13-8b5c-6a0f7e2d9b41",
      "platform": "linkedin",
      "name": "Nafiou Tino",
      "avatarUrl": null,
      "isDefault": true,
      "connectedAt": "2026-06-30T16:45:11.000Z"
    }
  ]
}
ChampDescription
idL'identifiant à passer en channelId lors d'une publication
platformfacebook, instagram, linkedin ou tiktok
nameNom du compte chez le réseau. null tant que le réseau ne l'a pas encore communiqué
avatarUrlPhoto de profil, quand le réseau en expose une
isDefaultCompte visé quand vous écrivez seulement le nom du réseau
connectedAtDate de connexion du compte à KreatoAI

Ces identifiants sont stables : ils ne changent pas tant que le compte n'est pas déconnecté. Récupérez-les une fois et stockez-les dans votre intégration plutôt que d'appeler /v2/accounts avant chaque publication. Vous pouvez aussi les copier depuis l'interface, sur la page Canaux du tableau de bord (bouton « ID API » sous chaque compte).

Cibler un compte précis

Dans targets, une cible s'écrit de deux manières — et les deux formes se mélangent librement dans le même appel :

curl -X POST https://api.kreatoai.com/v2/posts \
  -H "x-api-key: sk-kre-v1-votre_cle" \
  -H "Content-Type: application/json" \
  -d '{
    "targets": [
      { "platform": "facebook", "channelId": "a3f27c9e-4b12-4c8d-9f01-7d2e5b8a1c34" },
      { "platform": "facebook", "channelId": "b71c04d2-8e35-4a90-b6f7-1c9d3e0a5f28" },
      "linkedin"
    ],
    "content": "Notre nouvelle offre est en ligne !"
  }'

Un identifiant qui n'appartient pas à votre espace, ou qui ne correspond pas au réseau indiqué, est rejeté avec channel_not_connected. Deux cibles pointant sur le même compte donnent duplicate_target — en revanche, deux pages Facebook différentes sont parfaitement valides.

Le compte par défaut

Écrire simplement "facebook" vise le compte marqué isDefault: true : le plus ancien compte connecté de ce réseau. Ce choix est stable dans le temps — connecter une nouvelle page ne déplace pas la cible de vos automatisations existantes.

Si votre espace n'a qu'un compte par réseau, ce raccourci suffit et rien ne change pour vous. Dès que vous en connectez plusieurs, nommez explicitement le compte : c'est la seule écriture qui dit sans ambiguïté où vous publiez.

Retrouver le compte dans les réponses

Chaque cible renvoyée par /v2/posts porte accountId et accountName : avec trois pages Facebook, vous savez laquelle a réussi et laquelle a échoué.

{
  "targets": [
    { "platform": "facebook", "accountId": "a3f27c9e-…", "accountName": "Campus Plus",
      "status": "succeeded", "postUrl": "https://facebook.com/…" },
    { "platform": "facebook", "accountId": "b71c04d2-…", "accountName": "AgriBusiness Afrique",
      "status": "failed", "failReason": "…", "failType": "permanent" }
  ]
}

Les webhooks transportent les mêmes champs, pour router une notification vers la bonne équipe sans interroger l'API. Sur les publications créées avant l'arrivée du multi-comptes, accountId vaut null.