Documentación de REST API v1 y Model Context Protocol (MCP)
Gestione marcas, genere contenidos con IA, programe publicaciones en 15 plataformas e integre OperPilot en Claude Desktop, Cursor AI o Make.com.
URL base de API de producción:
Autenticación (Clave API)
Todas las solicitudes requieren una clave secreta enviada en la cabecera Authorization como token Bearer.
Límites de peticiones (Rate Limits)
El límite por defecto es de 60 solicitudes por minuto por clave API. Al superarse se devuelve el código 429 Too Many Requests.
Model Context Protocol (MCP)
Conecte OperPilot directamente a Claude Desktop, Cursor AI o cualquier cliente MCP para interactuar con 12 herramientas automáticas.
Configuración en 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"
}
}
}
}Configuración en 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 Herramientas MCP de OperPilot
Una vez configurado el servidor MCP, su asistente de IA dispone de acceso inmediato a estas 12 funciones mediante lenguaje natural.
get_profile
ADN de marca: perfil corporativo, sector, público objetivo, Brand Voice y guía visual — contexto para la IA.
connected_accounts
Canales activos: lista completa de perfiles conectados (entre 15 plataformas) listos para publicación inmediata o programada.
generate_post
Redactor IA: genera publicaciones atractivas con hashtags en 7 idiomas (PL, EN, DE, ES, FR, IT, UK) adaptadas a la voz de su marca.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| topic | string | Obligatorio | Tema o mensaje clave. |
| language | string | Opcional | Código de idioma ('pl', 'en', 'de', 'es', 'fr', 'it', 'uk'). |
| platform | string | Opcional | Plataforma de destino (ej. 'linkedin'). |
| tone | string | Opcional | Tono (ej. 'experto', 'cercano'). |
generate_ideas
Generador de ideas: proporciona propuestas de temas y ganchos de contenido adaptados a su sector.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| topic | string | Opcional | Área temática opcional. |
| locale | string | Opcional | Idioma de las ideas. |
translate_post
Localización multilingüe: traduce y adapta publicaciones para 7 mercados europeos manteniendo la voz de marca.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| text | string | Obligatorio | Texto original a traducir. |
| target_language | string | Obligatorio | Idioma de destino ('pl', 'en', 'de', 'es', 'fr', 'it', 'uk'). |
create_post
Creación de publicación: crea un post en OperPilot, asigna plataformas y programa su emisión o publica al instante.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| title | string | Obligatorio | Título del post. |
| content | string | Obligatorio | Texto completo con hashtags. |
| platforms | array | Opcional | Lista de plataformas. |
| scheduled_at | string | Opcional | Fecha ISO. Vacío = borrador. |
| publish_now | boolean | Opcional | True para publicar de inmediato. |
list_posts
Registro de publicaciones: consulta posts filtrando por estado: draft, scheduled, published, failed.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| status | string | Opcional | Filtro de estado. |
| limit | number | Opcional | Límite de posts (defecto 20). |
schedule_post
Planificador: reprograma o asigna fecha y hora de emisión para un post existente.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| post_id | string | Obligatorio | ID del post (UUID). |
| scheduled_at | string | Obligatorio | Nueva fecha ISO. |
publish_post
Publicación instantánea: envía un post existente para emisión inmediata en todos los canales vinculados.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| post_id | string | Obligatorio | ID del post (UUID). |
delete_post
Eliminación: suprime permanentemente el post y cancela los envíos en cola.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| post_id | string | Obligatorio | ID del post (UUID). |
analytics
Centro analítico: métricas agregadas de impresiones, alcance, reacciones y comentarios por plataforma.
list_brands
Gestión de marcas: lista de marcas/clientes en el espacio de trabajo (planes Pro y Business).
Referencia REST API v1
Para integraciones HTTP directas con servidores propios, tareas programadas o plataformas no-code (Make.com, n8n, Zapier).
https://app.operpilot.com/api/v1/profile
Devuelve las directrices de marca: nombre, sector, descripción, público objetivo, voz de marca y paleta de colores.
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
Devuelve las cuentas conectadas entre las 15 redes soportadas.
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
Devuelve publicaciones filtradas por estado.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| status | string (query) | Opcional | Filtro de estado. |
| limit | number (query) | Opcional | Límite (máx 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, asocia canales y lo programa o publica al instante.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| title | string | Obligatorio | Título del post. |
| content | string | Obligatorio | Texto con hashtags. |
| platforms | array | Opcional | Plataformas de destino. |
| scheduled_at | string | Opcional | Fecha ISO. |
| publish_now | boolean | Opcional | True para emisión inmediata. |
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
Devuelve los detalles del post con IDs de publicación externa.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | string (path) | Obligatorio | 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
Permite modificar contenido, título o reprogramar fecha.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | string (path) | Obligatorio | ID del post (UUID). |
| title | string | Opcional | Nuevo título. |
| content | string | Opcional | Nuevo contenido. |
| scheduled_at | string | Opcional | Nueva fecha 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
Elimina el post y cancela los trabajos en cola.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | string (path) | Obligatorio | 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
Devuelve impresiones, interacción, likes y comentarios por plataforma.
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
Devuelve las marcas configuradas en el espacio de trabajo (planes Pro y 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
}
]
}Motor de IA en 7 idiomas (Generación, Ideas, Traducción)
Endpoints especializados en redacción y adaptación cultural para 15 redes sociales manteniendo el Brand Voice.
/ai/generate
Genera publicaciones adaptadas a la voz de marca en 7 idiomas (PL, EN, DE, ES, FR, IT, UK) con hashtags.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| topic | string | Obligatorio | Tema o mensaje clave. |
| language | string | Opcional | Código de idioma ('pl', 'en', 'de', 'es', 'fr', 'it', 'uk'). |
| platform | string | Opcional | Plataforma (ej. 'linkedin'). |
| tone | string | Opcional | 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": "es",
"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
Proporciona sugerencias de posts, ganchos y formatos para su público objetivo.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| topic | string | Opcional | Enfoque temático. |
| locale | string | Opcional | Idioma de las ideas. |
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": "es"
}'{
"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 el post a 7 idiomas respetando modismos locales y la voz de marca.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| text | string | Obligatorio | Texto a traducir. |
| target_language | string | Obligatorio | Idioma de destino ('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"
}Códigos de error y límites de peticiones
OperPilot cumple con los códigos HTTP estándar con respuestas JSON explicativas.
| Código HTTP | Nombre | Significado y solución |
|---|---|---|
| 200 OK | Success | Solicitud procesada con éxito. |
| 201 Created | Created | Recurso creado satisfactoriamente. |
| 400 Bad Request | Invalid Request | Campos obligatorios ausentes o inválidos. |
| 401 Unauthorized | Unauthorized | Clave API ausente o no válida en cabecera Authorization. |
| 403 Forbidden | Forbidden | Clave revocada o permisos insuficientes. |
| 404 Not Found | Not Found | Recurso o publicación no encontrada. |
| 429 Too Many Requests | Rate Limited | Límite de peticiones superado (60 req/min). Por favor espere. |
| 500 Internal Error | Server Error | Error interno del servidor. Contacte con kontakt@operpilot.com. |
Automatización No-Code (Make.com, Zapier, n8n)
Integre OperPilot fácilmente en sus escenarios de Make.com o Zapier mediante el módulo HTTP estándar:
Pasos de configuración en Make.com:
- Añada el módulo HTTP -> Make a request.
- Establezca la URL: https://app.operpilot.com/api/v1/posts y Method: POST.
- Añada Headers: Authorization = Bearer op_live_SU_CLAVE y Content-Type = application/json.
- Seleccione Raw -> JSON Body e introduzca title, content, platforms y publish_now.