Rappels webhook de conversion et notifications de tâches#
EnConvert vous notifie lorsque les tâches de conversion asynchrones et par lot se terminent, via trois mécanismes indépendants : l'interrogation de GET /v1/convert/batch/{batch_id}, les rappels webhook via le paramètre callback_url, et les notifications par e-mail via notification_email. Les trois peuvent être combinés dans une seule requête, et les fichiers terminés sont récupérés via les URL de téléchargement présentes dans la réponse de statut du lot. Cette page documente les charges utiles de rappel, les exigences de livraison et les restrictions par forfait pour chaque méthode.
X-API-Key: sk_...). Les clés publiques ne prennent pas en charge le traitement asynchrone ou par lot.
Vue d'ensemble#
| Méthode | Paramètre / Endpoint | Description |
|---|---|---|
| Polling | GET /v1/convert/batch/{batch_id} |
Interroge le statut en temps réel, les compteurs de progression et les URL de téléchargement. |
notification_email |
Envoie un e-mail de fin avec le statut de la tâche et un lien vers le tableau de bord. | |
| Webhook | callback_url |
Envoie une requête POST avec les résultats de la tâche vers votre serveur. |
Les trois méthodes fonctionnent aussi bien pour les tâches asynchrones à URL unique que pour les tâches par lot à URL multiples, sur les endpoints url-to-pdf, url-to-screenshot, website-to-pdf et website-to-screenshot.
Interrogation du statut d'un lot#
La méthode recommandée pour suivre la progression d'une tâche. Interrogez l'endpoint de statut du lot avec le batch_id renvoyé dans la réponse initiale 202.
GET /v1/convert/batch/{batch_id}
X-API-Key: sk_your_private_key
Réponse#
{
"batch_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "processing",
"total": 3,
"completed": 1,
"failed": 0,
"in_progress": 2,
"output_mode": "individual",
"zip_download_url": null,
"items": [
{
"source_url": "https://example.com/page-1",
"status": "Success",
"download_url": "https://spaces.example.com/...",
"output_file_size": 184320,
"duration": "3.12"
},
{
"source_url": "https://example.com/page-2",
"status": "In Progress",
"download_url": null,
"output_file_size": null,
"duration": null
}
]
}
Valeurs de statut#
| Statut | Signification |
|---|---|
processing |
Au moins une URL est encore en cours de conversion. |
completed |
Toutes les URL ont été converties avec succès. |
partial |
Toutes les URL sont terminées, mais certaines ont échoué. |
failed |
Toutes les URL ont échoué. |
En mode ZIP (output_mode: "zip"), un zip_download_url est fourni pour l'archive entière une fois terminée. En mode individuel, chaque élément a son propre download_url.
Pour tous les détails du schéma de réponse, consultez Traitement par lot.
Notifications par e-mail#
Incluez le paramètre notification_email dans votre requête pour recevoir un e-mail lorsque la tâche se termine. Si vous omettez ce paramètre, l'e-mail est envoyé par défaut à l'adresse e-mail du propriétaire du projet.
Exemple#
curl -X POST https://api.enconvert.com/v1/convert/url-to-pdf \
-H "X-API-Key: sk_your_private_key" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"async_mode": true,
"notification_email": "[email protected]"
}'
Réponse (HTTP 202 Accepted)#
{
"status": "processing",
"batch_id": "550e8400-e29b-41d4-a716-446655440000",
"url_count": 1,
"output_format": "individual"
}
Contenu de l'e-mail#
L'e-mail de fin inclut :
- En-tête de statut avec une bannière colorée (vert pour succès, rouge pour échec)
- ID de tâche et ID de lot (si la tâche fait partie d'un lot)
- Texte de statut (succès ou échec)
- Texte statique dirigeant les utilisateurs vers le téléchargement des fichiers depuis leur tableau de bord
- Tableau des tâches (uniquement pour les tâches par lot en mode ZIP) avec les colonnes : #, URL (tronquée à 50 caractères), statut, et nom de fichier de sortie
En mode individuel (y compris les lots individuels à URL multiples), chaque e-mail par URL contient uniquement l'ID de tâche et le statut -- pas de tableau des tâches. En mode ZIP, l'e-mail unique du lot inclut le tableau complet des tâches avec toutes les URL et leurs statuts.
notification_email dans votre requête, l'e-mail de fin est envoyé automatiquement à l'adresse e-mail du propriétaire du projet. Pour supprimer entièrement les notifications par e-mail, ce comportement par défaut ne peut actuellement pas être désactivé.
Rappels webhook#
Incluez le paramètre callback_url dans votre requête pour recevoir un POST webhook lorsque la tâche se termine. Nécessite un forfait avec accès aux webhooks.
Exemple#
curl -X POST https://api.enconvert.com/v1/convert/url-to-pdf \
-H "X-API-Key: sk_your_private_key" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"async_mode": true,
"callback_url": "https://yourapp.com/webhooks/enconvert"
}'
Réponse (HTTP 202 Accepted)#
{
"status": "processing",
"batch_id": "550e8400-e29b-41d4-a716-446655440000",
"url_count": 1,
"output_format": "individual"
}
Charge utile du rappel en mode URL unique / individuel#
En mode individuel, un POST séparé est envoyé pour chaque URL au fur et à mesure qu'elle se termine :
{
"job_id": "12345",
"status": "success",
"batch_id": "550e8400-e29b-41d4-a716-446655440000",
"gcs_uri": "env/files/{project_id}/url-to-pdf/example_20260405_123456789.pdf",
"filename": "example_20260405_123456789.pdf",
"file_size": 184320
}
Pour une conversion échouée :
{
"job_id": "12345",
"status": "failed",
"batch_id": "550e8400-e29b-41d4-a716-446655440000"
}
Charge utile du rappel en mode ZIP#
En mode ZIP, un seul POST est envoyé lorsque le lot entier se termine :
{
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "success",
"batch_id": "550e8400-e29b-41d4-a716-446655440000",
"gcs_uri": "env/files/{project_id}/url-to-pdf/batch_20260405_123456789.zip",
"filename": "batch_20260405_123456789.zip",
"file_size": 456789,
"total_tasks": 3,
"successful_tasks": 2,
"failed_tasks": 1,
"tasks": [
{"url": "https://example.com/page-1", "status": "success", "filename": "page1.pdf"},
{"url": "https://example.com/page-2", "status": "success", "filename": "page2.pdf"},
{"url": "https://invalid-url.example", "status": "failed", "error": "Page load timeout"}
]
}
Utiliser plusieurs méthodes de notification ensemble#
Vous pouvez combiner l'interrogation, l'e-mail et le webhook dans la même requête. Les trois fonctionnent indépendamment.
curl -X POST https://api.enconvert.com/v1/convert/url-to-pdf \
-H "X-API-Key: sk_your_private_key" \
-H "Content-Type: application/json" \
-d '{
"url": [
"https://example.com/page-1",
"https://example.com/page-2"
],
"notification_email": "[email protected]",
"callback_url": "https://yourapp.com/webhooks/enconvert"
}'
Après l'envoi, vous pouvez :
1. Interroger GET /v1/convert/batch/{batch_id} pour suivre la progression en temps réel
2. Recevoir un POST webhook à votre URL de rappel lorsque chaque conversion se termine
3. Recevoir un e-mail à l'adresse spécifiée lorsque chaque conversion se termine
Paramètres de notification#
| Paramètre | Type | Obligatoire | Par défaut | Description | Restriction par forfait |
|---|---|---|---|---|---|
notification_email |
string |
Non | E-mail du propriétaire du projet | Adresse e-mail pour recevoir les notifications de fin de tâche. | -- |
callback_url |
string |
Non | -- | URL pour recevoir un POST webhook à la fin. | Nécessite l'accès aux webhooks |
Exigences de livraison des webhooks#
| Exigence | Détail |
|---|---|
| Méthode | EnConvert envoie une requête POST avec Content-Type: application/json. |
| Délai | Votre endpoint doit répondre dans un délai de 30 secondes. |
| Codes de succès | HTTP 200, 201, 202, ou 204 sont considérés comme une livraison réussie. |
| Nouvelles tentatives | Aucune nouvelle tentative en cas d'échec. Si la livraison du webhook échoue (réponse d'échec ou délai dépassé), les résultats restent disponibles via l'interrogation du statut du lot. |
| Authentification | Aucun en-tête d'authentification n'est envoyé. Validez le batch_id par rapport à vos propres enregistrements si nécessaire. |
Restrictions selon le forfait d'abonnement#
| Fonctionnalité | Founding | Indie | Studio | Enterprise |
|---|---|---|---|---|
| Mode asynchrone | Non | Oui | Oui | Oui |
| Interrogation du statut du lot | Non | Oui | Oui | Oui |
| Notifications par e-mail | Non | Oui | Oui | Oui |
Rappels webhook (callback_url) |
Non | Non | Oui | Oui |
notification_email ne nécessite aucune fonctionnalité de forfait spécifique. Les rappels webhook (callback_url) nécessitent la fonctionnalité has_webhook, disponible à partir des forfaits Studio.
Tester les webhooks#
Pendant le développement, utilisez webhook.site pour générer une URL de rappel temporaire à des fins de test :
curl -X POST https://api.enconvert.com/v1/convert/url-to-pdf \
-H "X-API-Key: sk_your_private_key" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"async_mode": true,
"callback_url": "https://webhook.site/your-unique-id"
}'
Consultez votre tableau de bord webhook.site pour inspecter la charge utile exacte du rappel une fois la tâche terminée.
Questions fréquentes#
Comment recevoir un rappel webhook lorsqu'une tâche de conversion de fichier se termine ?#
Incluez le paramètre callback_url dans votre requête avec une clé API privée. EnConvert envoie un POST avec Content-Type: application/json à cette URL lorsque la tâche se termine. Les rappels webhook nécessitent un forfait avec accès aux webhooks (Studio, Production ou Enterprise).
EnConvert relance-t-il les livraisons de webhook échouées ?#
Non. Votre endpoint doit répondre dans un délai de 30 secondes avec HTTP 200, 201, 202, ou 204. Si la livraison échoue, les résultats restent disponibles via l'interrogation du statut du lot à GET /v1/convert/batch/{batch_id}.
Puis-je utiliser ensemble les notifications par e-mail, webhook et interrogation ?#
Oui. notification_email, callback_url et l'interrogation du statut fonctionnent tous indépendamment et peuvent être combinés dans la même requête. Si notification_email est omis, l'e-mail de fin est envoyé par défaut à l'adresse e-mail du propriétaire du projet.
Pourquoi est-ce que je reçois un webhook par URL au lieu d'un seul pour tout le lot ?#
En mode individuel, vous recevez N POST webhook séparés (un par URL) et N e-mails séparés. Pour recevoir un seul webhook et un seul e-mail pour le lot entier, utilisez le mode ZIP, qui envoie un seul POST avec total_tasks, successful_tasks, failed_tasks, et un tableau tasks.
Comment puis-je tester les rappels webhook pendant le développement ?#
Utilisez webhook.site pour générer une URL temporaire et transmettez-la comme callback_url dans votre requête. Le tableau de bord webhook.site affiche la charge utile JSON exacte qu'EnConvert livre lorsque la tâche se termine.