Développeurs
L'API SocialBrainAI
Pilotez vos sous-comptes depuis votre propre logiciel : publications, créations, solde et consommation, sans passer par l’interface.
Option API : 149 € HT par mois pour tout le compte · créations payées à l’usage sur votre solde
Démarrage rapide
Votre premier appel en 3 étapes
Activez l'option API
Contactez-nous : l'option est activée sur votre compte principal (149 € HT par mois).
Créez une clé
Dans l'appli : Réglages → API. Choisissez ses droits (lecture seule, ou lecture et écriture) et, si besoin, les sous-comptes autorisés. Copiez-la : elle n'est affichée qu'une fois.
Appelez l'API
Envoyez la clé dans l'en-tête Authorization de chaque requête, en HTTPS.
curl https://socialbrainai.com/api/public/v1/me \
-H "Authorization: Bearer sba_live_VOTRE_CLE"Authentification
- En-tête :
Authorization: Bearer sba_live_… - Une clé appartient au compte principal ; elle peut être limitée à certains sous-comptes.
- Droits : lecture seule, ou lecture et écriture (publications et créations payantes).
- Nous ne gardons qu’une empreinte de la clé : perdue, elle se révoque et se remplace.
Limites
- 60 requêtes par minute et par clé (en-têtes
X-RateLimit-*). - Au-delà : réponse 429 avec
Retry-After. - Listes : 100 éléments maximum par page (
limit,offset). - Publications : 10 médias maximum, adresses https:// publiques.
Règles
- Une publication créée par l’API attend votre validation, sauf si vous l’avez désactivée dans l’appli.
- Une création est payée d’avance au prix du catalogue (HT) sur le solde du compte principal.
- Une création lancée n’est pas remboursée automatiquement ; en cas de souci, faites une réclamation depuis l’appli.
Exemples
Publier et créer depuis votre logiciel
curl -X POST https://socialbrainai.com/api/public/v1/posts \
-H "Authorization: Bearer sba_live_VOTRE_CLE" \
-H "Content-Type: application/json" \
-d '{
"subaccount_id": "ID_DU_SOUS_COMPTE",
"networks": ["instagram", "facebook"],
"caption": "Nouvelle collection disponible en boutique !",
"hashtags": "#nouveaute #mode",
"media_urls": ["https://votre-site.example/images/collection.jpg"],
"scheduled_at": "2026-11-02T09:30:00Z"
}'curl -X POST https://socialbrainai.com/api/public/v1/generations \
-H "Authorization: Bearer sba_live_VOTRE_CLE" \
-H "Content-Type: application/json" \
-d '{
"subaccount_id": "ID_DU_SOUS_COMPTE",
"type": "image",
"params": { "product_id": "ID_DU_PRODUIT", "network": "instagram", "language": "fr" }
}'
# Réponse 202 : { "id": "…", "status": "pending", "price_eur": … }
curl https://socialbrainai.com/api/public/v1/generations/ID_DE_LA_DEMANDE \
-H "Authorization: Bearer sba_live_VOTRE_CLE"Référence
Les points d'accès
Adresse de base : https://socialbrainai.com/api/public/v1
- GET
/meLa clé utilisée, ses droits et votre compte - GET
/subaccountsVos sous-comptes (marques) accessibles avec la clé - GET
/balanceSolde prépayé du compte principal (en euros) - GET
/usage?from=&to=&subaccount_id=Consommation par sous-compte sur une période - GET
/catalogTypes de créations disponibles et leurs prix HT - GET
/posts?subaccount_id=&status=&network=Lister les publications - POST
/postsCréer une publication (une par réseau ciblé)écriture - GET
/posts/{id}Lire une publication - PATCH
/posts/{id}Modifier une publication pas encore publiéeécriture - POST
/posts/{id}/scheduleProgrammer une publicationécriture - DELETE
/posts/{id}Supprimer une publicationécriture - POST
/generationsDemander une création (payée d'avance sur le solde)écriture - GET
/generationsLister vos demandes de création - GET
/generations/{id}Suivre une demande : statut et résultat - GET
/creations?subaccount_id=Créations terminées d'un sous-compte
text_post, carousel, image, product_video — paramètres et prix à jour via GET /catalog. Détail complet : spécification OpenAPI.Être prévenu automatiquement
Indiquez une adresse de rappel https:// dans Réglages → API. Nous y envoyons un message JSON signé quand une création est prête (generation.completed) ou a échoué (generation.failed). Vérifiez la signature avec le secret affiché à l’enregistrement de l’adresse. Un seul envoi par événement : vous pouvez toujours relire l’état avec GET /generations/{id}.
# En-têtes reçus : X-SBA-Event, X-SBA-Timestamp, X-SBA-Signature
import hmac, hashlib
def signature_valide(secret: str, timestamp: str, corps_brut: bytes, signature: str) -> bool:
attendu = "sha256=" + hmac.new(secret.encode(), timestamp.encode() + b"." + corps_brut,
hashlib.sha256).hexdigest()
return hmac.compare_digest(attendu, signature)Erreurs
Des erreurs claires, en anglais et en français
{
"error": {
"code": "insufficient_scope",
"message": "This API key is read-only.",
"message_fr": "Cette clé d'API est en lecture seule.",
"request_id": "req_4b1f0c9e2a7d4c11a0e3"
}
}- 401
missing_api_key · invalid_api_key · revoked_api_keyClé absente, invalide ou révoquée
- 402
insufficient_balanceSolde insuffisant pour la création demandée
- 403
api_access_disabledOption API non activée sur le compte
- 403
insufficient_scopeClé en lecture seule utilisée pour écrire
- 403
subaccount_forbiddenSous-compte non autorisé pour cette clé
- 400
subaccount_requiredPlusieurs sous-comptes possibles : précisez subaccount_id
- 404
not_found · product_not_foundRessource introuvable (ou appartenant à un autre compte)
- 409
post_lockedPublication en cours d'envoi ou déjà publiée
- 422
validation_error · invalid_parameter · invalid_network · invalid_schedule · invalid_media_urlParamètres invalides (détail dans « details »)
- 429
rate_limitedTrop de requêtes : attendez « Retry-After » secondes
- 500
internal_errorErreur de notre côté : réessayez plus tard
Besoin de l’API pour vos clients ?
Écrivez-nous : nous activons l’option sur votre compte et répondons à vos questions techniques.