Skip to Content
🛠 APIProgrammer un post

Programmer un post

POST https://app.petitpanda.io/api/schedules GET https://app.petitpanda.io/api/schedules/next-free

Une fois ton draft généré (via POST /generate-post ou créé dans l’app), tu peux le programmer pour publication automatique à une date / heure précise, ou laisser PetitPanda choisir le prochain slot libre dans ton calendrier de programmation récurrente.

Authentification

Scope requis : schedules:write.

POST /api/schedules

Programme un draft existant.

Paramètres

ParamètreTypeRequisDescription
draft_idstringouiID du draft à programmer (retourné par /generate-post)
platformstringouiPlateforme cible : linkedin, twitter, instagram, tiktok
scheduled_atstring (ISO 8601)conditionnelDate / heure UTC de publication. Requis si use_next_free_slot est absent ou false
use_next_free_slotbooleanconditionnelSi true, ignore scheduled_at et utilise le prochain slot libre pour la plateforme

Exemple : date précise

curl -X POST https://app.petitpanda.io/api/schedules \ -H "Authorization: Bearer $PETITPANDA_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "draft_id": "drft_8f3a1c2b9e7d4f5a", "platform": "linkedin", "scheduled_at": "2026-05-22T09:00:00Z" }'

Exemple : prochain slot libre

Tu as un calendrier récurrent configuré (ex : LinkedIn tous les jours à 9h et 18h) ? Laisse PetitPanda placer ton post au prochain slot libre.

curl -X POST https://app.petitpanda.io/api/schedules \ -H "Authorization: Bearer $PETITPANDA_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "draft_id": "drft_8f3a1c2b9e7d4f5a", "platform": "linkedin", "use_next_free_slot": true }'

Réponse

201 Created

{ "schedule_id": "sch_b4e2d9f1a8c3e6b5", "draft_id": "drft_8f3a1c2b9e7d4f5a", "platform": "linkedin", "scheduled_at": "2026-05-22T09:00:00Z", "status": "pending", "created_at": "2026-05-20T14:35:02Z" }

GET /api/schedules/next-free

Récupère le prochain slot libre pour une plateforme donnée, sans rien programmer. Pratique pour afficher la date prévue à l’utilisateur avant confirmation.

curl "https://app.petitpanda.io/api/schedules/next-free?platform=linkedin" \ -H "Authorization: Bearer $PETITPANDA_API_KEY"

Réponse

{ "platform": "linkedin", "next_free_slot": "2026-05-22T09:00:00Z", "slot_label": "Lundi 22 mai, 09:00 UTC" }

Si aucun slot récurrent n’est configuré pour la plateforme, la réponse retourne next_free_slot: null. Configure tes slots via POST /api/schedule-slots ou depuis Calendrier > Slots récurrents .

Statuts d’une programmation

StatutDescription
pendingProgrammé, en attente de publication
publishingPublication en cours côté plateforme
publishedPublication réussie. Le post est en ligne
failedPublication échouée (token expiré, contenu rejeté par la plateforme, etc.)

Tu peux lister toutes tes programmations via GET /api/schedules (filtre ?status=pending ou ?platform=linkedin supporté).

Webhook de publication (optionnel)

Pour être notifié dès qu’un post passe en published ou failed, enregistre un webhook sur l’event post.published ou post.failed. Voir Webhooks.

💡 Si tu utilises use_next_free_slot: true, garde en tête que le slot peut être plusieurs jours plus tard si ton calendrier est dense. Appelle GET /schedules/next-free d’abord pour confirmer.

Erreurs courantes

CodeCause
400scheduled_at dans le passé, ou ni scheduled_at ni use_next_free_slot fournis
403Scope schedules:write manquant
404draft_id introuvable ou n’appartenant pas à ton compte
409Conflit : un autre post est déjà programmé exactement à cette heure pour cette plateforme

Et après ?

Last updated on