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

1

Activez l'option API

Contactez-nous : l'option est activée sur votre compte principal (149 € HT par mois).

2

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.

3

Appelez l'API

Envoyez la clé dans l'en-tête Authorization de chaque requête, en HTTPS.

Tester votre clé
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

Programmer une publication sur deux réseaux
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"
  }'
Demander une image publicitaire, puis suivre la demande
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
Types de création v1 : 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}.

Vérifier la signature (Python)
# 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

Format d'une erreur
{
  "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_key

    Clé absente, invalide ou révoquée

  • 402
    insufficient_balance

    Solde insuffisant pour la création demandée

  • 403
    api_access_disabled

    Option API non activée sur le compte

  • 403
    insufficient_scope

    Clé en lecture seule utilisée pour écrire

  • 403
    subaccount_forbidden

    Sous-compte non autorisé pour cette clé

  • 400
    subaccount_required

    Plusieurs sous-comptes possibles : précisez subaccount_id

  • 404
    not_found · product_not_found

    Ressource introuvable (ou appartenant à un autre compte)

  • 409
    post_locked

    Publication en cours d'envoi ou déjà publiée

  • 422
    validation_error · invalid_parameter · invalid_network · invalid_schedule · invalid_media_url

    Paramètres invalides (détail dans « details »)

  • 429
    rate_limited

    Trop de requêtes : attendez « Retry-After » secondes

  • 500
    internal_error

    Erreur 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.