PubblicazioniPubblicare una pubblicazione

Pubblicazioni

Pubblicare una pubblicazione

Le app live pubblicano subito, programmano o salvano una bozza; quelle di test simulano soltanto. Con ?dry_run=true controlla tutto e non scrive nulla.

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

Questa richiesta agisce sul tuo account reale.

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

Autorizzazioni

  • Authorizationstringobbligatorio

    La tua chiave personale o il token di accesso OAuth, inviato come Bearer <token>.

Parametri di query

  • dry_runstring

    true: esegue ogni controllo dell'invio (regole delle reti, account, media, creazione, abbonamento live) e non scrive nulla. Restituisce 200 ready o 422 post_refused.

    Valori ammessi: truefalse

Header

  • Idempotency-Keystring

    Ripetuta con lo stesso body, la richiesta restituisce la stessa risposta senza creare una seconda pubblicazione. Una simulazione non consuma la chiave.

Body

application/json

  • establishmentIdstringobbligatorio

    Attività, nel Workspace dell'autorizzazione del token (GET /v1/establishments)

  • targetsobject[]obbligatorio

    Una rete per destinazione

    Mostra gli attributi figli
    • platformstringobbligatorio

      Rete di destinazione

      Valori ammessi: instagramfacebookxlinkedintiktok

    • textstringobbligatorio

      Didascalia pubblicata su questa rete

    • mediaobject[]

      Media allegati

      Mostra gli attributi figli
      • idstring

        Identificatore di un media della mediateca dell'attività (altrimenti url e type)

      • urlstring

        Indirizzo pubblico del media (https in live); senza identificatore

      • typestring

        Tipo del media dato per indirizzo

        Valori ammessi: imagevideo

    • formatstring

      Formato (post, reel, story, carousel...); per default, quello che la rete offrirebbe

    • accountIdstring

      Live: l'account collegato che pubblica, quando l'attività ne ha più di uno su questa rete (GET /v1/establishments/:id/accounts)

  • scheduledAtstring<date-time>

    Data di programmazione (ISO 8601), nel futuro; assente: pubblica subito. Non ammessa con status draft

  • statusstring

    draft: una bozza (solo live), creata senza data, non viene inviato nulla; PATCH /v1/posts/:id la programma

    Valori ammessi: draft

Risposta

200application/json

Simulazione: tutti i controlli sono passati.

  • statusstringobbligatorio

    Sempre ready

    Valori ammessi: ready

  • dryRunbooleanobbligatorio

    Sempre true

    Valori ammessi: true

  • targetsobject[]obbligatorio

    Le destinazioni controllate

    Mostra gli attributi figli
    • platformstringobbligatorio

      Rete della destinazione

    • statestringobbligatorio

      Sempre ready

      Valori ammessi: ready

    • accountIdstring

      Live: l'account che pubblicherebbe

    • handlestring

      Live: il suo handle visualizzato

201application/json

Live: publishing o scheduled. Test: simulated.

  • idstringobbligatorio

    Identificatore della pubblicazione, da rileggere con GET /v1/posts/:id

  • statusstringobbligatorio

    Stato della pubblicazione alla creazione

    Valori ammessi: draftpublishingscheduled

  • establishmentIdstringobbligatorio

    Attività della pubblicazione

  • targetsobject[]obbligatorio

    Le destinazioni della pubblicazione

    Mostra gli attributi figli
    • platformstringobbligatorio

      Rete della destinazione

    • accountIdstringobbligatorio

      L'account che pubblica

    • statestringobbligatorio

      Stato della destinazione alla creazione

      Valori ammessi: draftpublishingscheduledfailed

  • scheduledAtstring<date-time>

    Quando la pubblicazione è programmata

400

Body malformato.

401

Il token manca, è sconosciuto, scaduto o revocato.

402

subscription_required (live, simulazione compresa).

403

Il token non ha il permesso posts:write.

404

establishment_not_found: fuori dal Workspace del token.

422application/json

post_refused: una rete, l'attività o la creazione rifiuterebbe; media_import_refused (live) con il suo motivo; idempotency_key_reused.

4XXapplication/json

Qualsiasi altro errore, nella busta di errore.