Skip to Content
🛠 APIGénérer un post

Générer un post

POST https://app.petitpanda.io/api/generate-post

Génère un draft pour une seule plateforme à partir d’un sujet, d’un ton et (optionnellement) d’une source. Le draft est immédiatement sauvegardé dans ton compte et accessible via son draft_id.

Pour générer plusieurs plateformes d’un coup à partir d’une même source (vidéo YouTube, article, transcript), utilise plutôt POST /remix.

Authentification

Scope requis : reels:generate.

Authorization: Bearer ppk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Paramètres

ParamètreTypeRequisDescription
platformstringouilinkedin, twitter, instagram ou tiktok
topicstringouiSujet, angle ou hook de départ. 5 à 500 caractères
tonestringnonprofessional, casual, friendly ou expert. Par défaut : ton du Brand Kit
content_typestringnonpost, carousel ou thread. Par défaut : post
sourcestringnonTexte brut ou URL utilisé pour grounder la génération (article, transcript, page web)

Exemple de requête

curl -X POST https://app.petitpanda.io/api/generate-post \ -H "Authorization: Bearer $PETITPANDA_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "platform": "linkedin", "topic": "Comment j'ai automatisé ma compta avec n8n", "tone": "friendly", "content_type": "post", "source": "https://blog.example.com/n8n-compta-setup" }'

Réponse

200 OK : draft créé avec succès.

{ "draft_id": "drft_8f3a1c2b9e7d4f5a", "platform": "linkedin", "content_type": "post", "content": "J'ai passé 3 ans à faire ma compta à la main.\n\nChaque fin de mois, 4h perdues à recopier des factures, à matcher des paiements Stripe, à relancer des clients.\n\nLa semaine dernière, j'ai automatisé tout ça avec n8n. 3h de setup, et maintenant : 0 minute par mois.\n\nLe workflow :\n→ Webhook Stripe → push facture dans Pennylane\n→ Cron quotidien → matche les paiements en banque\n→ Relance auto à J+7 / J+14 / J+30\n\nROI : 48h par an. Coût : 0€ (n8n self-hosted).\n\nSi tu veux le template, dis-le en commentaire.", "tone": "friendly", "source_url": "https://blog.example.com/n8n-compta-setup", "credits_used": 1, "credits_remaining": 247, "created_at": "2026-05-20T14:32:18Z" }

Champs retournés

ChampTypeDescription
draft_idstringIdentifiant unique du draft. À garder pour POST /schedules
platformstringPlateforme cible
content_typestringType de contenu (post, carousel, thread)
contentstringTexte généré, prêt à publier
tonestringTon appliqué
source_urlstring | nullSource utilisée pour le grounding
credits_usednumberCrédits consommés par cet appel
credits_remainingnumberCrédits restants sur ton compte
created_atstringISO 8601 UTC

Coût

Type de contenuCrédits
post1 crédit
thread2 crédits
carousel3 crédits

Si tu n’as plus assez de crédits, tu recevras une erreur 402 (voir ci-dessous).

Erreurs

CodeCauseSolution
400JSON invalide ou paramètre manquantVérifie le body et les champs requis
401Clé API absente, invalide ou révoquéeRégénère une clé depuis Réglages > API 
402Crédits insuffisantsRecharge depuis Compte > Crédits
403Scope reels:generate manquant sur la cléCrée une nouvelle clé avec le bon scope
422Valeur de platform ou tone non reconnueVoir la liste des valeurs autorisées plus haut
429Rate limit dépasséAttends ou passe à un plan supérieur

Détail complet : Limites & codes d’erreur.

💡 Pour générer en batch (10+ posts d’un coup), enchaîne les appels avec un délai de 600ms entre chaque pour rester sous la limite Pro de 100 req/min.

Et après ?

Last updated on