REST API v1 & Protocole MCP • Standard 2026

Documentation REST API v1 & Model Context Protocol (MCP)

Gérez vos marques, générez du contenu IA, planifiez des publications sur 15 plateformes et intégrez OperPilot dans Claude Desktop, Cursor AI ou Make.com.

URL de base de l'API de production :

https://app.operpilot.com/api/v1

Authentification (Clé API)

Toutes les requêtes requièrent une clé API transmise dans l'en-tête Authorization sous forme de jeton Bearer.

Limites de requêtes (Rate Limits)

La limite standard est de 60 requêtes par minute par clé API. En cas de dépassement, le code 429 Too Many Requests est renvoyé.

MCP Protocol

Model Context Protocol (MCP)

Connectez OperPilot directement à Claude Desktop, Cursor AI ou tout client MCP pour un accès à 12 outils de publication en langage naturel.

Configuration pour Claude Desktop

claude_desktop_config.json
{
  "mcpServers": {
    "operpilot": {
      "command": "node",
      "args": ["-e", "fetch('https://app.operpilot.com/operpilot-mcp.mjs').then(r=>r.text()).then(eval)"],
      "env": {
        "OPERPILOT_API_KEY": "op_live_YOUR_API_KEY"
      }
    }
  }
}

Configuration pour Cursor AI (.cursor/mcp.json)

.cursor/mcp.json
{
  "mcpServers": {
    "operpilot": {
      "command": "node",
      "args": ["-e", "fetch('https://app.operpilot.com/operpilot-mcp.mjs').then(r=>r.text()).then(eval)"],
      "env": {
        "OPERPILOT_API_KEY": "op_live_YOUR_API_KEY"
      }
    }
  }
}

12 Outils MCP OperPilot

Dès connexion, votre assistant IA bénéficie d'un accès immédiat à ces 12 outils via des instructions en langage naturel.

get_profile

MCP Tool

ADN de marque : profil d'entreprise, secteur, audience cible, Brand Voice et charte visuelle — contexte pour l'IA.

Exemple de prompt dans Claude / Cursor :
“Récupère le profil de ma marque et indique-moi le ton de voix à employer.”
Retourne : Object: { name, description, industry, targetAudience, brandVoice, visualGuidelines, primaryColors, website }

connected_accounts

MCP Tool

Canaux de diffusion actifs : liste des profils connectés (parmi 15 plateformes) prêts pour publication immédiate ou programmée.

Exemple de prompt dans Claude / Cursor :
“Quels sont les comptes de réseaux sociaux actuellement associés à mon OperPilot ?”
Retourne : Array of { id, platform, name, accountType, isConnected, avatarUrl }

generate_post

MCP Tool

Rédacteur IA : génère des posts engageants avec hashtags en 7 langues (PL, EN, DE, ES, FR, IT, UK) adaptés au ton de votre marque.

Exemple de prompt dans Claude / Cursor :
“Rédige un post LinkedIn sur les avantages de l'automatisation des réseaux sociaux.”
ParamètreTypeRequisDescription
topicstringRequisThème ou message clé.
languagestringOptionnelCode langue ('pl', 'en', 'de', 'es', 'fr', 'it', 'uk').
platformstringOptionnelPlateforme cible (ex. 'linkedin').
tonestringOptionnelTonalité (ex. 'expert', 'décontracté').
Retourne : Object: { content, hashtags, suggestedPlatform, charCount }

generate_ideas

MCP Tool

Générateur d'idées stratégiques : suggère des concepts de posts et accroches adaptés à votre secteur.

Exemple de prompt dans Claude / Cursor :
“Propose 5 idées de posts éducatifs pour mon secteur pour la semaine à venir.”
ParamètreTypeRequisDescription
topicstringOptionnelThème ou sujet de campagne.
localestringOptionnelLangue des suggestions.
Retourne : Object: { ideas: Array<{ title, angle, targetFormat, hook }> }

translate_post

MCP Tool

Localisation multilingue : traduit et adapte les publications pour 7 marchés européens en conservant le Brand Voice.

Exemple de prompt dans Claude / Cursor :
“Traduis ce post en allemand avec un ton convivial et chaleureux.”
ParamètreTypeRequisDescription
textstringRequisTexte du post à traduire.
target_languagestringRequisLangue cible ('pl', 'en', 'de', 'es', 'fr', 'it', 'uk').
Retourne : Object: { translatedText, targetLanguage, notes }

create_post

MCP Tool

Création de post : crée une publication, associe les canaux et planifie la date ou diffuse instantanément.

Exemple de prompt dans Claude / Cursor :
“Crée un post 'Lancement version 2.0' et planifie-le pour demain à 10h00 sur Facebook et LinkedIn.”
ParamètreTypeRequisDescription
titlestringRequisTitre ou en-tête.
contentstringRequisTexte complet avec hashtags.
platformsarrayOptionnelListe des plateformes cibles.
scheduled_atstringOptionnelDate ISO. Omis = brouillon.
publish_nowbooleanOptionnelTrue pour publier immédiatement.
Retourne : Object: { id, title, status, scheduledAt, platforms }

list_posts

MCP Tool

Registre des publications : consultation des posts filtrés par statut : draft, scheduled, published, failed.

Exemple de prompt dans Claude / Cursor :
“Affiche les 5 prochains posts programmés dans mon calendrier.”
ParamètreTypeRequisDescription
statusstringOptionnelFiltre de statut.
limitnumberOptionnelNombre max de posts (défaut 20).
Retourne : Array of { id, title, content, status, scheduledAt, platforms, createdAt }

schedule_post

MCP Tool

Planificateur : modifie ou définit la date et l'heure d'un post existant.

Exemple de prompt dans Claude / Cursor :
“Repousse le post ID 8f7e... à vendredi prochain à 18h00.”
ParamètreTypeRequisDescription
post_idstringRequisID du post (UUID).
scheduled_atstringRequisNouvelle date ISO.
Retourne : Object: { id, status: 'scheduled', scheduledAt }

publish_post

MCP Tool

Diffusion immédiate : envoie un post existant en publication directe sur tous les réseaux assignés.

Exemple de prompt dans Claude / Cursor :
“Publie ce post maintenant sur tous les profils associés.”
ParamètreTypeRequisDescription
post_idstringRequisID du post (UUID).
Retourne : Object: { id, status: 'published', publishedAt, results }

delete_post

MCP Tool

Suppression : efface définitivement le post et annule les tâches de diffusion en attente.

Exemple de prompt dans Claude / Cursor :
“Supprime le brouillon de post ID b4c1...”
ParamètreTypeRequisDescription
post_idstringRequisID du post (UUID).
Retourne : Object: { success: true, deletedId }

analytics

MCP Tool

Centre analytique : statistiques agrégées des impressions, interactions, mentions j'aime et commentaires par réseau.

Exemple de prompt dans Claude / Cursor :
“Quelles sont nos statistiques de portée et d'engagement sur les 30 derniers jours ?”
Retourne : Object: { summary: { totalImpressions, totalEngagements, totalLikes }, platforms: { ... } }

list_brands

MCP Tool

Gestion des marques : liste des marques/clients de l'espace de travail (formules Pro et Business).

Exemple de prompt dans Claude / Cursor :
“Affiche toutes les marques associées à mon compte OperPilot.”
Retourne : Array of { id, name, industry, isDefault }
REST API

Référence REST API v1

Pour les intégrations HTTP directes avec vos backends, scripts planifiés ou plateformes no-code (Make.com, n8n, Zapier).

Base URL:https://app.operpilot.com/api/v1
GET

/profile

Récupérer le profil et Brand Voice de la marque

Renvoie la charte complète : nom, secteur, description, audience cible, Brand Voice et palette de couleurs.

curl -X GET "https://app.operpilot.com/api/v1/profile" \
  -H "Authorization: Bearer op_live_YOUR_API_KEY" \
  -H "Accept: application/json"
Exemple de réponse (HTTP 200 OK) :
200 OK • JSON
{
  "profile": {
    "name": "Acme Software",
    "description": "Platforma automatyzacji AI dla e-commerce i marketingu B2B.",
    "industry": "Software / B2B SaaS",
    "targetAudience": "Właściciele sklepów internetowych, menedżerowie marketingu",
    "brandVoice": "Profesjonalny, oparty na faktach, technologiczny",
    "website": "https://example.com"
  }
}
GET

/channels

Lister les canaux connectés

Renvoie les comptes connectés parmi les 15 réseaux sociaux compatibles.

curl -X GET "https://app.operpilot.com/api/v1/channels" \
  -H "Authorization: Bearer op_live_YOUR_API_KEY" \
  -H "Accept: application/json"
Exemple de réponse (HTTP 200 OK) :
200 OK • JSON
{
  "channels": [
    {
      "id": "conn_91f8a2b3",
      "platform": "facebook",
      "name": "Acme Fanpage",
      "isConnected": true
    },
    {
      "id": "conn_44c21e7d",
      "platform": "linkedin",
      "name": "Acme Corporate",
      "isConnected": true
    }
  ]
}
GET

/posts

Lister les posts et calendrier

Renvoie la liste des publications avec filtre de statut.

ParamètreTypeRequisDescription
statusstring (query)OptionnelFiltre de statut.
limitnumber (query)OptionnelNombre de résultats (max 50).
curl -X GET "https://app.operpilot.com/api/v1/posts" \
  -H "Authorization: Bearer op_live_YOUR_API_KEY" \
  -H "Accept: application/json"
Exemple de réponse (HTTP 200 OK) :
200 OK • JSON
{
  "posts": [
    {
      "id": "c7a84e12-4215-4ff1-a8bc-19b841e42109",
      "title": "Nowości w ofercie",
      "status": "scheduled",
      "scheduledAt": "2026-10-25T14:00:00.000Z",
      "platforms": ["facebook", "linkedin"]
    }
  ]
}
POST

/posts

Créer un nouveau post

Crée un post, associe les canaux et le planifie ou le publie immédiatement.

ParamètreTypeRequisDescription
titlestringRequisTitre du post.
contentstringRequisContenu avec hashtags.
platformsarrayOptionnelPlateformes cibles.
scheduled_atstringOptionnelDate ISO programmée.
publish_nowbooleanOptionnelTrue pour diffusion directe.
curl -X POST "https://app.operpilot.com/api/v1/posts" \
  -H "Authorization: Bearer op_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Nowy post z API",
    "content": "Właśnie publikujemy ten wpis automatycznie przez OperPilot REST API v1 🚀",
    "platforms": ["facebook", "linkedin"],
    "publish_now": true
  }'
Exemple de réponse (HTTP 200 OK) :
200 OK • JSON
{
  "success": true,
  "post": {
    "id": "c7a84e12-4215-4ff1-a8bc-19b841e42109",
    "title": "Nowy post z API",
    "status": "scheduled",
    "scheduledAt": "2026-10-25T14:00:00.000Z",
    "platforms": ["facebook", "linkedin"]
  }
}
GET

/posts/:id

Détails et statut de publication

Renvoie les détails d'un post avec les identifiants externes générés.

ParamètreTypeRequisDescription
idstring (path)RequisID du post (UUID).
curl -X GET "https://app.operpilot.com/api/v1/posts/c7a84e12-4215-4ff1-a8bc-19b841e42109" \
  -H "Authorization: Bearer op_live_YOUR_API_KEY" \
  -H "Accept: application/json"
Exemple de réponse (HTTP 200 OK) :
200 OK • JSON
{
  "post": {
    "id": "c7a84e12-4215-4ff1-a8bc-19b841e42109",
    "title": "Jak automatyzacja oszczędza czas?",
    "status": "published",
    "targets": [
      { "platform": "facebook", "status": "published", "remotePostId": "fb_123456" },
      { "platform": "linkedin", "status": "published", "remotePostId": "urn:li:share:789" }
    ]
  }
}
PATCH

/posts/:id

Mettre à jour ou replanifier un post

Permet de modifier le texte, le titre ou de changer la date planifiée.

ParamètreTypeRequisDescription
idstring (path)RequisID du post (UUID).
titlestringOptionnelNouveau titre.
contentstringOptionnelNouveau texte.
scheduled_atstringOptionnelNouvelle date ISO.
curl -X PATCH "https://app.operpilot.com/api/v1/posts/c7a84e12-4215-4ff1-a8bc-19b841e42109" \
  -H "Authorization: Bearer op_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "scheduled_at": "2026-10-25T16:00:00.000Z"
  }'
Exemple de réponse (HTTP 200 OK) :
200 OK • JSON
{
  "success": true,
  "post": {
    "id": "c7a84e12-4215-4ff1-a8bc-19b841e42109",
    "status": "scheduled",
    "scheduledAt": "2026-10-25T16:00:00.000Z"
  }
}
DELETE

/posts/:id

Supprimer le post

Supprime définitivement le post et annule les tâches associées.

ParamètreTypeRequisDescription
idstring (path)RequisID du post (UUID).
curl -X DELETE "https://app.operpilot.com/api/v1/posts/c7a84e12-4215-4ff1-a8bc-19b841e42109" \
  -H "Authorization: Bearer op_live_YOUR_API_KEY"
Exemple de réponse (HTTP 200 OK) :
200 OK • JSON
{
  "success": true,
  "message": "Post został pomyślnie usunięty."
}
GET

/analytics

Statistiques et analytique des publications

Renvoie les impressions, interactions, likes et commentaires par réseau.

curl -X GET "https://app.operpilot.com/api/v1/analytics" \
  -H "Authorization: Bearer op_live_YOUR_API_KEY" \
  -H "Accept: application/json"
Exemple de réponse (HTTP 200 OK) :
200 OK • JSON
{
  "analytics": {
    "totalImpressions": 24500,
    "totalEngagements": 1820,
    "totalLikes": 1240,
    "totalComments": 185,
    "totalShares": 95,
    "byPlatform": {
      "facebook": { "impressions": 12000, "engagements": 920 },
      "linkedin": { "impressions": 8500, "engagements": 650 },
      "instagram": { "impressions": 4000, "engagements": 250 }
    }
  }
}
GET

/brands

Liste des marques dans l'espace de travail

Renvoie la liste des marques configurées dans l'espace de travail (Pro & Business).

curl -X GET "https://app.operpilot.com/api/v1/brands" \
  -H "Authorization: Bearer op_live_YOUR_API_KEY" \
  -H "Accept: application/json"
Exemple de réponse (HTTP 200 OK) :
200 OK • JSON
{
  "brands": [
    {
      "id": "brand_01a",
      "name": "Acme Software",
      "industry": "IT & Automation",
      "isDefault": true
    }
  ]
}
AI Engine

Moteur IA en 7 langues (Génération, Idées, Traduction)

Endpoints d'IA natifs optimisés pour la rédaction et l'adaptation culturelle sur 15 réseaux sociaux dans le respect de votre Brand Voice.

Langues de publication et de localisation prises en charge :
PL (pl) EN (en) DE (de) ES (es) FR (fr) IT (it) UK (uk)
POST

/ai/generate

Génération de post IA (7 langues)

Génère des posts conformes au Brand Voice dans l'une des 7 langues (PL, EN, DE, ES, FR, IT, UK) avec hashtags.

ParamètreTypeRequisDescription
topicstringRequisThème ou message.
languagestringOptionnelCode langue ('pl', 'en', 'de', 'es', 'fr', 'it', 'uk').
platformstringOptionnelPlateforme cible.
tonestringOptionnelTonalité.
curl -X POST "https://app.operpilot.com/api/v1/ai/generate" \
  -H "Authorization: Bearer op_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "topic": "Wprowadzenie automatyzacji social media w firmie",
    "language": "fr",
    "platform": "linkedin",
    "tone": "expert"
  }'
Exemple de réponse (HTTP 200 OK) :
200 OK • JSON
{
  "content": "Czy wiesz, że regularność w publikacji to klucz do algorytmów social media? 🚀\n\nOto 3 kroki, jak zautomatyzować publikacje bez utraty jakości...",
  "hashtags": ["#marketing", "#automatyzacja", "#socialmedia", "#productivity"],
  "language": "pl",
  "characterCount": 420
}
POST

/ai/ideas

Générateur d'idées et concepts stratégiques

Fournit des suggestions de posts, accroches et formats adaptés à votre cible.

ParamètreTypeRequisDescription
topicstringOptionnelThème de campagne.
localestringOptionnelLangue des propositions.
curl -X POST "https://app.operpilot.com/api/v1/ai/ideas" \
  -H "Authorization: Bearer op_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "topic": "Marketing tips",
    "locale": "fr"
  }'
Exemple de réponse (HTTP 200 OK) :
200 OK • JSON
{
  "ideas": [
    {
      "title": "5 błędów w planowaniu postów, które obcinają zasięg",
      "angle": "Post edukacyjny / checklista",
      "targetFormat": "Karuzela lub wątek",
      "hook": "Robisz to co tydzień? Algorytmy tego nie lubią..."
    }
  ]
}
POST

/ai/translate

Traduction et adaptation culturelle de posts

Traduit les publications dans 7 langues avec adaptation des idiomes locaux et du Brand Voice.

ParamètreTypeRequisDescription
textstringRequisTexte à traduire.
target_languagestringRequisLangue cible ('pl', 'en', 'de', 'es', 'fr', 'it', 'uk').
curl -X POST "https://app.operpilot.com/api/v1/ai/translate" \
  -H "Authorization: Bearer op_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Nasz nowy produkt jest już dostępny w sprzedaży!",
    "target_language": "de"
  }'
Exemple de réponse (HTTP 200 OK) :
200 OK • JSON
{
  "translatedText": "Did you know that consistency is the #1 factor in social media reach? 🚀\n\nHere are 3 ways to automate your schedule while keeping human touch...",
  "targetLanguage": "en"
}

Codes d'erreur et limites

L'API OperPilot respecte les codes HTTP standard avec des charges utiles JSON explicatives.

Code HTTPNomSignification & Résolution
200 OKSuccessRequête traitée avec succès.
201 CreatedCreatedRessource créée avec succès.
400 Bad RequestInvalid RequestChamps obligatoires manquants ou invalides.
401 UnauthorizedUnauthorizedClé API manquante ou invalide dans l'en-tête Authorization.
403 ForbiddenForbiddenClé révoquée ou permissions insuffisantes.
404 Not FoundNot FoundRessource ou publication introuvable.
429 Too Many RequestsRate LimitedLimite de requêtes atteinte (60 req/min). Veuillez patienter.
500 Internal ErrorServer ErrorErreur interne du serveur. Contactez kontakt@operpilot.com.

Automatisation No-Code (Make.com, Zapier, n8n)

Connectez aisément OperPilot à vos scénarios Make.com ou Zapier à l'aide d'un module HTTP standard :

Étapes de configuration dans Make.com :

  1. Ajoutez le module HTTP -> Make a request.
  2. Définissez l'URL : https://app.operpilot.com/api/v1/posts et Method : POST.
  3. Renseignez les Headers : Authorization = Bearer op_live_VOTRE_CLE et Content-Type = application/json.
  4. Sélectionnez Raw -> JSON Body et insérez title, content, platforms et publish_now.