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"],
    "tiktok_options": {
      "privacy_level": "PUBLIC_TO_EVERYONE",
      "disable_comment": false,
      "disable_duet": false,
      "disable_stitch": false,
      "brand_content_toggle": false,
      "brand_organic_toggle": false
    },
    "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.
tiktok_options — object
Obbligatorio se fra i target c'è TikTok. Campi: privacy_level (PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY), disable_comment, disable_duet, disable_stitch, brand_content_toggle, brand_organic_toggle. Le linee guida TikTok impongono che queste scelte siano dell'utente: non esiste un default.
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, videosì
LinkedIn3000max 9 · image, videosì
Facebook63.206max 10 · image, videosì
Threads500max 20 · image, videosì
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.