Publications et programmation
Obtenir une clé APIUne publication appartient à un établissement et part vers un ou plusieurs réseaux, ses cibles. Chaque cible a son propre texte, ses médias, son format et son état.
Le corps d’une publication
| Champ | Signification |
|---|---|
establishmentId | L’établissement qui publie (GET /v1/establishments) |
targets[] | Une entrée par réseau : platform, text, et en option media, format et accountId |
targets[].media[] | Un média de la médiathèque par son id, ou une url https publique avec son type (image ou video) |
targets[].accountId | Le compte à utiliser quand l’établissement en a plusieurs sur ce réseau |
scheduledAt | Une date-heure ISO 8601 future ; absente, la publication part tout de suite |
status | draft pour enregistrer un brouillon qui ne part pas (sans scheduledAt alors) |
États
| État | Signification |
|---|---|
draft | Enregistrée, ne part pas |
scheduled | Partira à scheduledAt |
publishing | En cours d’envoi au réseau |
published | En ligne, avec son permalink |
failed | Le réseau l’a refusée ; error dit pourquoi |
sent_to_inbox | Envoyée dans l’app du réseau, où le propriétaire la termine (TikTok) |
Le status de la publication résume ses cibles. Il vaut partial quand un réseau a publié et qu’un autre a échoué.
Modifier avant le départ
PATCH /v1/posts/{id} réécrit les cibles, déplace scheduledAt ou change status : draft retire l’horaire et garde le contenu, scheduled la reprogramme. Une fois qu’un réseau a envoyé la publication, la réponse est 409 post_not_editable.
curl -X PATCH https://api.sofia-post.com/api/v1/posts/$POST_ID \
-H "Authorization: Bearer $SOFIA_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"status":"scheduled","scheduledAt":"2026-11-20T09:00:00Z"}'Supprimer
DELETE /v1/posts/{id} répond 204. Pendant qu’un réseau envoie la publication, la réponse est 409 post_in_flight : réessayez un instant plus tard.
Lister les publications
GET /v1/posts liste toutes les publications accessibles au jeton, les plus récentes d’abord, filtrées par establishmentId, status, from, to et createdBy (me ou app). Une publication correspond à status quand au moins un de ses réseaux est dans cet état. Voir la pagination.