klickbeesocialAide
Automatisation

API publique

Créer une clé API kbs_, appeler l'API REST de Klickbee Social pour lister vos comptes, créer, planifier et publier des posts, et gérer les erreurs.

L'API REST permet de créer et planifier des posts depuis vos scripts, Zapier, Make, n8n ou tout autre outil. Les assistants IA peuvent aussi utiliser le serveur MCP.

Créer une clé API

Les clés se gèrent dans Réglages › API & MCP (rubrique Développeurs), réservé aux Super admins.

Cliquez sur Créer une clé et donnez-lui un Nom (par exemple « Zapier » ou « script interne »).

Copiez la clé affichée. Elle commence par kbs_ et ne sera plus jamais affichée : seule une empreinte est conservée. Gardez-la secrète, comme un mot de passe.

Une clé donne accès à toutes les marques de l'espace : lecture, création, planification et publication de posts. Vous pouvez avoir jusqu'à 20 clés actives. La liste indique pour chacune sa date de création et de dernière utilisation.

Révoquer coupe immédiatement et définitivement l'accès des scripts et assistants qui utilisent la clé. En cas de perte, révoquez-la et créez-en une autre.

S'authentifier

GET https://social.klickbee.com/api/v1/brands
Authorization: Bearer kbs_votre_cle

La documentation complète au format OpenAPI 3.1 est publique : https://social.klickbee.com/api/v1/openapi.json. Importez-la dans Postman, Insomnia ou votre générateur de client.

Les endpoints

MéthodeCheminRôle
GET/api/v1/brandsLister les marques.
GET/api/v1/accounts?brandId=Lister les comptes connectés d'une marque (réseau, nom, statut, créneaux…).
GET/api/v1/accounts/{id}/next-slotProchain créneau libre de la file d'un compte (null si les 60 prochains jours sont pleins).
GET/api/v1/postsLister les posts (filtres brandId, status, from, to, pagination limit / offset).
POST/api/v1/postsCréer des posts : brouillon, planifiés, en file ou publiés tout de suite.
GET/api/v1/posts/{id}Lire un post (statut, lien, erreur…).
DELETE/api/v1/posts/{id}Supprimer un post non publié.
POST/api/v1/posts/{id}/schedulePlanifier ou déplacer un post.
POST/api/v1/posts/{id}/retryRelancer un post en échec.
DELETE/api/v1/posts/{id}/publicationRetirer un post publié de son réseau (mêmes réseaux que dans l'app).
POST/api/v1/mediaImporter un média depuis une URL dans la médiathèque.

Créer un post

curl -X POST https://social.klickbee.com/api/v1/posts \
  -H "Authorization: Bearer kbs_votre_cle" \
  -H "Content-Type: application/json" \
  -d '{
    "brandId": "…",
    "posts": [
      { "platform": "LINKEDIN", "body": "Notre nouveau guide est en ligne." },
      { "platform": "THREADS", "body": "Nouveau guide en ligne 👇" }
    ],
    "schedule": { "queue": true },
    "idempotencyKey": "guide-2026-10"
  }'
  • posts : 1 à 20 posts, un par compte. Réseaux : LINKEDIN, THREADS, INSTAGRAM, FACEBOOK, TIKTOK, YOUTUBE. Précisez socialAccountId si la marque a plusieurs comptes sur un réseau.
  • schedule : absent = brouillon ; { "at": "2026-11-02T09:00:00+01:00" } = date précise ; { "queue": true } = prochain créneau libre ; { "now": true } = publication immédiate.
  • media : jusqu'à 10 médias par post, chacun avec une url publique et son mime (PNG, JPEG, WebP, GIF, PDF, MP4, MOV). Les médias sont téléchargés et ajoutés à la médiathèque (images et PDF jusqu'à 15 Mo, vidéos jusqu'à 100 Mo).
  • firstComment : le premier commentaire.
  • TikTok exige settings.privacyLevel pour planifier ou publier.
  • idempotencyKey : renvoyer la même requête avec la même clé ne crée pas de doublon.

Limites et erreurs

L'API accepte 120 requêtes par minute et par clé. Au-delà, elle répond 429 avec un en-tête Retry-After.

Les erreurs ont la forme { "error": { "code": "…", "message": "…" } } :

CodeHTTPCause
unauthorized401Clé absente, inconnue ou révoquée.
forbidden403 / 402Action non autorisée, ou espace en lecture seule (402).
not_found404Marque, compte ou post introuvable.
validation_error400Requête invalide (le message précise le champ).
conflict409Par exemple, supprimer un post publié ou en cours de publication.
media_error422Média impossible à télécharger ou format refusé.
rate_limited429Trop de requêtes.

Sur cette page