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 minutoLimiti per piattaforma
| Piattaforma | Caratteri | Media | Solo testo |
|---|---|---|---|
| TikTok | 2200 | max 35 · video, image | no |
| 2200 | max 10 · image, video | no | |
| YouTube | 5000 | max 1 · video | no |
| X | 280 | max 4 · image, video | sì |
| 3000 | max 9 · image, video | sì | |
| 63.206 | max 10 · image, video | sì | |
| Threads | 500 | max 20 · image, video | sì |
| 800 | max 1 · image, video | no |
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.