Documentazione REST API v1 & Model Context Protocol (MCP)
Gestisci brand, genera contenuti AI, programma post su 15 piattaforme e integra OperPilot in Claude Desktop, Cursor AI o Make.com.
URL di base API di produzione:
Autenticazione (API Key)
Tutte le richieste richiedono una chiave API inviata nell'header Authorization come Bearer token. Crea le chiavi nella dashboard.
Limiti di frequenza (Rate Limits)
Il limite standard è di 60 richieste al minuto per chiave API. Il superamento restituisce il codice 429 Too Many Requests.
Model Context Protocol (MCP)
Collega OperPilot direttamente a Claude Desktop, Cursor AI o qualsiasi client MCP per consentire all'AI di usare 12 strumenti dedicati.
Configurazione in 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"
}
}
}
}Configurazione in 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 Strumenti MCP OperPilot
Una volta integrato il server MCP, il tuo assistente AI accede istantaneamente a queste 12 funzioni con comandi in linguaggio naturale.
get_profile
DNA del brand: profilo aziendale, settore, target, Brand Voice e linee guida visive — contesto per l'AI.
connected_accounts
Canali attivi: elenco dei profili collegati (tra 15 piattaforme) pronti per la pubblicazione immediata o programmata.
generate_post
Copywriter AI: genera post con hashtag in 7 lingue (PL, EN, DE, ES, FR, IT, UK) perfettamente allineati alla Brand Voice.
| Parametro | Tipo | Richiesto | Descrizione |
|---|---|---|---|
| topic | string | Richiesto | Tema o messaggio principale. |
| language | string | Opzionale | Codice lingua ('pl', 'en', 'de', 'es', 'fr', 'it', 'uk'). |
| platform | string | Opzionale | Piattaforma di destinazione (es. 'linkedin'). |
| tone | string | Opzionale | Tono (es. 'esperto', 'amichevole'). |
generate_ideas
Generatore di idee strategiche: propone nuovi spunti e format adatti al tuo settore.
| Parametro | Tipo | Richiesto | Descrizione |
|---|---|---|---|
| topic | string | Opzionale | Argomento opzionale. |
| locale | string | Opzionale | Lingua delle proposte. |
translate_post
Localizzazione multilingue: traduce e adatta i post per 7 mercati europei preservando la Brand Voice.
| Parametro | Tipo | Richiesto | Descrizione |
|---|---|---|---|
| text | string | Richiesto | Testo originale da tradurre. |
| target_language | string | Richiesto | Lingua di destinazione ('pl', 'en', 'de', 'es', 'fr', 'it', 'uk'). |
create_post
Creazione post: crea un post in OperPilot, assegna i canali e imposta la data o pubblica all'istante.
| Parametro | Tipo | Richiesto | Descrizione |
|---|---|---|---|
| title | string | Richiesto | Titolo del post. |
| content | string | Richiesto | Testo completo con hashtag. |
| platforms | array | Opzionale | Elenco piattaforme. |
| scheduled_at | string | Opzionale | Data ISO. Vuoto = bozza. |
| publish_now | boolean | Opzionale | True per pubblicare subito. |
list_posts
Registro post: consulta le pubblicazioni filtrate per stato: draft, scheduled, published, failed.
| Parametro | Tipo | Richiesto | Descrizione |
|---|---|---|---|
| status | string | Opzionale | Filtro stato. |
| limit | number | Opzionale | Limite post (default 20). |
schedule_post
Pianificatore: riprogramma o assegna data e ora a un post esistente.
| Parametro | Tipo | Richiesto | Descrizione |
|---|---|---|---|
| post_id | string | Richiesto | ID del post (UUID). |
| scheduled_at | string | Richiesto | Nuova data ISO. |
publish_post
Pubblicazione immediata: invia un post esistente per la trasmissione istantanea su tutti i canali.
| Parametro | Tipo | Richiesto | Descrizione |
|---|---|---|---|
| post_id | string | Richiesto | ID del post (UUID). |
delete_post
Eliminazione: cancella definitivamente il post e annulla le trasmissioni in coda.
| Parametro | Tipo | Richiesto | Descrizione |
|---|---|---|---|
| post_id | string | Richiesto | ID del post (UUID). |
analytics
Centro analisi: metriche aggregate di impressioni, interazioni, like e commenti suddivisi per piattaforma.
list_brands
Gestione brand: elenco dei brand/clienti nell'area di lavoro (piani Pro e Business).
Riferimento REST API v1
Per integrazioni HTTP dirette con i tuoi backend, script di automazione o strumenti no-code (Make.com, n8n, Zapier).
https://app.operpilot.com/api/v1/profile
Restituisce le linee guida del brand: nome, settore, descrizione, target, stile comunicativo e palette cromatica.
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
Restituisce i profili connessi tra i 15 canali social supportati.
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
Restituisce le pubblicazioni con filtro per stato.
| Parametro | Tipo | Richiesto | Descrizione |
|---|---|---|---|
| status | string (query) | Opzionale | Filtro stato. |
| limit | number (query) | Opzionale | Limite (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
Crea un post, associa i canali e lo programma o pubblica all'istante.
| Parametro | Tipo | Richiesto | Descrizione |
|---|---|---|---|
| title | string | Richiesto | Titolo del post. |
| content | string | Richiesto | Testo con hashtag. |
| platforms | array | Opzionale | Piattaforme di destinazione. |
| scheduled_at | string | Opzionale | Data ISO programmata. |
| publish_now | boolean | Opzionale | True per invio immediato. |
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
Restituisce i dettagli del post con gli ID di pubblicazione esterna.
| Parametro | Tipo | Richiesto | Descrizione |
|---|---|---|---|
| id | string (path) | Richiesto | ID del 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
Consente di modificare testo, titolo o la data programmata.
| Parametro | Tipo | Richiesto | Descrizione |
|---|---|---|---|
| id | string (path) | Richiesto | ID del post (UUID). |
| title | string | Opzionale | Nuovo titolo. |
| content | string | Opzionale | Nuovo testo. |
| scheduled_at | string | Opzionale | Nuova data 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
Cancella definitivamente il post e annulla i task in coda.
| Parametro | Tipo | Richiesto | Descrizione |
|---|---|---|---|
| id | string (path) | Richiesto | ID del 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
Fornisce riepilogo di visualizzazioni, interazioni, like e commenti per canale.
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
Restituisce tutti i brand configurati nell'account (piani Pro e 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
}
]
}Motore AI in 7 lingue (Generazione, Idee, Traduzione)
Endpoint nativi per il copywriting e la localizzazione per 15 canali social rispettando il Brand Voice del marchio.
/ai/generate
Genera post allineati alla Brand Voice in una delle 7 lingue (PL, EN, DE, ES, FR, IT, UK) comprensivi di hashtag.
| Parametro | Tipo | Richiesto | Descrizione |
|---|---|---|---|
| topic | string | Richiesto | Argomento o messaggio chiave. |
| language | string | Opzionale | Codice lingua ('pl', 'en', 'de', 'es', 'fr', 'it', 'uk'). |
| platform | string | Opzionale | Piattaforma target. |
| tone | string | Opzionale | Tono. |
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": "it",
"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
Offre una serie di proposte di post, ganci e formati adatti al tuo pubblico.
| Parametro | Tipo | Richiesto | Descrizione |
|---|---|---|---|
| topic | string | Opzionale | Focus tematico. |
| locale | string | Opzionale | Lingua delle idee. |
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": "it"
}'{
"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
Traduce i post in 7 lingue considerando espressioni idiomatiche e Brand Voice.
| Parametro | Tipo | Richiesto | Descrizione |
|---|---|---|---|
| text | string | Richiesto | Testo da tradurre. |
| target_language | string | Richiesto | Lingua target ('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"
}Codici di errore e limiti di richiesta
OperPilot segue i codici di stato HTTP standard con messaggi di errore JSON descrittivi.
| Codice HTTP | Nome | Significato e risoluzione |
|---|---|---|
| 200 OK | Success | Richiesta completata con successo. |
| 201 Created | Created | Risorsa creata con successo. |
| 400 Bad Request | Invalid Request | Parametri obbligatori mancanti o non validi. |
| 401 Unauthorized | Unauthorized | Chiave API mancante o non valida nell'header Authorization. |
| 403 Forbidden | Forbidden | Chiave revocata o privilegi insufficienti. |
| 404 Not Found | Not Found | Risorsa o post non trovato. |
| 429 Too Many Requests | Rate Limited | Limite di richieste superato (60 req/min). Riprova tra poco. |
| 500 Internal Error | Server Error | Errore interno del server. Contatta kontakt@operpilot.com. |
Automazione No-Code (Make.com, Zapier, n8n)
Integra facilmente OperPilot nei tuoi scenari Make.com o Zapier tramite modulo HTTP standard:
Passaggi di configurazione in Make.com:
- Aggiungi il modulo HTTP -> Make a request.
- Imposta l'URL: https://app.operpilot.com/api/v1/posts e Method: POST.
- Aggiungi gli Headers: Authorization = Bearer op_live_TUA_CHIAVE e Content-Type = application/json.
- Seleziona Raw -> JSON Body e passa i campi title, content, platforms e publish_now.