Publiez, listez vos publications, vos clients et vos statistiques par programmation. Formule Studio
Toutes les requêtes nécessitent votre clé API (générée dans API & Webhooks) dans l'en-tête :
Authorization: Bearer pp_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Base : https://app.planeopulse.fr/api_v1.php · Limite : 60 requêtes/minute · Réponses JSON {ok, data} ou {ok:false, error}.
POST https://app.planeopulse.fr/api_v1.php?route=posts
| Champ | Type | Requis |
|---|---|---|
client_id | entier | oui |
account_ids | tableau d'entiers | oui |
text | chaîne | oui |
media_urls | tableau d'URLs | non |
scheduled_at | ISO 8601 | non (sinon brouillon) |
curl -X POST "https://app.planeopulse.fr/api_v1.php?route=posts" \
-H "Authorization: Bearer pp_live_…" \
-H "Content-Type: application/json" \
-d '{
"client_id": 4,
"account_ids": [8, 3],
"text": "Notre nouveau service est en ligne ! 🚀",
"media_urls": ["https://exemple.fr/visuel.jpg"],
"scheduled_at": "2026-06-20T09:00:00"
}'
{ "ok": true, "data": { "id": 412, "status": "scheduled",
"client_id": 4, "scheduled_at": "2026-06-20 09:00:00",
"accounts": [8,3], "media_count": 1 } }
GET https://app.planeopulse.fr/api_v1.php?route=posts&status=scheduled&client_id=4
Filtres optionnels : status (draft, scheduled, published, failed…), client_id. Retourne le statut de livraison par réseau.
curl "https://app.planeopulse.fr/api_v1.php?route=posts&status=published" \
-H "Authorization: Bearer pp_live_…"
{ "ok": true, "data": { "count": 1, "posts": [
{ "id": 410, "status": "published", "client": "PLANEO",
"text": "…", "published_at": "2026-06-10 12:50:00",
"delivery": [ { "platform":"facebook","account":"PLANEO","status":"published" } ] }
] } }
GET https://app.planeopulse.fr/api_v1.php?route=clients
curl "https://app.planeopulse.fr/api_v1.php?route=clients" -H "Authorization: Bearer pp_live_…"
{ "ok": true, "data": { "count": 3, "clients": [
{ "id": 4, "name": "PLANEO", "slug": "planeo", "accounts": 4 } ] } }
GET https://app.planeopulse.fr/api_v1.php?route=analytics&client_id=4&from=2026-05-01&to=2026-05-31
Sans from/to : 30 derniers jours.
curl "https://app.planeopulse.fr/api_v1.php?route=analytics&client_id=4&from=2026-05-01&to=2026-05-31" \
-H "Authorization: Bearer pp_live_…"
{ "ok": true, "data": { "client_id": 4,
"period": {"from":"2026-05-01","to":"2026-05-31","days":31},
"totals": {"Likes": 320, "Impressions": 12450, "Comments": 48},
"count": 25, "posts": [ … ] } }
Configurez une URL dans API & Webhooks. À chaque événement, PlaneoPulse envoie un POST JSON signé :
| Événement | Déclencheur |
|---|---|
post_published | une publication est diffusée sur un réseau |
post_failed | échec de diffusion |
approval_validated | un client approuve une publication |
En-tête de signature : X-Pulse-Signature: t=<timestamp>,v1=<hmac>. Vérifiez-la ainsi :
# PHP — vérification de la signature
$ts = ...; // depuis l'en-tĂŞte
$sig = hash_hmac('sha256', $ts . '.' . $rawBody, $votreSecret);
$valide = hash_equals($sig, $v1FromHeader);
{ "id":"evt_ab12cd34", "type":"post_published",
"created_at":"2026-06-11T08:30:00+00:00",
"data": { "post_id":410, "client_id":4, "platform":"facebook",
"permalink":"https://facebook.com/…" } }
| Code | Signification |
|---|---|
| 200 | Succès |
| 400 | RequĂŞte invalide (champ manquant, JSON incorrect) |
| 401 | Clé API absente ou invalide |
| 403 | Formule non Studio |
| 404 | Ressource introuvable (client, route) |
| 429 | Limite de 60 req/min dépassée |
PlaneoPulse API v1 · Gérer mes clés