POST /models/{model_slug}/ocr

POST multipart/form-data : champ fichier obligatoire nommé exactement image (pas file). model_slug dans le chemin : alpha-digit-max ou alpha-digit-medium. Optionnel : pdf_password (chaîne) pour un PDF protégé. Options avancées (booléens en chaîne true/false ou 1/0) : enable_bbox pour les boîtes englobantes (layout / regions), enable_extraction + extraction_prompt pour une extraction structurée de champs. Ces options s’ajoutent au tarif de base OCR (voir page Tarifs). Tout autre nom de champ interdit ; pas de champ model dans le formulaire → HTTP 422 si non conforme. Ne pas fixer Content-Type manuellement : multipart/form-data et boundary générés par le client.

POST /models/{model_slug}/ocr

Request body

The following parameters can be included in the request body:

Parameters

image
file
Required

Image or PDF file to analyze (multipart/form-data, exact name: image).

pdf_password
string

Optional. Password for a protected PDF.

enable_bbox
boolean
Default value: false

Optionnel. Active le retour des bounding boxes (régions / layout) pour localiser chaque bloc de texte sur la page. Valeurs acceptées : true, false, 1, 0. Surcoût : +0,25 € / 1 000 pages.

enable_extraction
boolean
Default value: false

Optionnel. Active l’extraction structurée de données (champs nommés). À combiner avec extraction_prompt. Valeurs acceptées : true, false, 1, 0. Surcoût : +0,50 € / 1 000 pages, uniquement si au moins une donnée a été extraite sur l’inférence (sinon gratuit).

extraction_prompt
string

Optionnel (requis si enable_extraction=true). Liste des champs à extraire, séparés par des virgules (ex. : « immatriculation, propriétaire, montant TTC »). La réponse contient un objet extraction (ou structured_data) avec ces clés.

Successful response

The following fields are returned in a successful response:

Response fields

model_slug
string
Required

Slug of the model used for inference.

text
string
Required

Text extracted from the image.

inference_seconds
number
Required

Inference time in seconds.

global_confidence
number null

Global confidence score (0–1), or null if not applicable.

words
array<object>
Required

List of detected words with their individual confidence score.

page_size
object null

Dimensions de la page (width, height) dans le repère des bounding boxes. Présent notamment lorsque enable_bbox=true.

layout
object null

Présent si enable_bbox=true. Contient regions[] : blocs de texte avec coordonnées bbox_xyxy [x_min, y_min, x_max, y_max], label et confidence.

extraction
object null

Présent si enable_extraction=true. Objet clé/valeur correspondant aux champs demandés dans extraction_prompt. Peut aussi apparaître sous structured_data selon le modèle.

image_filename
string null

Name of the provided file, or null.

Examples

Code examples for using this endpoint:

curl
curl -X POST "https://api-endpoints.alphaedge-ai.com/models/alpha-digit-max/ocr" \
  -H "X-API-Key: TA_CLE" \
  -F "image=@/chemin/facture.png" \
  -F "enable_bbox=true" \
  -F "enable_extraction=true" \
  -F "extraction_prompt=immatriculation, propriétaire, montant TTC"
python
import requests

url = "https://api-endpoints.alphaedge-ai.com/models/alpha-digit-max/ocr"
headers = {"X-API-Key": "TA_CLE"}
with open("/chemin/facture.png", "rb") as f:
    files = {"image": ("facture.png", f, "image/png")}
    data = {
        "enable_bbox": "true",
        "enable_extraction": "true",
        "extraction_prompt": "immatriculation, propriétaire, montant TTC",
    }
    r = requests.post(url, headers=headers, files=files, data=data, timeout=300)
print(r.status_code)
print(r.json())
typescript
import fs from "node:fs";

const form = new FormData();
form.append("image", new Blob([fs.readFileSync("/chemin/facture.png")]), "facture.png");
form.append("enable_bbox", "true");
form.append("enable_extraction", "true");
form.append("extraction_prompt", "immatriculation, propriétaire, montant TTC");

const res = await fetch("https://api-endpoints.alphaedge-ai.com/models/alpha-digit-max/ocr", {
  method: "POST",
  headers: { "X-API-Key": "TA_CLE" },
  body: form
});
console.log(res.status, await res.json());

Response

Sample API response:

json
{
  "model_slug": "alpha-digit-max",
  "text": "Facture n° 2026-0042\nMontant TTC 123,45 EUR",
  "inference_seconds": 0.42,
  "global_confidence": 0.91,
  "words": [
    { "w": "Facture", "confidence": 0.99 },
    { "w": "n°", "confidence": 0.95 },
    { "w": "2026-0042", "confidence": 0.98 }
  ],
  "page_size": { "width": 1240, "height": 1754 },
  "layout": {
    "regions": [
      {
        "text": "Facture n° 2026-0042",
        "label": "title",
        "confidence": 0.97,
        "bbox_xyxy": [80, 120, 620, 168]
      },
      {
        "text": "Montant TTC 123,45 EUR",
        "label": "text",
        "confidence": 0.94,
        "bbox_xyxy": [80, 980, 540, 1024]
      }
    ]
  },
  "extraction": {
    "immatriculation": "2026-0042",
    "propriétaire": "SARL Exemple",
    "montant TTC": "123,45 EUR"
  },
  "image_filename": "facture.png"
}