API REST

Una sola chiamata HTTP per pubblicare su tutti i canali collegati. Disponibile sui piani Pro e Business.

Autenticazione

Genera una chiave dalla sezione API Keys della dashboard e passala come Bearer token. La chiave si vede una volta sola: salvala subito.

Authorization: Bearer sp_live_...

POST /api/public/v1/upload

Crea e pubblica un post. I media vanno caricati prima nello storage.

curl -X POST https://TUO-DOMINIO/api/public/v1/upload \
  -H "Authorization: Bearer sp_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "caption": "Nuovo drop!",
    "title": "Il mio video",
    "media_tokens": ["<token restituito da /api/media/upload>"],
    "platforms": ["tiktok", "instagram", "youtube"],
    "scheduled_at": null
  }'

Parametri

caption string
Testo del post. Viene troncato o rifiutato in base ai limiti della piattaforma.
title string | null
Obbligatorio per YouTube e Pinterest, ignorato altrove.
media_tokens string[]
Token restituiti da POST /api/media/upload, massimo 10.
platforms string[]
Usa il primo account attivo per ciascuna piattaforma indicata.
account_ids string[]
Alternativa a platforms: indica esattamente su quali account pubblicare.
scheduled_at string | null
Data ISO 8601. Se è nel futuro il post entra in coda invece di partire subito.

POST /api/media/upload

Carica un file prima di pubblicarlo. Il corpo della richiesta è il file grezzo, non un multipart. Autenticazione con il token di sessione, non con la chiave API.

curl -X POST https://TUO-DOMINIO/api/media/upload \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: video/mp4" \
  -H "X-File-Name: reel.mp4" \
  --data-binary @reel.mp4

{ "token": "…", "url": "https://…", "kind": "video", "size_bytes": 8123456 }

I file vengono eliminati 24 ore dopo la pubblicazione del post che li utilizza. Quelli caricati e mai usati spariscono dopo 24 ore.

Risposte

200 OK — pubblicato su tutti i canali
{
  "post_id": "…",
  "status": "completed",
  "succeeded": 3,
  "failed": 0,
  "targets": [
    { "platform": "instagram", "status": "success",
      "platform_post_url": "https://…", "error_message": null }
  ]
}

207 Multi-Status — pubblicato solo su alcuni canali
402 Payment Required — quota mensile esaurita
403 Forbidden — il piano non include l'accesso API
429 Too Many Requests — oltre 60 richieste al minuto

Limiti per piattaforma

PiattaformaCaratteriMediaSolo testo
TikTok2200max 35 · video, imageno
Instagram2200max 10 · image, videono
YouTube5000max 1 · videono
X280max 4 · image, video
LinkedIn3000max 9 · image, video
Facebook63.206max 10 · image, video
Threads500max 20 · image, video
Pinterest800max 1 · image, videono

Webhook

Configura un endpoint https nella sezione Zapier per ricevere post.published e post.failed in tempo reale. Gli endpoint su rete privata vengono rifiutati.