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 :
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é.
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
{
"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)
{
"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
ADN de marque : profil d'entreprise, secteur, audience cible, Brand Voice et charte visuelle — contexte pour l'IA.
connected_accounts
Canaux de diffusion actifs : liste des profils connectés (parmi 15 plateformes) prêts pour publication immédiate ou programmée.
generate_post
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.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| topic | string | Requis | Thème ou message clé. |
| language | string | Optionnel | Code langue ('pl', 'en', 'de', 'es', 'fr', 'it', 'uk'). |
| platform | string | Optionnel | Plateforme cible (ex. 'linkedin'). |
| tone | string | Optionnel | Tonalité (ex. 'expert', 'décontracté'). |
generate_ideas
Générateur d'idées stratégiques : suggère des concepts de posts et accroches adaptés à votre secteur.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| topic | string | Optionnel | Thème ou sujet de campagne. |
| locale | string | Optionnel | Langue des suggestions. |
translate_post
Localisation multilingue : traduit et adapte les publications pour 7 marchés européens en conservant le Brand Voice.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| text | string | Requis | Texte du post à traduire. |
| target_language | string | Requis | Langue cible ('pl', 'en', 'de', 'es', 'fr', 'it', 'uk'). |
create_post
Création de post : crée une publication, associe les canaux et planifie la date ou diffuse instantanément.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| title | string | Requis | Titre ou en-tête. |
| content | string | Requis | Texte complet avec hashtags. |
| platforms | array | Optionnel | Liste des plateformes cibles. |
| scheduled_at | string | Optionnel | Date ISO. Omis = brouillon. |
| publish_now | boolean | Optionnel | True pour publier immédiatement. |
list_posts
Registre des publications : consultation des posts filtrés par statut : draft, scheduled, published, failed.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| status | string | Optionnel | Filtre de statut. |
| limit | number | Optionnel | Nombre max de posts (défaut 20). |
schedule_post
Planificateur : modifie ou définit la date et l'heure d'un post existant.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| post_id | string | Requis | ID du post (UUID). |
| scheduled_at | string | Requis | Nouvelle date ISO. |
publish_post
Diffusion immédiate : envoie un post existant en publication directe sur tous les réseaux assignés.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| post_id | string | Requis | ID du post (UUID). |
delete_post
Suppression : efface définitivement le post et annule les tâches de diffusion en attente.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| post_id | string | Requis | ID du post (UUID). |
analytics
Centre analytique : statistiques agrégées des impressions, interactions, mentions j'aime et commentaires par réseau.
list_brands
Gestion des marques : liste des marques/clients de l'espace de travail (formules Pro et Business).
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).
https://app.operpilot.com/api/v1/profile
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"{
"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"
}
}/channels
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"{
"channels": [
{
"id": "conn_91f8a2b3",
"platform": "facebook",
"name": "Acme Fanpage",
"isConnected": true
},
{
"id": "conn_44c21e7d",
"platform": "linkedin",
"name": "Acme Corporate",
"isConnected": true
}
]
}/posts
Renvoie la liste des publications avec filtre de statut.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| status | string (query) | Optionnel | Filtre de statut. |
| limit | number (query) | Optionnel | Nombre 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"{
"posts": [
{
"id": "c7a84e12-4215-4ff1-a8bc-19b841e42109",
"title": "Nowości w ofercie",
"status": "scheduled",
"scheduledAt": "2026-10-25T14:00:00.000Z",
"platforms": ["facebook", "linkedin"]
}
]
}/posts
Crée un post, associe les canaux et le planifie ou le publie immédiatement.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| title | string | Requis | Titre du post. |
| content | string | Requis | Contenu avec hashtags. |
| platforms | array | Optionnel | Plateformes cibles. |
| scheduled_at | string | Optionnel | Date ISO programmée. |
| publish_now | boolean | Optionnel | True 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
}'{
"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"]
}
}/posts/:id
Renvoie les détails d'un post avec les identifiants externes générés.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| id | string (path) | Requis | ID 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"{
"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" }
]
}
}/posts/:id
Permet de modifier le texte, le titre ou de changer la date planifiée.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| id | string (path) | Requis | ID du post (UUID). |
| title | string | Optionnel | Nouveau titre. |
| content | string | Optionnel | Nouveau texte. |
| scheduled_at | string | Optionnel | Nouvelle 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"
}'{
"success": true,
"post": {
"id": "c7a84e12-4215-4ff1-a8bc-19b841e42109",
"status": "scheduled",
"scheduledAt": "2026-10-25T16:00:00.000Z"
}
}/posts/:id
Supprime définitivement le post et annule les tâches associées.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| id | string (path) | Requis | ID 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"{
"success": true,
"message": "Post został pomyślnie usunięty."
}/analytics
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"{
"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 }
}
}
}/brands
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"{
"brands": [
{
"id": "brand_01a",
"name": "Acme Software",
"industry": "IT & Automation",
"isDefault": true
}
]
}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.
/ai/generate
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ètre | Type | Requis | Description |
|---|---|---|---|
| topic | string | Requis | Thème ou message. |
| language | string | Optionnel | Code langue ('pl', 'en', 'de', 'es', 'fr', 'it', 'uk'). |
| platform | string | Optionnel | Plateforme cible. |
| tone | string | Optionnel | Tonalité. |
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"
}'{
"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
}/ai/ideas
Fournit des suggestions de posts, accroches et formats adaptés à votre cible.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| topic | string | Optionnel | Thème de campagne. |
| locale | string | Optionnel | Langue 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"
}'{
"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ą..."
}
]
}/ai/translate
Traduit les publications dans 7 langues avec adaptation des idiomes locaux et du Brand Voice.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| text | string | Requis | Texte à traduire. |
| target_language | string | Requis | Langue 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"
}'{
"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 HTTP | Nom | Signification & Résolution |
|---|---|---|
| 200 OK | Success | Requête traitée avec succès. |
| 201 Created | Created | Ressource créée avec succès. |
| 400 Bad Request | Invalid Request | Champs obligatoires manquants ou invalides. |
| 401 Unauthorized | Unauthorized | Clé API manquante ou invalide dans l'en-tête Authorization. |
| 403 Forbidden | Forbidden | Clé révoquée ou permissions insuffisantes. |
| 404 Not Found | Not Found | Ressource ou publication introuvable. |
| 429 Too Many Requests | Rate Limited | Limite de requêtes atteinte (60 req/min). Veuillez patienter. |
| 500 Internal Error | Server Error | Erreur 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 :
- Ajoutez le module HTTP -> Make a request.
- Définissez l'URL : https://app.operpilot.com/api/v1/posts et Method : POST.
- Renseignez les Headers : Authorization = Bearer op_live_VOTRE_CLE et Content-Type = application/json.
- Sélectionnez Raw -> JSON Body et insérez title, content, platforms et publish_now.