PublicacionesPublicar una publicación

Publicaciones

Publicar una publicación

Las apps live publican al instante, programan o guardan un borrador; las de prueba solo simulan. Con ?dry_run=true se comprueba todo y no se escribe nada.

POSThttps://api.sofia-post.com/api/v1/posts
POST/v1/posts

Esta petición actúa sobre tu cuenta real.

curl -X POST 'https://api.sofia-post.com/api/v1/posts' \
  -H "Authorization: Bearer $SOFIA_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"establishmentId":"cmvy2k3m40001ms4rest00000","targets":[{"platform":"instagram","text":"Tarte tatin du jour","format":"post","accountId":"cmvy2k3m40001ms4rig000000"}],"scheduledAt":"2026-11-02T10:00:00.000Z"}'

Autorizaciones

  • Authorizationstringobligatorio

    Tu clave personal o token de acceso OAuth, enviado como Bearer <token>.

Parámetros de consulta

  • dry_runstring

    true: ejecuta todas las comprobaciones del envío (reglas de las redes, cuentas, medios, creación, suscripción live) y no escribe nada. Devuelve 200 ready o 422 post_refused.

    Valores permitidos: truefalse

Cabeceras

  • Idempotency-Keystring

    Repetida con el mismo cuerpo, la petición devuelve la misma respuesta sin crear una segunda publicación. Una simulación no consume la clave.

Cuerpo

application/json

  • establishmentIdstringobligatorio

    Establecimiento, en el Workspace de la autorización del token (GET /v1/establishments)

  • targetsobject[]obligatorio

    Una red por destino

    Mostrar atributos hijos
    • platformstringobligatorio

      Red de destino

      Valores permitidos: instagramfacebookxlinkedintiktok

    • textstringobligatorio

      Pie publicado en esta red

    • mediaobject[]

      Medios adjuntos

      Mostrar atributos hijos
      • idstring

        Identificador de un medio de la biblioteca del establecimiento (si no, url y type)

      • urlstring

        Dirección pública del medio (https en live); sin identificador

      • typestring

        Tipo del medio dado por dirección

        Valores permitidos: imagevideo

    • formatstring

      Formato (post, reel, story, carousel...); por defecto, el que serviría la red

    • accountIdstring

      Live: la cuenta conectada que publica, cuando el establecimiento tiene varias en esta red (GET /v1/establishments/:id/accounts)

  • scheduledAtstring<date-time>

    Fecha de programación (ISO 8601), en el futuro; ausente: publicar de inmediato. No permitida con status draft

  • statusstring

    draft: un borrador (solo live), creado sin fecha, no se envía nada; PATCH /v1/posts/:id lo programa

    Valores permitidos: draft

Respuesta

200application/json

Simulación: todas las comprobaciones han pasado.

  • statusstringobligatorio

    Siempre ready

    Valores permitidos: ready

  • dryRunbooleanobligatorio

    Siempre true

    Valores permitidos: true

  • targetsobject[]obligatorio

    Los destinos comprobados

    Mostrar atributos hijos
    • platformstringobligatorio

      Red del destino

    • statestringobligatorio

      Siempre ready

      Valores permitidos: ready

    • accountIdstring

      Live: la cuenta que publicaría

    • handlestring

      Live: su identificador visible

201application/json

Live: publishing o scheduled. Prueba: simulated.

  • idstringobligatorio

    Identificador de la publicación, para releerla con GET /v1/posts/:id

  • statusstringobligatorio

    Estado de la publicación al crearse

    Valores permitidos: draftpublishingscheduled

  • establishmentIdstringobligatorio

    Establecimiento de la publicación

  • targetsobject[]obligatorio

    Los destinos de la publicación

    Mostrar atributos hijos
    • platformstringobligatorio

      Red del destino

    • accountIdstringobligatorio

      La cuenta que publica

    • statestringobligatorio

      Estado del destino al crearse

      Valores permitidos: draftpublishingscheduledfailed

  • scheduledAtstring<date-time>

    Cuándo está programada la publicación

400

Cuerpo mal formado.

401

El token falta, es desconocido, ha caducado o está revocado.

402

subscription_required (live, simulación incluida).

403

El token no tiene el permiso posts:write.

404

establishment_not_found: fuera del Workspace del token.

422application/json

post_refused: una red, el establecimiento o la creación rechazaría; media_import_refused (live) con su motivo; idempotency_key_reused.

4XXapplication/json

Cualquier otro error, en el sobre de error.