REST API v1 & Protocolo MCP • Estándar 2026

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:

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

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.

MCP Protocol

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

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"
      }
    }
  }
}

Configuración en 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 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

MCP Tool

ADN de marca: perfil corporativo, sector, público objetivo, Brand Voice y guía visual — contexto para la IA.

Prompt de ejemplo en Claude / Cursor:
“Obtén el perfil de mi marca y dime qué tono de voz debo emplear para las publicaciones.”
Devuelve: Object: { name, description, industry, targetAudience, brandVoice, visualGuidelines, primaryColors, website }

connected_accounts

MCP Tool

Canales activos: lista completa de perfiles conectados (entre 15 plataformas) listos para publicación inmediata o programada.

Prompt de ejemplo en Claude / Cursor:
“¿Qué redes sociales tengo conectadas actualmente en mi cuenta de OperPilot?”
Devuelve: Array of { id, platform, name, accountType, isConnected, avatarUrl }

generate_post

MCP Tool

Redactor IA: genera publicaciones atractivas con hashtags en 7 idiomas (PL, EN, DE, ES, FR, IT, UK) adaptadas a la voz de su marca.

Prompt de ejemplo en Claude / Cursor:
“Escribe una publicación para LinkedIn sobre las ventajas de automatizar las redes sociales.”
ParámetroTipoObligatorioDescripción
topicstringObligatorioTema o mensaje clave.
languagestringOpcionalCódigo de idioma ('pl', 'en', 'de', 'es', 'fr', 'it', 'uk').
platformstringOpcionalPlataforma de destino (ej. 'linkedin').
tonestringOpcionalTono (ej. 'experto', 'cercano').
Devuelve: Object: { content, hashtags, suggestedPlatform, charCount }

generate_ideas

MCP Tool

Generador de ideas: proporciona propuestas de temas y ganchos de contenido adaptados a su sector.

Prompt de ejemplo en Claude / Cursor:
“Sugiere 5 temas educativos para publicaciones de mi sector la próxima semana.”
ParámetroTipoObligatorioDescripción
topicstringOpcionalÁrea temática opcional.
localestringOpcionalIdioma de las ideas.
Devuelve: Object: { ideas: Array<{ title, angle, targetFormat, hook }> }

translate_post

MCP Tool

Localización multilingüe: traduce y adapta publicaciones para 7 mercados europeos manteniendo la voz de marca.

Prompt de ejemplo en Claude / Cursor:
“Traduce esta publicación al alemán manteniendo un tono cercano y amigable.”
ParámetroTipoObligatorioDescripción
textstringObligatorioTexto original a traducir.
target_languagestringObligatorioIdioma de destino ('pl', 'en', 'de', 'es', 'fr', 'it', 'uk').
Devuelve: Object: { translatedText, targetLanguage, notes }

create_post

MCP Tool

Creación de publicación: crea un post en OperPilot, asigna plataformas y programa su emisión o publica al instante.

Prompt de ejemplo en Claude / Cursor:
“Crea un post 'Lanzamiento versión 2.0' y prográmalo para mañana a las 10:00 en Facebook y LinkedIn.”
ParámetroTipoObligatorioDescripción
titlestringObligatorioTítulo del post.
contentstringObligatorioTexto completo con hashtags.
platformsarrayOpcionalLista de plataformas.
scheduled_atstringOpcionalFecha ISO. Vacío = borrador.
publish_nowbooleanOpcionalTrue para publicar de inmediato.
Devuelve: Object: { id, title, status, scheduledAt, platforms }

list_posts

MCP Tool

Registro de publicaciones: consulta posts filtrando por estado: draft, scheduled, published, failed.

Prompt de ejemplo en Claude / Cursor:
“Muéstrame las próximas 5 publicaciones programadas en mi calendario.”
ParámetroTipoObligatorioDescripción
statusstringOpcionalFiltro de estado.
limitnumberOpcionalLímite de posts (defecto 20).
Devuelve: Array of { id, title, content, status, scheduledAt, platforms, createdAt }

schedule_post

MCP Tool

Planificador: reprograma o asigna fecha y hora de emisión para un post existente.

Prompt de ejemplo en Claude / Cursor:
“Pospón la publicación con ID 8f7e... para el próximo viernes a las 18:00.”
ParámetroTipoObligatorioDescripción
post_idstringObligatorioID del post (UUID).
scheduled_atstringObligatorioNueva fecha ISO.
Devuelve: Object: { id, status: 'scheduled', scheduledAt }

publish_post

MCP Tool

Publicación instantánea: envía un post existente para emisión inmediata en todos los canales vinculados.

Prompt de ejemplo en Claude / Cursor:
“Publica este post ahora mismo en todos los perfiles conectados.”
ParámetroTipoObligatorioDescripción
post_idstringObligatorioID del post (UUID).
Devuelve: Object: { id, status: 'published', publishedAt, results }

delete_post

MCP Tool

Eliminación: suprime permanentemente el post y cancela los envíos en cola.

Prompt de ejemplo en Claude / Cursor:
“Elimina el borrador con ID b4c1...”
ParámetroTipoObligatorioDescripción
post_idstringObligatorioID del post (UUID).
Devuelve: Object: { success: true, deletedId }

analytics

MCP Tool

Centro analítico: métricas agregadas de impresiones, alcance, reacciones y comentarios por plataforma.

Prompt de ejemplo en Claude / Cursor:
“¿Cuáles son las métricas de alcance y publicaciones de los últimos 30 días?”
Devuelve: Object: { summary: { totalImpressions, totalEngagements, totalLikes }, platforms: { ... } }

list_brands

MCP Tool

Gestión de marcas: lista de marcas/clientes en el espacio de trabajo (planes Pro y Business).

Prompt de ejemplo en Claude / Cursor:
“Muestra todas las marcas que gestiono en OperPilot.”
Devuelve: Array of { id, name, industry, isDefault }
REST API

Referencia REST API v1

Para integraciones HTTP directas con servidores propios, tareas programadas o plataformas no-code (Make.com, n8n, Zapier).

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

/profile

Obtener perfil de marca y Brand Voice

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"
Respuesta de ejemplo (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

Listar canales conectados

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"
Respuesta de ejemplo (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

Listar publicaciones y calendario

Devuelve publicaciones filtradas por estado.

ParámetroTipoObligatorioDescripción
statusstring (query)OpcionalFiltro de estado.
limitnumber (query)OpcionalLí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"
Respuesta de ejemplo (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

Crear nueva publicación

Crea un post, asocia canales y lo programa o publica al instante.

ParámetroTipoObligatorioDescripción
titlestringObligatorioTítulo del post.
contentstringObligatorioTexto con hashtags.
platformsarrayOpcionalPlataformas de destino.
scheduled_atstringOpcionalFecha ISO.
publish_nowbooleanOpcionalTrue 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
  }'
Respuesta de ejemplo (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

Detalles y estado de publicación

Devuelve los detalles del post con IDs de publicación externa.

ParámetroTipoObligatorioDescripción
idstring (path)ObligatorioID 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"
Respuesta de ejemplo (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

Actualizar o reprogramar publicación

Permite modificar contenido, título o reprogramar fecha.

ParámetroTipoObligatorioDescripción
idstring (path)ObligatorioID del post (UUID).
titlestringOpcionalNuevo título.
contentstringOpcionalNuevo contenido.
scheduled_atstringOpcionalNueva 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"
  }'
Respuesta de ejemplo (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

Eliminar publicación

Elimina el post y cancela los trabajos en cola.

ParámetroTipoObligatorioDescripción
idstring (path)ObligatorioID 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"
Respuesta de ejemplo (HTTP 200 OK):
200 OK • JSON
{
  "success": true,
  "message": "Post został pomyślnie usunięty."
}
GET

/analytics

Estadísticas y analítica de publicaciones

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"
Respuesta de ejemplo (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

Lista de marcas en el espacio de trabajo

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"
Respuesta de ejemplo (HTTP 200 OK):
200 OK • JSON
{
  "brands": [
    {
      "id": "brand_01a",
      "name": "Acme Software",
      "industry": "IT & Automation",
      "isDefault": true
    }
  ]
}
AI Engine

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.

Idiomas soportados de publicación y localización:
PL (pl) EN (en) DE (de) ES (es) FR (fr) IT (it) UK (uk)
POST

/ai/generate

Generación de post con IA (7 idiomas)

Genera publicaciones adaptadas a la voz de marca en 7 idiomas (PL, EN, DE, ES, FR, IT, UK) con hashtags.

ParámetroTipoObligatorioDescripción
topicstringObligatorioTema o mensaje clave.
languagestringOpcionalCódigo de idioma ('pl', 'en', 'de', 'es', 'fr', 'it', 'uk').
platformstringOpcionalPlataforma (ej. 'linkedin').
tonestringOpcionalTono.
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"
  }'
Respuesta de ejemplo (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

Generador de ideas y conceptos

Proporciona sugerencias de posts, ganchos y formatos para su público objetivo.

ParámetroTipoObligatorioDescripción
topicstringOpcionalEnfoque temático.
localestringOpcionalIdioma 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"
  }'
Respuesta de ejemplo (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

Traducción y adaptación cultural de posts

Traduce el post a 7 idiomas respetando modismos locales y la voz de marca.

ParámetroTipoObligatorioDescripción
textstringObligatorioTexto a traducir.
target_languagestringObligatorioIdioma 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"
  }'
Respuesta de ejemplo (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"
}

Códigos de error y límites de peticiones

OperPilot cumple con los códigos HTTP estándar con respuestas JSON explicativas.

Código HTTPNombreSignificado y solución
200 OKSuccessSolicitud procesada con éxito.
201 CreatedCreatedRecurso creado satisfactoriamente.
400 Bad RequestInvalid RequestCampos obligatorios ausentes o inválidos.
401 UnauthorizedUnauthorizedClave API ausente o no válida en cabecera Authorization.
403 ForbiddenForbiddenClave revocada o permisos insuficientes.
404 Not FoundNot FoundRecurso o publicación no encontrada.
429 Too Many RequestsRate LimitedLímite de peticiones superado (60 req/min). Por favor espere.
500 Internal ErrorServer ErrorError 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:

  1. Añada el módulo HTTP -> Make a request.
  2. Establezca la URL: https://app.operpilot.com/api/v1/posts y Method: POST.
  3. Añada Headers: Authorization = Bearer op_live_SU_CLAVE y Content-Type = application/json.
  4. Seleccione Raw -> JSON Body e introduzca title, content, platforms y publish_now.