Programar a mano funciona hasta que llega el volumen. Una semana de posts en cuatro redes son una docena de entradas escritas en un formulario, cada una con su hora, su caption y su imagen. Cuando una hoja de cálculo, un CMS o cualquier otro servicio ya sabe qué tiene que salir, volver a tipearlo en un calendario es la forma más lenta de publicar.
Una API de programación invierte eso. Tu código controla el calendario, la API controla las conexiones con las plataformas, y los posts llegan a un calendario que igual puedes revisar. Esta guía usa la API REST de SocialRobot porque la parte de OAuth ya está resuelta: conectas las cuentas una vez en la app y nunca registras una app de desarrollador de Meta o LinkedIn.
Qué hace realmente la API
La API es el mismo motor del dashboard, expuesto por HTTP. Un request puede apuntar a varias redes, usar el texto que quieras por red, adjuntar medios subidos y después listar, mover o borrar esa publicación desde los mismos endpoints.
Tres cosas la diferencian de escribir integraciones a mano:
- Una sola autenticación para nueve redes. Una API key reemplaza las apps OAuth por plataforma, la renovación de tokens y los procesos de revisión de algunas redes.
- Los posts caen en una cola revisable. Los posts de la API son ítems programados en el calendario, no llamadas que se pierden. Los apruebas en el dashboard o los aprueba el reloj.
- El spec es público. OpenAPI 3 en
https://socialrobot.io/api/openapi.json, así que Postman, Insomnia o un cliente generado lo importan en segundos.
Antes del primer request
Necesitas tres cosas:
- Cuentas conectadas. Conecta Instagram, LinkedIn, X y el resto en Scheduler, luego Accounts. La API publica a través de esos logins.
- Una API key. En el dashboard: Scheduler settings, luego API keys. La key se muestra una vez y se envía como
x-api-key(también funcionaAuthorization: Bearer). - Los account IDs. Llama a
GET /accountspara ver a qué puede publicar la key.
curl https://socialrobot.io/api/accounts \
-H "x-api-key: $SOCIALROBOT_API_KEY"
La respuesta lista cada cuenta conectada con su plataforma y su ID. Esos IDs son los que van en targets después, así que conviene cachearlos por entorno.
Crear un post programado
Un endpoint cubre el caso común: POST /posts. Texto, hora y targets.
curl -X POST https://socialrobot.io/api/posts \
-H "x-api-key: $SOCIALROBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Ya está el flat white de avena, solo esta semana.",
"scheduledAt": "2026-09-15T09:00:00Z",
"targets": [
{ "platform": "instagram", "accountId": "acc_123" },
{ "platform": "linkedin", "accountId": "acc_456" },
{ "platform": "x", "accountId": "acc_789" }
]
}'
targets es la parte que ahorra más trabajo: un request, tres redes, un horario. Si una red necesita otro texto, crea posts separados o usa los endpoints por plataforma que siguen abajo.
Programar es el comportamiento por defecto
Un scheduledAt futuro deja el post en el calendario, donde todavía puedes editarlo o borrarlo. Publicar al instante es la misma llamada sin ese campo.
Adjuntar medios
Hay dos caminos, según quién tiene el archivo:
Los dos devuelven una referencia de media que pasas en el body del post, así que puedes encolar el post y su imagen en un solo flujo.
Mover, listar y borrar
El ID que devuelve la creación alcanza para administrar todo lo demás:
Eso cubre la parte incómoda de automatizar. Una campaña que se corre un día es un request, no un ticket de soporte.
Cuando el endpoint genérico no alcanza
Algunas redes necesitan un campo que el endpoint compartido no modela. Esas tienen rutas propias: /instagram/create, /linkedin/create, /x/create, /tiktok/create, /pinterest/create, /threads/create, /facebook/create, /bluesky/create y /mastodon/create.
Pinterest es el caso más claro. Un pin no existe sin board, así que listas los boards con GET /pinterest/boards/{accountId}, creas uno con POST /pinterest/create si hace falta y después encolas el pin. TikTok es parecido: GET /tiktok/creator-info/{accountId} devuelve las opciones de publicación, incluido si el video sale directo o queda como borrador en la bandeja.
API, MCP o n8n
Los tres manejan el mismo motor de publicación. Elige según quién toma la decisión:
La cuota es compartida entre los tres, así que mezclarlos es normal: programas desde el código durante la semana y ajustas por chat cuando cambia el plan.
Errores que conviene evitar
- Hardcodear los account IDs. Cambian cuando alguien reconecta una cuenta. Léelos de
GET /accountsal arrancar. - Mandar horas locales en lugar de UTC.
scheduledAtes un timestamp ISO 8601. Guarda en UTC y convierte solo para mostrar. - Ignorar el body de la respuesta. El create devuelve el post ID y el estado por target, que es lo que necesitas para loguear, reintentar o reconciliar.
- Publicar directo en la plataforma desde un script. Pierdes la revisión y el calendario. Deja los posts en SocialRobot y que la API haga las dos cosas.
Cómo empezar
- Crea una cuenta gratis en SocialRobot.
- Conecta las cuentas donde publicas.
- Crea una API key en Scheduler settings.
- Corre
GET /accountsy encola tu primer post conPOST /posts. - Ten a mano la especificación OpenAPI para los campos exactos, y lee la guía de MCP si quien programa tiene que ser un asistente de IA.
Conecta tus cuentas. Aprueba cada post.
SocialRobot MCP es gratis en todos los planes. Añade socialrobot.io/api/mcp a Claude, ChatGPT o Cursor y programa desde el chat. Nada sale hasta que lo apruebas.
Ver la guía MCP