Image vers tableau
Extrayez la structure des tableaux en JSON, CSV ou Excel.
POST /api/v1/image-to-table
Envoyez une image dans le champ multipart image à POST /api/v1/image-to-table. format accepte seulement json (défaut), csv et xlsx. Remplacez YOUR_API_KEY et table.png, puis appelez l’API depuis le serveur selon l’authentification Bearer.
curl --silent --show-error --include --max-time 150 \
'https://freeaiocr.com/api/v1/image-to-table?format=json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Idempotency-Key: example-table-request-0001' \
-F 'image=@table.png'Le JSON renvoie request_id, usage, billing et un tableau tables d’objets {title, html}. Le HTML est nettoyé ; Table N est un nom de remplacement, pas un titre réellement détecté. Le texte brut du modèle n’est pas exposé.
{
"request_id": "b2c8ec98-2a36-4f87-99d2-3d7839b92518",
"usage": {
"input_tokens": 2000,
"output_tokens": 4000
},
"billing": {
"currency": "USD",
"price_version": "2026-10-26-v1",
"base_usd": "0.002000000",
"input_overage_usd": "0.000000000",
"output_overage_usd": "0.002400000",
"total_usd": "0.004400000"
},
"tables": [
{
"title": "Sales",
"html": "<table><tbody><tr><th>Item</th><th>Qty</th></tr><tr><td>Notebook</td><td>0012</td></tr></tbody></table>"
}
]
}Utilisez la même image et le même Idempotency-Key pour obtenir d’autres formats sans nouvelle reconnaissance ni nouveau débit :
curl --silent --show-error --fail --output tables.csv --max-time 150 \
'https://freeaiocr.com/api/v1/image-to-table?format=csv' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Idempotency-Key: example-table-request-0001' \
-F 'image=@table.png'curl --silent --show-error --fail --output tables.xlsx --max-time 150 \
'https://freeaiocr.com/api/v1/image-to-table?format=xlsx' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Idempotency-Key: example-table-request-0001' \
-F 'image=@table.png'- CSV : pour un seul tableau, CSV UTF-8 habituel. Pour plusieurs tableaux, chaque section séparée par une ligne vide commence par
# Table N: Title. Il ne s’agit pas d’un CSV unique standard ; séparez les sections avant import. Les chaînes ressemblant à des formules sont neutralisées - XLSX : un classeur Excel avec une feuille
Table Npar tableau et les cellules fusionnées préservées. Tous les nombres et zéros initiaux sont stockés comme texte ; vérifiez-les avant de calculer - Entrée : l’API accepte seulement une image PNG, JPEG ou WebP de 10 Mo maximum. Le site accepte aussi HEIC, HEIF et BMP, pas l’API. Aucun PDF, document multipage ni lot d’images ; une image peut néanmoins contenir plusieurs tableaux
Erreurs spécifiques aux tableaux et règles communes
Si aucun tableau valide n’est reconnu, 422 no_tables est renvoyé avant règlement, la réserve est libérée et aucun montant n’est facturé. Si l’export CSV/XLSX échoue après reconnaissance et règlement, l’API renvoie 503 export_failed avec recognition_succeeded: true. Pendant la fenêtre de relecture, réessayez format=json avec la même image, le même compte et le même Idempotency-Key ; n’ouvrez pas d’autre opération tant que le débit reste incertain. Les erreurs sont JSON avec request_id, error.code et Cache-Control: no-store ; les téléchargements réussis incluent X-Request-Id, X-OCR-Charged-USD et X-OCR-Price-Version.
Modifier format ne relance ni reconnaissance ni facturation. Le résultat est disponible pendant 24 heures et les relectures comptent dans la limite de débit. Une clé utilisée entre endpoints retourne 409 idempotency_conflict ; le solde API est distinct des crédits du site. Consultez les tarifs et réservations, les limites des requêtes et l’idempotence / réessais sûrs.