Référence d'API

August 6, 2026 · View on GitHub

Fichier produit par scripts/generate_api_reference.py (vague C8) et gardé en CI (tests/test_api_reference.py). Après tout ajout/changement de route : venv/bin/python scripts/generate_api_reference.py puis committer le diff.

Contrat scriptable : les routes marquées ⭐ (__api_stable__) forment le parcours upload → process → status → download que les auto-hébergeurs peuvent scripter — c'est un contrat ; le reste est interne et peut bouger.

Authentification des routes ⭐ : cookie de session (login) OU jeton d'API personnel Authorization: Bearer tia_… (page « Mon compte → Jetons d'API »). Le jeton porte les permissions de son propriétaire, v1 limité aux routes ⭐ — la création du job reste en session. Cf. docs/GESTION_IDENTITE.md §3.8.

Portail TranscrIA (app principale)

Blueprint (app)

RouteMéthodesAuthDescriptionModule
/i18n/messages.jsGETCatalogue JS : window.I18N = { source_fr: traduction } pour la locale courante.transcria.web.i18n

Blueprint audit

RouteMéthodesAuthDescriptionModule
/admin/auditGETconnexion + Permission.ACCESS_SYSTEM(docstring manquante)transcria.audit.routes
/admin/audit/export.csvGETconnexion + Permission.ACCESS_SYSTEM(docstring manquante)transcria.audit.routes

Blueprint auth

RouteMéthodesAuthDescriptionModule
/account/passwordGET,POSTconnexion requise(docstring manquante)transcria.auth.routes
/account/tokensGET,POSTconnexion requiseChantier identité lot 4 : jetons d'API personnels (« Mon compte »).transcria.auth.routes
/account/tokens/<token_id>/revokePOSTconnexion requiseRévoque un de MES jetons (soft : revoked_at posé, la trace d'audit reste).transcria.auth.routes
/admin/groupsGETconnexion requise(docstring manquante)transcria.auth.routes
/admin/groups/<group_id>/editGET,POSTconnexion requise(docstring manquante)transcria.auth.routes
/admin/groups/newGET,POSTconnexion + Permission.MANAGE_USERS(docstring manquante)transcria.auth.routes
/admin/usersGETconnexion + Permission.MANAGE_USERS(docstring manquante)transcria.auth.routes
/admin/users/<user_id>/editGET,POSTconnexion + Permission.MANAGE_USERS(docstring manquante)transcria.auth.routes
/admin/users/newGET,POSTconnexion + Permission.MANAGE_USERS(docstring manquante)transcria.auth.routes
/auth/oidc/callbackGETRetour de l'IdP : validation complète, JIT, session — ou refus audité.transcria.auth.routes
/auth/oidc/loginGETChantier identité lot 1 : départ du flux Authorization Code + PKCE.transcria.auth.routes
/auth/proxy/loginGETChantier identité lot 3 : connexion par en-têtes de proxy de confiance.transcria.auth.routes
/loginGET,POST(docstring manquante)transcria.auth.routes
/logoutPOSTconnexion requise(docstring manquante)transcria.auth.routes

Blueprint central_lexicon

RouteMéthodesAuthDescriptionModule
/admin/lexiconsGETconnexion requise(docstring manquante)transcria.context.central_lexicon_routes
/admin/lexicons/<lexicon_id>GETconnexion requise(docstring manquante)transcria.context.central_lexicon_routes
/admin/lexicons/<lexicon_id>/deletePOSTconnexion requise(docstring manquante)transcria.context.central_lexicon_routes
/admin/lexicons/<lexicon_id>/entriesPOSTconnexion requise(docstring manquante)transcria.context.central_lexicon_routes
/admin/lexicons/<lexicon_id>/entries/<entry_id>POSTconnexion requise(docstring manquante)transcria.context.central_lexicon_routes
/admin/lexicons/<lexicon_id>/entries/<entry_id>/deletePOSTconnexion requise(docstring manquante)transcria.context.central_lexicon_routes
/admin/lexicons/<lexicon_id>/export.csvPOSTconnexion requise(docstring manquante)transcria.context.central_lexicon_routes
/admin/lexicons/<lexicon_id>/importPOSTconnexion requise(docstring manquante)transcria.context.central_lexicon_routes
/admin/lexicons/<lexicon_id>/metadataPOSTconnexion requise(docstring manquante)transcria.context.central_lexicon_routes
/admin/lexicons/newGET,POSTconnexion requise(docstring manquante)transcria.context.central_lexicon_routes

Blueprint meeting_types

RouteMéthodesAuthDescriptionModule
/api/meeting-typesGETconnexion requiseCatalogue de l'utilisateur courant : intégrés + personnalisés visibles.transcria.context.meeting_type_routes
/api/meeting-typesPOSTconnexion requise(docstring manquante)transcria.context.meeting_type_routes
/api/meeting-types/<template_id>DELETEconnexion requise(docstring manquante)transcria.context.meeting_type_routes
/api/meeting-types/<template_id>PUTconnexion requise(docstring manquante)transcria.context.meeting_type_routes
/api/meeting-types/<template_id>/exportGETconnexion requiseFichier d'échange du type (schéma du catalogue, SANS branding) — §8.transcria.context.meeting_type_routes
/api/meeting-types/<template_id>/logoDELETE,POSTconnexion requiseLogo du type — branding LOCAL (re-encodé, jamais exporté ni importé).transcria.context.meeting_type_routes
/api/meeting-types/<template_id>/preview.docxGETconnexion requiseAperçu d'un type ENREGISTRÉ (avec son logo) — visible de l'utilisateur requis.transcria.context.meeting_type_routes
/api/meeting-types/<template_id>/scopePOSTconnexion requise(docstring manquante)transcria.context.meeting_type_routes
/api/meeting-types/importPOSTconnexion requiseImport d'un fichier d'échange → type PRIVÉ, INACTIF (à relire) — §8.2.transcria.context.meeting_type_routes
/api/meeting-types/preview.docxPOSTconnexion requiseAperçu AVANT enregistrement : la définition en cours d'édition → DOCX d'exemple.transcria.context.meeting_type_routes
/meeting-typesGETconnexion requisePage « Mes types de réunion » — galerie + éditeur (lot E).transcria.context.meeting_type_routes

Blueprint queue_api

RouteMéthodesAuthDescriptionModule
/api/queue/<job_id>/cancelPOSTconnexion requise(docstring manquante)transcria.queue.routes
/api/queue/<job_id>/move-downPOSTconnexion requise(docstring manquante)transcria.queue.routes
/api/queue/<job_id>/move-upPOSTconnexion requise(docstring manquante)transcria.queue.routes
/api/queue/<job_id>/pausePOSTconnexion requise(docstring manquante)transcria.queue.routes
/api/queue/<job_id>/priorityPOSTconnexion requise(docstring manquante)transcria.queue.routes
/api/queue/<job_id>/resumePOSTconnexion requise(docstring manquante)transcria.queue.routes
/api/queue/e2e-test-jobs/purgePOSTconnexion requise(docstring manquante)transcria.queue.routes
/api/queue/statusGETconnexion requise(docstring manquante)transcria.queue.routes
/api/schedule/enabledPOSTconnexion + Permission.MANAGE_SCHEDULEActiver/désactiver l'AGENDA ENTIER depuis la page (constat audit C3.6 : ontranscria.queue.routes
/api/schedule/windowsGETconnexion + Permission.MANAGE_SCHEDULE(docstring manquante)transcria.queue.routes
/api/schedule/windowsPOSTconnexion + Permission.MANAGE_SCHEDULE(docstring manquante)transcria.queue.routes
/api/schedule/windows/<int:window_id>DELETEconnexion + Permission.MANAGE_SCHEDULE(docstring manquante)transcria.queue.routes
/api/schedule/windows/<int:window_id>PUTconnexion + Permission.MANAGE_SCHEDULE(docstring manquante)transcria.queue.routes

Blueprint queue_pages

RouteMéthodesAuthDescriptionModule
/admin/queueGETconnexion requise(docstring manquante)transcria.queue.routes
/admin/scheduleGETconnexion + Permission.MANAGE_SCHEDULE(docstring manquante)transcria.queue.routes

Blueprint srt_editor

RouteMéthodesAuthDescriptionModule
/api/jobs/<job_id>/audio/streamGETconnexion requise(docstring manquante)transcria.web.editor_routes
/api/jobs/<job_id>/editor/draftDELETEconnexion requise(docstring manquante)transcria.web.editor_routes
/api/jobs/<job_id>/editor/draftGETconnexion requiseContenu du brouillon (écran « Reprendre où vous en étiez »).transcria.web.editor_routes
/api/jobs/<job_id>/editor/draftPUTconnexion requise(docstring manquante)transcria.web.editor_routes
/api/jobs/<job_id>/editor/peaksGETconnexion requise(docstring manquante)transcria.web.editor_routes
/api/jobs/<job_id>/editor/savePOSTconnexion requise(docstring manquante)transcria.web.editor_routes
/api/jobs/<job_id>/editor/stateGETconnexion requise(docstring manquante)transcria.web.editor_routes
/api/jobs/<job_id>/editor/sync-summaryPOSTconnexion requiseEnfile la passe LLM « synthèse mise à jour depuis le SRT corrigé ».transcria.web.editor_routes
/jobs/<job_id>/editorGETconnexion requise(docstring manquante)transcria.web.editor_routes

Blueprint voice

RouteMéthodesAuthDescriptionModule
/admin/voicesGETconnexion requise(docstring manquante)transcria.voice.routes
/admin/voices/<subject_id>GETconnexion requise(docstring manquante)transcria.voice.routes
/admin/voices/<subject_id>/consent-proof/<consent_id>GETconnexion requise(docstring manquante)transcria.voice.routes
/admin/voices/<subject_id>/consentsPOSTconnexion requise(docstring manquante)transcria.voice.routes
/admin/voices/<subject_id>/disablePOSTconnexion requise(docstring manquante)transcria.voice.routes
/admin/voices/<subject_id>/generatePOSTconnexion requise(docstring manquante)transcria.voice.routes
/admin/voices/<subject_id>/metadataPOSTconnexion requise(docstring manquante)transcria.voice.routes
/admin/voices/consent-form.pdfGETconnexion requise(docstring manquante)transcria.voice.routes
/admin/voices/newGET,POSTconnexion requise(docstring manquante)transcria.voice.routes

Blueprint web

RouteMéthodesAuthDescriptionModule
/GETconnexion requise(docstring manquante)transcria.web.pages_routes
/admin/configGET,POSTconnexion + Permission.MANAGE_CONFIG(docstring manquante)transcria.web.admin_routes
/admin/connecteursGETconnexion + Permission.MANAGE_CONFIGConnecteurs de réunion : check-list vivante, activation en UN clic, exécutants.transcria.web.admin_routes
/admin/connecteurs/<connector_id>/credentialsPOSTconnexion + Permission.MANAGE_CONFIGIdentités de PLATEFORME saisies par l'interface (« l'admin ne touche quetranscria.web.admin_routes
/admin/connecteurs/<connector_id>/testPOSTconnexion + Permission.MANAGE_CONFIGBouton « Tester la connexion » — vérifie les identités contre l'AUTHENTIFICATIONtranscria.web.admin_routes
/admin/connecteurs/meet/spacesPOSTconnexion + Permission.MANAGE_CONFIGRéunions Meet à surveiller — ajout/retrait depuis l'interface.transcria.web.admin_routes
/admin/connecteurs/meetings/togglePOSTconnexion + Permission.MANAGE_CONFIGInterrupteur UNIQUE des réunions en ligne — active = auto-provisionnement complettranscria.web.admin_routes
/admin/connecteurs/runners/<name>/revokePOSTconnexion + Permission.MANAGE_CONFIGRévoque PRÉCISÉMENT cet exécutant (son jeton du heartbeat) — son prochain battementtranscria.web.admin_routes
/admin/connecteurs/runners/kitPOSTconnexion + Permission.MANAGE_CONFIGGénère le kit « exécutant distant » (docs/RUNNER_DISTANT_KIT.md) : un scripttranscria.web.admin_routes
/admin/connecteurs/zoom-sdk/test-legacyPOSTconnexion + Permission.MANAGE_CONFIGBouton « Tester la connexion » de la fiche Zoom : vérifie le couple Clienttranscria.web.admin_routes
/admin/first-run-statusGETconnexion + Permission.MANAGE_CONFIGFragment HTML de la checklist de premier démarrage (204 quand tout est vert).transcria.web.admin_routes
/admin/hardwareGET,POSTconnexion + Permission.MANAGE_CONFIGPréconisations matériel (lot conseiller) : scan GPU vs config courante.transcria.web.admin_routes
/admin/maintenanceGETconnexion + Permission.MANAGE_CONFIG(docstring manquante)transcria.web.admin_routes
/admin/maintenance/backupPOSTconnexion + Permission.MANAGE_CONFIG(docstring manquante)transcria.web.admin_routes
/admin/maintenance/backup/<name>/downloadGETconnexion + Permission.MANAGE_CONFIG(docstring manquante)transcria.web.admin_routes
/admin/maintenance/restorePOSTconnexion + Permission.MANAGE_CONFIG(docstring manquante)transcria.web.admin_routes
/admin/maintenance/schedulePOSTconnexion + Permission.MANAGE_CONFIG(docstring manquante)transcria.web.admin_routes
/admin/maintenance/update-checkPOSTconnexion + Permission.MANAGE_CONFIGVérification MANUELLE (toujours disponible, indépendante de l'opt-in) :transcria.web.admin_routes
/admin/maintenance/upgradePOSTconnexion + Permission.MANAGE_CONFIGMise à niveau outillée depuis l'UI (bare-metal systemd uniquement).transcria.web.admin_routes
/admin/maintenance/upgrade/statusGETconnexion + Permission.MANAGE_CONFIGProgression de la mise à niveau (sondée par la page — lecture du fichier d'état).transcria.web.admin_routes
/admin/modelsGETconnexion + Permission.MANAGE_CONFIG(docstring manquante)transcria.web.admin_routes
/admin/models/activatePOSTconnexion + Permission.MANAGE_CONFIG(docstring manquante)transcria.web.admin_routes
/admin/models/downloadPOSTconnexion + Permission.MANAGE_CONFIG(docstring manquante)transcria.web.admin_routes
/admin/models/ollama-activatePOSTconnexion + Permission.MANAGE_CONFIGBascule le modèle Ollama servi — symétrique du « Activer (servir) » des GGUF.transcria.web.admin_routes
/admin/models/progress/<role>GETconnexion + Permission.MANAGE_CONFIG(docstring manquante)transcria.web.admin_routes
/api/jobs/<job_id>/analyzePOSTconnexion requise(docstring manquante)transcria.web.wizard_api
/api/jobs/<job_id>/audio/excerptGETconnexion requise(docstring manquante)transcria.web.downloads_api
/api/jobs/<job_id>/available-lexiconsGETconnexion requise(docstring manquante)transcria.web.lexicon_api
/api/jobs/<job_id>/contextPOSTconnexion requise(docstring manquante)transcria.web.wizard_api
/api/jobs/<job_id>/download/audioGETconnexion requise(docstring manquante)transcria.web.downloads_api
/api/jobs/<job_id>/download/docxGETconnexion requiseTélécharge le compte rendu Word (DOCX — contrat scriptable).transcria.web.downloads_api
/api/jobs/<job_id>/download/packageGETconnexion requiseTélécharge le paquet complet des livrables (ZIP — contrat scriptable).transcria.web.downloads_api
/api/jobs/<job_id>/download/srtGETconnexion requiseTélécharge le sous-titrage corrigé (SRT — contrat scriptable).transcria.web.downloads_api
/api/jobs/<job_id>/exportPOSTconnexion requise(docstring manquante)transcria.web.processing_api
/api/jobs/<job_id>/lexiconPOSTconnexion requise(docstring manquante)transcria.web.lexicon_api
/api/jobs/<job_id>/lexicon/debugGETconnexion requiseDiagnostic lexique pour faciliter le débogage des affichages contextes.transcria.web.lexicon_api
/api/jobs/<job_id>/lexicon/promotePOSTconnexion requiseÉtape 6 : pousser une forme validée du lexique de SESSION vers un lexiquetranscria.web.lexicon_api
/api/jobs/<job_id>/meeting-invitePOSTconnexion requiseMémorise une invitation de réunion collée (objet, corps, destinataires).transcria.web.wizard_api
/api/jobs/<job_id>/meeting-invite/documentPOSTconnexion requiseJoint un document présenté (PDF/DOCX/PPTX/TXT) au contexte du résumé.transcria.web.wizard_api
/api/jobs/<job_id>/meeting-invite/document/<int:index>DELETEconnexion requiseRetire un document joint (par position dans la liste).transcria.web.wizard_api
/api/jobs/<job_id>/participantsPOSTconnexion requise(docstring manquante)transcria.web.wizard_api
/api/jobs/<job_id>/processPOSTconnexion requiseLance le traitement complet du job (mise en file — contrat scriptable).transcria.web.processing_api
/api/jobs/<job_id>/profilePOSTconnexion requisePersiste le profil choisi à l'étape 1 (le wizard adapte alors ses étapes au profil).transcria.web.wizard_api
/api/jobs/<job_id>/qualityPOSTconnexion requise(docstring manquante)transcria.web.processing_api
/api/jobs/<job_id>/refinePOSTconnexion requise(docstring manquante)transcria.web.refine_api
/api/jobs/<job_id>/refine/chatGETconnexion requiseEndpoint de polling unique du panneau : tours + busy + versions + options.transcria.web.refine_api
/api/jobs/<job_id>/refine/render-optionsPOSTconnexion requiseOptions de rendu déterministes SANS LLM (thème/sections) — effet immédiat.transcria.web.refine_api
/api/jobs/<job_id>/refine/revertPOSTconnexion requiseRestaure un snapshot pris AVANT une application (retour arrière utilisateur).transcria.web.refine_api
/api/jobs/<job_id>/reprocessPOSTconnexion requiseRelance le traitement d'un job déjà terminé (lexique modifié, prompt mis à jour…).transcria.web.processing_api
/api/jobs/<job_id>/selected-lexiconsPOSTconnexion requise(docstring manquante)transcria.web.lexicon_api
/api/jobs/<job_id>/speaker-hintPOSTconnexion requiseMémorise la fourchette de locuteurs (min/max) choisie par l'utilisateur.transcria.web.wizard_api
/api/jobs/<job_id>/speakers/clip/<path:clip_name>GETconnexion requise(docstring manquante)transcria.web.downloads_api
/api/jobs/<job_id>/speakers/clipsGETconnexion requise(docstring manquante)transcria.web.downloads_api
/api/jobs/<job_id>/speakers/detectPOSTconnexion requise(docstring manquante)transcria.web.wizard_api
/api/jobs/<job_id>/speakers/mapPOSTconnexion requise(docstring manquante)transcria.web.wizard_api
/api/jobs/<job_id>/speakers/voice-matchPOSTconnexion requise(docstring manquante)transcria.web.wizard_api
/api/jobs/<job_id>/statusGETconnexion requiseEndpoint léger de polling — état courant du job pendant le traitement (contrat scriptable).transcria.web.processing_api
/api/jobs/<job_id>/summaryPOSTconnexion requise(docstring manquante)transcria.web.wizard_api
/api/jobs/<job_id>/uploadPOSTconnexion requiseDépose le fichier audio d'un job fraîchement créé (contrat scriptable).transcria.web.wizard_api
/api/meetingsPOSTconnexion requisePlanifie une réunion : crée le JOB (provenance posée) + la session (référence chiffrée),transcria.web.meetings_api
/api/meetings/<session_id>/cancelPOSTconnexion requiseAnnule une session (états annulables seulement) — visibilité = celle du job porteur.transcria.web.meetings_api
/api/meetings/<session_id>/captionsGETconnexion requiseDelta du suivi en direct pour la page du job (?after=<n>) — visibilité = celle dutranscria.web.meetings_api
/api/meetings/<session_id>/reschedulePOSTconnexion requiseRelance une captation depuis un état terminal replanifiable : NOUVELLE session, MÊMEtranscria.web.meetings_api
/api/meetings/availabilityGETconnexion requiseMoteurs prêts + nombre de runners — pilote l'affichage de la carte « Réunion ».transcria.web.meetings_api
/api/profiles/availabilityGETconnexion requiseProfils de traitement disponibles + profil recommandé (source unique pour le wizard).transcria.web.wizard_api
/api/resources/statusGETconnexion requiseÉtat des ressources distantes pour le panneau frontale (mode dégradé inclus).transcria.web.processing_api
/api/system/statusGETconnexion + Permission.ACCESS_SYSTEM(docstring manquante)transcria.web.processing_api
/healthGET(docstring manquante)transcria.web.health_routes
/jobs/<job_id>GETconnexion requise(docstring manquante)transcria.web.pages_routes
/jobs/<job_id>/deletePOSTconnexion + Permission.DELETE_JOBS(docstring manquante)transcria.web.pages_routes
/jobs/<job_id>/resultGETconnexion requise(docstring manquante)transcria.web.pages_routes
/jobs/newPOSTconnexion + Permission.CREATE_JOBS(docstring manquante)transcria.web.pages_routes
/metricsGET(docstring manquante)transcria.web.health_routes
/readyGET(docstring manquante)transcria.web.health_routes
/systemGETconnexion + Permission.ACCESS_SYSTEM(docstring manquante)transcria.web.pages_routes
/v1/audio/ingestPOSTDépôt d'un enregistrement post-réunion → job TranscrIA (pipeline complet).transcria.web.facade_api
/v1/audio/transcriptionsPOSTTranscription STT sans état, compatible OpenAI Audio Transcriptions.transcria.web.facade_api
/v1/meetings/<session_id>/captionsPOSTTours de parole PROVISOIRES relayés par lots par le runner claimant (vague 5, D5.5).transcria.web.meetings_api
/v1/meetings/<session_id>/eventsPOSTÉvénement de vie relayé par le runner claimant (jamais un terminal) — idempotent,transcria.web.meetings_api
/v1/meetings/<session_id>/resultPOSTIssue d'une exécution de bot : mapping des codes 0/1/2/3 par la machine d'étatstranscria.web.meetings_api
/v1/meetings/claimPOSTClaim atomique (SKIP LOCKED) des sessions dues — SEUL endroit où la référence detranscria.web.meetings_api
/v1/meetings/meet/watched-usersGETUtilisateurs dont le service Meet doit surveiller les réunions.transcria.web.meetings_api
/v1/runners/heartbeatPOSTAnnonce d'un exécutant (capacité, plateformes couvertes, images) — alimentetranscria.web.meetings_api

Portail TranscrIA (app principale) : 154 routes, 92 sans docstring.

Service d'inférence (nœud de ressources)

Blueprint capabilities

RouteMéthodesAuthDescriptionModule
/capabilitiesGET(docstring manquante)inference_service.routes.capabilities

Blueprint diarize

RouteMéthodesAuthDescriptionModule
/infer/diarizePOST(docstring manquante)inference_service.routes.diarize

Blueprint engines

RouteMéthodesAuthDescriptionModule
/engines/ensurePOST(docstring manquante)inference_service.routes.engines

Blueprint health

RouteMéthodesAuthDescriptionModule
/healthGETLe process répond — ne charge aucun modèle, toujours 200 si vivant.inference_service.routes.health
/modelsGETInventaire des modèles servis et leur état (loaded/unloaded, device…).inference_service.routes.health
/readyGETPrêt à servir : les moteurs existent et peuvent charger/servent déjà.inference_service.routes.health

Blueprint transcribe

RouteMéthodesAuthDescriptionModule
/infer/transcribePOSTTranscrit un audio sur le nœud de calcul (référence fichier ou upload multipart).inference_service.routes.transcribe

Blueprint voice_embed

RouteMéthodesAuthDescriptionModule
/infer/voice-embedPOST(docstring manquante)inference_service.routes.voice_embed

Service d'inférence (nœud de ressources) : 8 routes, 4 sans docstring.