Référence de l’API

Toutes les routes publiques, avec leurs paramètres et leurs réponses. Cette page est générée automatiquement à partir de l’API : elle ne peut pas diverger du service réel.

Adresse : https://api.lexiafrik.com · Authentification : en-tête X-API-Key(voir Authentification). Un astérisque rouge * marque un champ obligatoire.

Les champs de type x ? sont facultatifs et peuvent valoir null.

Transcription

Envoyer de l’audio, suivre un job asynchrone.

get/v1/tasks/{task_id}

Suivre l'état d'un job de transcription

Paramètres

NomOùTypeDescription
task_id *cheminstring
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Réponse 200

ChampTypeDescription
audio_urlstring ?
errorstring ?
full_textstring ?
languagestring ?
mean_rtfnumber ?
modelstring ?
n_segmentsinteger ?
originalOriginalFileInfo ?
sample_rateinteger ?
segmentsSegmentResult[] ?
status *string
task_id *string
timestampstring ?
titlestring ?
total_duration_snumber ?
total_inference_snumber ?

Erreurs possibles : 401 (Unauthorized), 403 (Forbidden), 404 (Not Found). Voir Erreurs.

get/v1/tasks/{task_id}/original

Lien de téléchargement du fichier original (audio/vidéo chargé)

Paramètres

NomOùTypeDescription
task_id *cheminstring
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Réponse 200

ChampTypeDescription
expires_atstring ?
filenamestring ?
url *string
url_expires_in *integer

Erreurs possibles : 403 (Forbidden), 404 (Not Found), 410 (Gone). Voir Erreurs.

post/v1/transcribe

Transcrire un fichier audio en Wolof

Paramètres

NomOùTypeDescription
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Corps (multipart/form-data)

ChampTypeDescription
file *string
include_segmentsbooleanInclure les segments dans la réponse (défaut: texte complet uniquement)défaut false
keep_audiobooleanConserver un audio compressé pour la réécoute. false = seul le texte est conservédéfaut true
languagestringLangue BCP-47 ou code court (wo, ha, yo…). Défaut : wo-SN. Voir GET /v1/languages
max_segment_snumberDurée max d'un segment (s)défaut 30 · min 5 · max 60
min_segment_snumberDurée min d'un segment (s)défaut 1 · min 0.5 · max 10
min_silence_msintegerDurée min de silence pour couper (ms)défaut 250 · min 100 · max 3000
silence_thresh_dbfsintegerSeuil de silence (dBFS)défaut -35 · min -60 · max -10

Réponse 200

ChampTypeDescription
full_text *string
languagestring ?
mean_rtf *number
model *string
n_segments *integer
request_id *string
sample_rateinteger ?
segmentsSegmentResult[] ?
successbooleandéfaut true
timestamp *string
total_duration_s *number
total_inference_s *number

Erreurs possibles : 401 (Unauthorized), 413 (Request Entity Too Large), 415 (Unsupported Media Type), 429 (Too Many Requests). Voir Erreurs.

post/v1/transcribe-url

Transcrire un fichier audio/vidéo chargé ou une URL directe (job asynchrone)

Paramètres

NomOùTypeDescription
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Corps (application/json)

ChampTypeDescription
include_segmentsbooleanInclure les segments dans la réponse (défaut: texte complet uniquement)défaut false
keep_audiobooleanConserver un audio compressé pour la réécoute (lecteur). false = seul le texte est conservédéfaut true
languagestring ?Langue BCP-47 ou code court (wo, ha, yo…). Défaut : wo-SN. Voir GET /v1/languages
max_segment_snumberDurée max d'un segment (s)défaut 30 · min 5 · max 60
min_segment_snumberDurée min d'un segment (s)défaut 1 · min 0.5 · max 10
min_silence_msintegerDurée min de silence pour couper (ms)défaut 250 · min 100 · max 3000
silence_thresh_dbfsintegerSeuil de silence (dBFS)défaut -35 · min -60 · max -10
titlestring ?Titre affiché (ex. nom du fichier d'origine)≤ 255 car.
upload_keystring ?Clé retournée par POST /v1/uploads
urlstring ?URL directe d'un fichier audio/vidéo (https)
webhook_urlstring ?URL de callback quand le job est terminé

Réponse 202

ChampTypeDescription
messagestringdéfaut "Transcription en cours. Suivez la progression via GET /v1/tasks/{task_id}."
statusstringdéfaut "processing"
task_id *string

Erreurs possibles : 401 (Unauthorized), 403 (Forbidden), 429 (Too Many Requests). Voir Erreurs.

post/v1/uploads

Obtenir une URL d'upload direct pour un fichier audio/vidéo

Paramètres

NomOùTypeDescription
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Corps (application/json)

ChampTypeDescription
content_typestringContent-Type qui sera envoyé lors du PUTdéfaut "application/octet-stream" · ≤ 100 car.
filename *stringNom du fichier (extension utilisée pour la validation)≤ 255 car.

Réponse 200

ChampTypeDescription
expires_in *integer
headers *object
max_size_mb *integer
methodstringdéfaut "PUT"
upload_key *string
upload_url *string

Historique

Retrouver, corriger et supprimer vos transcriptions.

get/v1/transcriptions

Lister ses transcriptions

Paramètres

NomOùTypeDescription
pagerequêteintegerdéfaut 1 · min 1
page_sizerequêteintegerdéfaut 20 · min 1 · max 100
statusrequêtestring ?
cs_languagerequêtestring ?Langue détectée (wo, fr, en, ar)≤ 8 car.
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Réponse 200 : Successful Response

delete/v1/transcriptions/{request_id}

Supprimer une transcription (données et fichiers audio)

Paramètres

NomOùTypeDescription
request_id *cheminstring
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Réponse 200 : Successful Response

get/v1/transcriptions/{request_id}

Détail d'une transcription

Paramètres

NomOùTypeDescription
request_id *cheminstring
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Réponse 200 : Successful Response

patch/v1/transcriptions/{request_id}

Corriger le texte ou les tags

Paramètres

NomOùTypeDescription
request_id *cheminstring
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Corps (application/json)

ChampTypeDescription
edited_textstring ?≤ 200000 car.
tagsTag[] ?

Réponse 200 : Successful Response

get/v1/transcriptions/{request_id}/audio

URL de lecture de l'audio complet

Paramètres

NomOùTypeDescription
request_id *cheminstring
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Réponse 200 : Successful Response

get/v1/transcriptions/{request_id}/segments

Segments (pagination, recherche)

Paramètres

NomOùTypeDescription
request_id *cheminstring
offsetrequêteintegerdéfaut 0 · min 0
limitrequêteinteger ?Absent = tous les segments (export)min 1 · max 100000
qrequêtestring ?Texte, correction, tag ou langue (wolof, fr…)≤ 200 car.
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Réponse 200 : Successful Response

delete/v1/transcriptions/{request_id}/segments/{segment_id}

Supprimer un segment

Paramètres

NomOùTypeDescription
request_id *cheminstring
segment_id *chemininteger
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Réponse 200 : Successful Response

patch/v1/transcriptions/{request_id}/segments/{segment_id}

Corriger le texte ou les tags d'un segment

Paramètres

NomOùTypeDescription
request_id *cheminstring
segment_id *chemininteger
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Corps (application/json)

ChampTypeDescription
edited_textstring ?≤ 200000 car.
tagsTag[] ?

Réponse 200 : Successful Response

get/v1/transcriptions/{request_id}/segments/{segment_id}/audio

URL de lecture de l'audio d'un segment

Paramètres

NomOùTypeDescription
request_id *cheminstring
segment_id *chemininteger
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Réponse 200 : Successful Response

Clés API

Une clé par application ; la clé principale ne se révoque pas.

get/v1/keys

Lister les clés de son compte

Paramètres

NomOùTypeDescription
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Réponse 200 : Successful Response

post/v1/keys

Créer une clé supplémentaire (une par application)

Paramètres

NomOùTypeDescription
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Corps (application/json)

ChampTypeDescription
descriptionstring ?≤ 256 car.
name *string≤ 64 car.
notifybooleandéfaut true

Réponse 201 : Successful Response

delete/v1/keys/{key_hash}

Révoquer une clé du compte (pas la principale)

Paramètres

NomOùTypeDescription
key_hash *cheminstring
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Réponse 200 : Successful Response

patch/v1/keys/{key_hash}

Renommer une clé du compte

Paramètres

NomOùTypeDescription
key_hash *cheminstring
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Corps (application/json)

ChampTypeDescription
name *string≤ 64 car.

Réponse 200 : Successful Response

post/v1/keys/{key_hash}/rotate

Remplacer une clé du compte par une nouvelle

Paramètres

NomOùTypeDescription
key_hash *cheminstring
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Corps (application/json)

ChampTypeDescription
descriptionstring ?≤ 256 car.
namestring ?≤ 64 car.
notifybooleandéfaut true

Réponse 201 : Successful Response

Compte et usage

Identité de la clé, consommation, offre et crédit.

get/v1/billing/account

Offre, quota mensuel et portefeuille

Paramètres

NomOùTypeDescription
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Réponse 200 : Successful Response

get/v1/billing/ledger

Journal du portefeuille

Paramètres

NomOùTypeDescription
limitrequêteintegerdéfaut 50 · min 1 · max 500
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Réponse 200 : Successful Response

get/v1/billing/plans

Grille tarifaire officielle

Réponse 200 : Successful Response

get/v1/usage

Consulter votre consommation

Retourne le nombre de requêtes et secondes audio utilisées aujourd'hui et au total.

Paramètres

NomOùTypeDescription
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Réponse 200

ChampTypeDescription
api_key_name *string
daily_limit_seconds *integer
member_since *string
remaining_seconds *number
tier *string
today_audio_seconds *number
today_requests *integer
total_audio_seconds *number
total_requests *integer

get/v1/usage/dashboard

Usage du compte : jour, mois, historique, langues, par clé

Paramètres

NomOùTypeDescription
periodrequêtestringdéfaut "7d"
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Réponse 200 : Successful Response

get/v1/whoami

Identité de la clé ou de la session

Compte (clé principale) et clé réellement utilisée. Sert au SaaS à valider une clé brute sans accès à la base.

Paramètres

NomOùTypeDescription
authorizationen-têtestring ?Bearer <jeton d'accès> : session utilisateur (/v1/auth), ex. mobile

Réponse 200 : Successful Response

Connexion d’un terminal

Flux utilisé par lexiafrik login (RFC 8628).

post/v1/auth/device

Terminal : démarrer la connexion (device code)

Corps (application/json)

ChampTypeDescription
client_namestring ?≤ 100 car.

Réponse 200 : Successful Response

post/v1/auth/device/token

Terminal : récupérer la clé API une fois la connexion approuvée

Corps (application/json)

ChampTypeDescription
device_code *string≤ 200 car.

Réponse 200 : Successful Response

Langues et santé

Informations publiques.

get/health

Health Check

Réponse 200

ChampTypeDescription
devicestring ?
enginestring ?
modelstring ?
statusstringdéfaut "ok"
version *string

get/v1/languages

Langues disponibles pour la transcription

Réponse 200 : Successful Response