🔌 Endpoints
Base : https://ocr.locme.fr
| Méthode | Chemin | Description |
|---|---|---|
| POST | /ocr | Envoie un document (multipart). Lance un job et renvoie un job_id. |
| GET | /ocr/{job_id} | État et résultat du job (texte + montants extraits). |
| GET | /health | Sonde de santé du service. |
⚙️ Fonctionnement
L'OCR est asynchrone : l'envoi du fichier ne bloque pas, le traitement se fait en tâche de fond.
- 1. Envoi —
POST /ocravec le fichier → réponse202immédiate contenantjob_idetstatus_url. - 2. Polling — interrogez
GET /ocr/{job_id}jusqu'àstatus: "done". - 3. Résultat — le job contient le texte reconnu et les montants
ht,tva,ttc.
⚡ Démarrage rapide
# 1. Envoyer le document
curl -X POST https://ocr.locme.fr/ocr \
-F "file=@facture.pdf"
# → { "job_id": "ab12…", "status_url": "/ocr/ab12…" }
# 2. Récupérer le résultat (à répéter jusqu'à "done")
curl https://ocr.locme.fr/ocr/ab12…
# → { "status": "done", "amounts": { "ht":…, "tva":…, "ttc":… } }
const fd = new FormData();
fd.append('file', fichier); // File depuis <input type=file>
const r = await fetch('https://ocr.locme.fr/ocr', { method:'POST', body: fd });
const { job_id } = await r.json();
// Polling toutes les 1,5 s
async function attendre(id) {
while (true) {
const job = await (await fetch(`https://ocr.locme.fr/ocr/${id}`)).json();
if (job.status === 'done') return job;
await new Promise(r => setTimeout(r, 1500));
}
}
const resultat = await attendre(job_id);
console.log(resultat.amounts); // { ht, tva, ttc }
Astuce : espacez les requêtes de polling (1 à 2 s) et prévoyez un délai max — un PDF multipage peut prendre quelques secondes.
📦 Réponse JSON
POST /ocr — accusé (202)
{
"success": true,
"async": true,
"job_id": "ab12cd34…",
"status_url": "/ocr/ab12cd34…",
"filename": "facture.pdf",
"content_type": "application/pdf"
}
GET /ocr/{job_id} — job terminé
{
"status": "done",
"filename": "facture.pdf",
"amounts": {
"ht": 1000.00,
"tva": 200.00,
"ttc": 1200.00
}
}
Tant que le traitement n'est pas fini, status vaut "queued" puis "processing".
🧩 Formats & usages
Images & PDF
PNG, JPG, TIFF et PDF scannés. Le type est déduit de l'extension du fichier envoyé.
Extraction comptable
Détection automatique des montants HT, TVA et TTC — idéal pour la saisie de factures.
Intégration back-end
Réponse JSON neutre, sans dépendance — branchable sur un ERP, une GED ou un workflow n8n.