socialrobot

Cómo programar posts en redes con una API

Usa la API REST de SocialRobot para programar posts en 10 redes desde tu código: crea una API key, lee tus account IDs y haz POST a /posts con targets.

Para programar posts en redes sociales con una API, te autenticas con una API key, llamas a GET /accounts para obtener los IDs de tus cuentas y luego envías un POST /posts por cada publicación con el texto, un timestamp scheduledAt y un array targets que nombra cada plataforma y cuenta. SocialRobot expone esto en https://socialrobot.io/api, con una especificación OpenAPI 3 en https://socialrobot.io/api/openapi.json, para Instagram, LinkedIn, X, TikTok, Pinterest, Threads, Facebook, Bluesky, Mastodon y Google Business Profile con la misma forma de request.

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 diez 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 tu calendario. Los posts de la API son ítems programados que ves, editas o borras en el dashboard antes de que salgan, no llamadas que se pierden. Créalos como borradores si quieres revisar cada uno antes.
  • 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:

  1. Cuentas conectadas. Conecta Instagram, LinkedIn, X y el resto en Scheduler, luego Accounts. La API publica a través de esos logins.
  2. 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 funciona Authorization: Bearer).
  3. Los account IDs. Llama a GET /accounts para 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:

SituaciónEndpoint
Tu script tiene los bytes del archivoPOST /media/upload-url devuelve una URL prefirmada para subirlo con PUT
La imagen ya vive en una URL públicaPOST /media/from-url la ingesta del lado del servidor

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:

TareaRequest
Listar lo programado o publicadoGET /posts
Ver un post puntualGET /posts/{id}
Reescribir texto o targetsPUT /posts/{id}
Moverlo a otro horarioPOST /posts/{id}/schedule
CancelarloDELETE /posts/{id}

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, /mastodon/create y /googlebusiness/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:

Qué estás automatizandoQué usar
Tu código, un cron o un backendAPI REST con API key
Una conversación en Claude, ChatGPT o CursorServidor MCP con OAuth
Una hoja de cálculo, un feed RSS o un formulario en un canvasNodo de n8n

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. Si no hay nada que automatizar y solo quieres un calendario, cómo programar publicaciones en redes sociales es el camino manual.

Errores que conviene evitar

  • Hardcodear los account IDs. Cambian cuando alguien reconecta una cuenta. Léelos de GET /accounts al arrancar.
  • Mandar horas locales en lugar de UTC. scheduledAt es 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

  1. Crea una cuenta gratis en SocialRobot.
  2. Conecta las cuentas donde publicas.
  3. Crea una API key en Scheduler settings.
  4. Corre GET /accounts y encola tu primer post con POST /posts.
  5. 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.

Preguntas

Preguntas frecuentes

Cómo obtengo una API key para programar posts

Créala en el dashboard de SocialRobot, en Scheduler settings, luego API keys. Envíala como x-api-key o como Authorization: Bearer. No necesitas registrar apps de desarrollador de Meta, LinkedIn ni TikTok.

Cómo sé a qué account ID publicar

Llama a GET /accounts. Devuelve cada cuenta conectada con su plataforma y su ID. Usa esos IDs en el array targets cuando creas un post.

Puedo publicar en varias redes con un solo request

Sí. POST /posts acepta un array targets, así que una sola llamada puede encolar el mismo post en Instagram, LinkedIn y X a la vez. Los endpoints por plataforma existen cuando una red necesita un campo que el endpoint genérico no cubre.

Cuál es la diferencia entre programar y publicar al instante

Con scheduledAt en una fecha futura el post espera en el calendario de SocialRobot hasta ese momento; puedes editarlo o borrarlo en el dashboard antes de que salga. Si omites el campo o mandas una hora pasada, el post sale apenas se procesa el request.

Cuáles son los límites de la API de programación

2.000 requests por minuto por cuenta y 200.000 por día, compartidos entre la API REST y el servidor MCP. Los topes son iguales en el plan Free y en los pagos.

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.

Ver la guía MCP

Empieza gratis

Empieza por tu próxima publicación.

Conecta tus cuentas y pruébalo con una publicación real. Dos cuentas y quince publicaciones al mes, gratis.

Empieza gratis

Plan gratis. Sin tarjeta de crédito.