Aller au contenu

Jobs

Tout ce qui est lent dans Meetingize s’exécute comme un job asynchrone : le traitement d’une nouvelle réunion (transcription, diarisation, compte rendu IA) et la génération d’un document. Le POST qui lance le travail répond immédiatement avec le job ; vous le suivez ensuite par polling ou avec des webhooks.

kindLancé parSe termine par
meeting_processingPOST /v1/meetingsla transcription et le compte rendu IA (transcription seule avec transcribe_only)
document_generationPOST /v1/meetings/{id}/documents, ou document_templates à la création de la réunionun document (document_id)

status est l’état global, stage le détail :

statusstage (traitement de réunion)stage (génération de document)
queuedqueuedqueued
processingdownloading (avec audio_url), transcribing, summarizinggenerating
completeddonedone
failedl’étape où le job a échoué
canceledle traitement a été annulé (par exemple la réunion a été supprimée pendant son exécution)

Un traitement de réunion à l’étape summarizing dispose déjà de sa transcription ; il passe à completed quand le compte rendu IA est prêt.

GET /v1/jobs/{job_id} renvoie le statut, l’étape, les ids de ce qui a été produit et le coût d’un job. C’est ce que vous interrogez en polling.

{
"id": "job_9b0c2d1e",
"object": "job",
"kind": "meeting_processing",
"status": "completed",
"stage": "done",
"progress": null,
"meeting_id": "6f0c2a4e-1b7d-4c55-9a51-3e2d8f0b7c11",
"document_id": null,
"parent_job_id": null,
"transcribe_only": false,
"document_templates": ["tpl_42"],
"document_job_ids": ["job_a41f07c2"],
"error": null,
"usage": { "cost_eur": "0.0581", "wallet_eur": "0.0581", "on_demand_eur": "0.0000", "ledger_entry_ids": ["led_..."] },
"metadata": { "crm_id": "C-1042" },
"created_at": "2026-10-14T10:02:11Z",
"started_at": "2026-10-14T10:02:13Z",
"finished_at": "2026-10-14T10:09:42Z"
}
ChampSignification
meeting_idla réunion concernée (connue dès le départ)
document_iddocument_generation : le document une fois terminé
document_job_idsmeeting_processing : les jobs de document lancés après le compte rendu (depuis document_templates ou persona)
parent_job_iddocument_generation : le job de réunion qui l’a demandé à la création
error{code, message} quand le job a échoué
usagecoût du job une fois mesuré, voir facturation
metadatal’objet que vous avez envoyé, inchangé

GET /v1/jobs renvoie vos jobs, les plus récents en premier, filtrés avec status (queued, processing, completed, failed, canceled) et kind. Pratique pour voir ce qui occupe vos créneaux de traitement parallèle :

Fenêtre de terminal
curl -s "https://app.meetingize.com/api/v1/jobs?status=processing" -H "Authorization: Bearer $MEETINGIZE_API_KEY"
  • Polling : appelez GET /v1/jobs/{id} toutes les 10 à 30 secondes jusqu’à completed, failed ou canceled. Simple et suffisant pour des scripts.
  • Webhooks : les événements transcription.completed, processing.completed, document.generated et les .failed associés transportent le job dans data.object. Recommandé pour les intégrations.

Le guide pas à pas Créer une réunion et récupérer les résultats montre les deux approches.