Documentation API Podhoc
Integrez la generation de podcasts dans vos applications avec l'API REST Podhoc. Creez, gerez et telechargez des podcasts generes par IA.
Integrez la generation de podcasts dans vos applications
Podhoc propose une API REST avec Pro pour générer de l’audio à partir d’URL. Google Cloud documente une API en Preview pour les Audio Overviews des carnets et une API autonome de podcasts. Leur configuration, authentification et leurs limites diffèrent ; consultez la documentation actuelle avant toute intégration.
API audio de Google Cloud. Comparaison vérifiée le 16 septembre 2026.
Publication par défaut : avec un jeton de production, omettre auto_publish revient à true : le podcast généré peut être public dans Discover. Envoyez explicitement "auto_publish": false pour demander un audio privé ; le compte doit autoriser le contrôle de publication. Les jetons de test utilisent false par défaut et ne peuvent pas publier automatiquement. Une source privée ne rend pas l’audio généré privé.
Changement incompatible –
styleest desormais valide. Unstylefourni explicitement qui n’est pas l’un des neuf identifiants canoniques renvoie desormais400 INVALID_STYLE. Jusqu’a ce changement, une valeur non reconnue etait acceptee en silence et generee commedeep_dive. Les versions precedentes de cette page utilisaient"style": "conversational"dans les exemples :conversationaln’a jamais ete un identifiant reel, donc ces appels produisaientdeep_divedepuis toujours et l’audio recu n’etait pas celui que la documentation laissait entendre. Remplacez toute valeur non reconnue par un identifiant canonique. Omettrestyle, ou envoyernullou une chaine vide, utilise toujoursdeep_divepar defaut.
Sources de contenu : L’API accepte uniquement les URLs accessibles publiquement. Le telechargement de fichiers et le texte brut ne sont pas pris en charge actuellement. Si votre organisation a des exigences de conformite ou de securite qui empechent l’hebergement public, veuillez creer un ticket de support pour discuter des options d’integration entreprise.
Demarrage rapide
- Souscrivez un abonnement PRO sur app.podhoc.com
- Creez un jeton API sur app.podhoc.com/account/api-access
- Envoyez votre premiere requete avec les exemples ci-dessous
Authentification
Toutes les requetes API necessite un en-tete X-Api-Key avec votre jeton :
X-Api-Key: phk_test_a1b2c3d4e5f6...
URL de base : https://api-ext.podhoc.com/v1
Types de jetons :
- Jetons de test (
phk_test_...) – Moins cher, fonctions limitees. Pour le developpement et les tests. - Jetons de production (
phk_prod_...) – Plus cher, acces complet. Pour l’utilisation en production.
Points d’acces
POST /v1/podcasts – Creer un podcast
Lancez la generation d’un nouveau podcast a partir d’une ou plusieurs sources.
curl -X POST https://api-ext.podhoc.com/v1/podcasts \
-H "X-Api-Key: phk_test_..." \
-H "Content-Type: application/json" \
-d '{
"urls": ["https://example.com/article"],
"language": "fr",
"target_duration_minutes": 10,
"style": "deep_dive"
}'
Identifiants style valides – exactement ces neuf et aucun autre :
deep_dive, critique, didactic, debate, feynman_technique, simplified_explanation, pedagogical_framework, alchemist_formula, references_recall
Toute autre valeur fournie explicitement renvoie 400 INVALID_STYLE. Omettre le champ, ou envoyer null ou une chaine vide, utilise deep_dive par defaut. De plus, references_recall (Recapitulatif des references et donnees cles) exige une offre Creator ou Pro : toute autre offre recoit 403 TIER_FEATURE_BLOCKED. Voir le guide des styles audio pour ce que produit chacun.
GET /v1/podcasts/{id}/status – Consulter le statut de generation
curl https://api-ext.podhoc.com/v1/podcasts/a1b2c3d4-e5f6-7890-abcd-ef1234567890/status \
-H "X-Api-Key: phk_test_..."
Valeurs de statut : requested, processing, completed, failed.
GET /v1/podcasts/{id}/download – Telecharger le podcast
curl https://api-ext.podhoc.com/v1/podcasts/a1b2c3d4-e5f6-7890-abcd-ef1234567890/download \
-H "X-Api-Key: phk_test_..."
GET /v1/estimate-cost – Estimer le cout en credits
curl "https://api-ext.podhoc.com/v1/estimate-cost?duration_minutes=30&source_count=2&voice_count=2" \
-H "X-Api-Key: phk_test_..."
GET /v1/account/credits – Verifier le solde de credits
curl https://api-ext.podhoc.com/v1/account/credits \
-H "X-Api-Key: phk_test_..."
Tarifs
La generation de podcasts utilise une tarification dynamique basee sur les credits. L’API applique un multiplicateur supplementaire selon le type de jeton.
Formule :
Cout de base : max(30, ceil(duree_minutes x 2.5))
Bonus : + 20 si plus d'1 source
+ 10 si poids personnalises actives
Mise a l'echelle voix : x 1.2 si plus d'1 voix
Plafond : min(500, cout_max_du_tier)
Cout API : credits_base x multiplicateur_credits
Exemples de cout par duree (1 source, 1 voix, sans poids personnalises) :
| Duree | Cout de base | Jeton test (Moins cher) | Jeton prod (Plus cher) |
|---|---|---|---|
| 5 min | 30 | 45 | 75 |
| 10 min | 30 | 45 | 75 |
| 30 min | 75 | 113 | 188 |
| 60 min | 150 | 225 | 375 |
| 120 min | 300 | 450 | 500 |
Multiplicateurs de credits :
| Type de jeton | Multiplicateur | Utilisation typique |
|---|---|---|
Test (phk_test_...) | Moins cher | Developpement, tests, integration |
Production (phk_prod_...) | Plus cher | Applications en production |
Les multiplicateurs de credits (Moins cher pour test, Plus cher pour production) sont les niveaux par defaut. Ceux-ci peuvent etre ajustes – le multiplicateur reel applique a votre requete est affiche dans les metadonnees de la reponse.
Limites de debit
| Type de jeton | Requetes/minute | Requetes/heure | Generations simultanees |
|---|---|---|---|
| Test | 10 | 60 | 1 |
| Production | 30 | 300 | 5 |
Codes d’erreur
| Statut HTTP | Code | Description |
|---|---|---|
| 400 | INVALID_REQUEST | Champs requis manquants ou parametres invalides |
| 400 | INVALID_STYLE | style n’est pas un des neuf identifiants canoniques |
| 401 | UNAUTHORIZED | Jeton invalide, expire ou revoque |
| 402 | INSUFFICIENT_CREDITS | Credits insuffisants |
| 403 | TIER_FEATURE_BLOCKED | Le style exige une offre superieure (references_recall) |
| 404 | PODCAST_NOT_FOUND | Podcast non trouve |
| 429 | RATE_LIMITED | Limite de debit depassee |
| 500 | INTERNAL_ERROR | Erreur serveur inattendue |
Jetons de test vs production
| Fonctionnalite | Jeton de test | Jeton de production |
|---|---|---|
| Limite de duree | 5 minutes max | 120 minutes max |
| Limite d’URLs | 1 par requete | Illimite |
| Langues | Anglais uniquement | Les 73 langues |
| Voix | Max 2 | Toutes les options |
| Focus personnalise | Non disponible | Disponible |
| Poids des sources | Non disponible | Disponible |
| Telechargement | Non supporte | Non supporte |
| Publication auto | Non disponible | Disponible |
| Multiplicateur | Moins cher | Plus cher |
| Limite de debit | 2/min, 20/h | 30/min, 300/h |
| Taches simultanees | 1 | 5 |