OCR de documents

Extraction de texte et de montants depuis vos images et PDF scannés.
API asynchrone : on envoie un fichier, on récupère le texte et les montants HT / TVA / TTC d'une facture.

  • Upload multipart — images (PNG, JPG, TIFF) et PDF scannés
  • Traitement en tâche de fond — réponse immédiate avec un job_id
  • Extraction des montants de facture : HT, TVA, TTC
  • Réponse JSON — intégrable dans n'importe quel back-end
API REST Asynchrone FastAPI JSON
ocr.sh
# 1. Envoyer le document curl -X POST https://ocr.locme.fr/ocr \ -F "file=@facture.pdf" # → { job_id, status_url } # 2. Récupérer le résultat curl https://ocr.locme.fr/ocr/$JOB # → { amounts: { ht, tva, ttc } }

🔌 Endpoints

Base : https://ocr.locme.fr

MéthodeCheminDescription
POST/ocrEnvoie 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/healthSonde 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. EnvoiPOST /ocr avec le fichier → réponse 202 immédiate contenant job_id et status_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.