API d’extraction de données structurées
Le point de terminaison /ocr.json extrait des champs nommés depuis une image ou un document.
Le point de terminaison renvoie du JSON typé. Utilisez le paramètre de requête fields pour sélectionner les valeurs de la réponse.
Point de terminaison
POST https://api.ocrskill.com/ocr.json
Chaque requête nécessite un jeton Bearer.
Authorization: Bearer sk-your-key-here
Utilisez cette commande pour obtenir une clé API gratuite.
curl https://api.ocrskill.com/get-key.json
Démarrage rapide
Ajoutez les noms de champs à fields. Chargez ensuite un fichier.
curl "https://api.ocrskill.com/ocr.json?fields=last_name,first_name,nationality,birthdate" \
-H "Authorization: Bearer sk-your-key-here" \
-F "file=@identity-card.pdf"
Le point de terminaison renvoie ce JSON.
{
"last_name": "MUSTERMANN",
"first_name": "ERIKA",
"nationality": "DEUTSCH",
"birthdate": "1964-08-12"
}
Envoyer un fichier
Le point de terminaison accepte les envois multipart, les fichiers bruts et les URI de données JSON.
La taille maximale du fichier est de 20 Mo.
Envoi multipart
Envoyez le fichier dans le champ de formulaire file, image, document ou data.
curl "https://api.ocrskill.com/ocr.json?fields=thumbnail_hook_text,video_title,video_channel" \
-H "Authorization: Bearer sk-your-key-here" \
-F "file=@thumbnail.jpg"
Envoi binaire brut
Envoyez les octets du fichier avec le bon Content-Type.
curl "https://api.ocrskill.com/ocr.json?fields=company_name,invoice_date" \
-H "Authorization: Bearer sk-your-key-here" \
-H "Content-Type: application/pdf" \
--data-binary "@invoice.pdf"
Corps JSON avec une URI de données
Envoyez un objet JSON avec une URI de données dans document_url (similaire et compatible avec l’API Mistral).
curl "https://api.ocrskill.com/ocr.json?fields=title,publish_date" \
-H "Authorization: Bearer sk-your-key-here" \
-H "Content-Type: application/json" \
-d '{
"document_url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ..."
}'
Types de fichiers pris en charge
Le point de terminaison prend en charge les types d’images suivants :
- PNG
- JPEG
- WebP
- GIF
- BMP
- TIFF
Le point de terminaison prend aussi en charge les types de documents suivants :
- Microsoft Word (
DOCetDOCX) - Microsoft Excel (
XLSetXLSX) - Microsoft PowerPoint (
PPTetPPTX) - Fichiers texte, feuilles de calcul et présentations OpenDocument (
ODT,ODSetODP) - RTF
- CSV
Sélectionner les champs
Le paramètre fields contient une liste de noms de champs séparés par des virgules.
Champs obligatoires
Un nom de champ sans suffixe exige une valeur. Le point de terminaison renvoie 400 s’il ne trouve pas cette valeur.
?fields=last_name,first_name,birthdate
Champs facultatifs
Ajoutez ? pour rendre un champ facultatif. La réponse omet ce champ si le point de terminaison ne le trouve pas.
?fields=last_name,first_name,birthdate?,nationality?
Utiliser le mode découverte
Omettez fields pour utiliser le mode découverte. Dans ce mode, le point de terminaison traite tous les champs pris en charge comme facultatifs.
La réponse contient uniquement les champs que le point de terminaison trouve.
curl "https://api.ocrskill.com/ocr.json" \
-H "Authorization: Bearer sk-your-key-here" \
-F "file=@report.docx"
Gérer les erreurs
| Situation | Statut | Remarques |
|---|---|---|
Nom de champ inconnu dans fields |
400 |
L’erreur indique le champ non pris en charge. |
| Nom de champ vide | 400 |
Supprimez les valeurs vides et les virgules finales. |
| Nom de champ en double | 400 |
Indiquez chaque champ une seule fois. |
| Champ obligatoire manquant | 400 |
L’erreur contient les détails d’extraction et le texte extrait dans input_text. |
| Jeton Bearer manquant ou non valide | 401 |
Envoyez Authorization: Bearer sk-.... |
| Type de fichier inconnu ou non pris en charge | 400 |
Envoyez un type de fichier pris en charge. |
Le point de terminaison formate les champs de date comme YYYY-MM-DD. Il supprime les espaces au début et à la fin des chaînes.
Le point de terminaison rejette la chaîne littérale "null".
Champs pris en charge
Vous pouvez sélectionner toute combinaison de ces noms de champs dans une requête.
Personnes
| Champ | Type | Description |
|---|---|---|
last_name |
string | Nom de famille. |
first_name |
string | Prénom. |
birthdate |
date | Date de naissance (YYYY-MM-DD). |
sex_gender |
string | Sexe ou genre. |
Adresses
| Champ | Type | Description |
|---|---|---|
street_name |
string | Nom de voie d’une adresse postale. |
street_number |
string | Numéro de rue, de bâtiment ou de maison. |
address_rest |
string | Bloc, entrée, étage, appartement ou boîte postale. |
town_or_city |
string | Ville, commune ou localité. |
county |
string | Comté, district ou subdivision administrative. |
judet |
string | Județ roumain ou subdivision équivalente au niveau du comté. |
region |
string | Région, province, État ou zone plus vaste. |
country |
string | Nom du pays. |
Carte d’identité
| Champ | Type | Description |
|---|---|---|
nationality |
string | Nationalité. |
cnp |
string | Numéro d’identification personnel (Cod numeric personal). |
id_card_series_number |
string | Série ou numéro de la carte d’identité. |
expiration_date |
date | Date d’expiration de la carte d’identité (YYYY-MM-DD). |
issue_date |
date | Date de délivrance de la carte d’identité (YYYY-MM-DD). |
id_card_issuer |
string | Nom de l’autorité qui délivre la carte d’identité. |
id_card_birth_place |
string | Lieu de naissance indiqué sur la carte d’identité. |
Certificat d’immatriculation
| Champ | Type | Description |
|---|---|---|
certificate_id |
string | Numéro ou série du certificat d’immatriculation. |
license_plate |
string | A : numéro d’immatriculation ou plaque du véhicule. |
first_registration_date |
date | B : date de première immatriculation (YYYY-MM-DD). |
holder_last_name |
string | C.1.1 : nom de famille du titulaire. |
holder_company |
string | C.1.1 : nom de l’entreprise titulaire. |
holder_first_name |
string | C.1.2 : prénom du titulaire. |
holder_full_address |
string | C.1.3 : adresse complète ou siège social du titulaire. |
owner_last_name |
string | C.2.1 : nom de famille du propriétaire. |
owner_company |
string | C.2.1 : nom de l’entreprise propriétaire. |
owner_first_name |
string | C.2.2 : prénom du propriétaire. |
owner_full_address |
string | C.2.3 : adresse complète ou siège social du propriétaire. |
vehicle_brand |
string | D.1 : marque ou constructeur du véhicule. |
vehicle_model |
string | D.2 : type, variante, version ou modèle. |
vehicle_commercial_summary |
string | D.3 : description commerciale ou résumé du modèle. |
vehicle_identification_number |
string | E : VIN ou numéro de châssis. |
max_technical_weight |
string | F.1 : masse en charge maximale techniquement admissible. |
vehicle_mass |
string | G : masse du véhicule en service. |
registration_valid_until |
date | H : date de fin de validité de l’immatriculation (YYYY-MM-DD). |
registration_date |
date | I : date d’immatriculation (YYYY-MM-DD). |
certificate_issue_date |
date | I.1 : date de délivrance du certificat (YYYY-MM-DD). |
vehicle_category |
string | J : catégorie du véhicule. |
type_approval_number |
string | K : numéro de réception par type. |
engine_capacity |
string | P.1 : cylindrée du moteur. |
engine_power |
string | P.2 : puissance nette maximale du moteur. |
fuel_type |
string | P.3 : type de carburant ou source d’énergie. |
power_to_weight_ratio |
string | Q : rapport puissance/poids, s’il est présent. |
vehicle_color |
string | R : couleur du véhicule. |
seats |
string | S.1 : nombre de places assises, conducteur compris. |
standing_places |
string | S.2 : nombre de places debout, s’il est présent. |
vehicle_identification_series |
string | Y : série du livret d’identification du véhicule. |
certificate_issuer |
string | Z : nom de l’autorité qui délivre le certificat. |
last_itp_date |
date | Date du dernier contrôle technique périodique (YYYY-MM-DD). |
Entreprises, factures et reçus
| Champ | Type | Description |
|---|---|---|
company_name |
string | Nom de l’entreprise, de l’organisation ou de l’entité juridique. |
buyer_name |
string | Nom de l’acheteur. |
seller_name |
string | Nom du vendeur. |
total_amount |
number | Montant total facturé ou payé. |
invoice_date |
date | Date d’émission de la facture. |
receipt_date |
date | Date d’émission du reçu. |
Œuvres écrites
| Champ | Type | Description |
|---|---|---|
title |
string | Titre de l’article. |
sub_title |
string | Sous-titre de l’article. |
article_abstract |
string | Section de résumé de l’article. |
article_body |
string | Corps de l’article. |
publish_date |
date | Date de publication du contenu (YYYY-MM-DD). |
article_tags |
string | Étiquettes du contenu, séparées par des virgules. |
tags |
string | Étiquettes du contenu, séparées par des virgules. |
concise_summary |
string | Résumé concis du contenu, créé s’il n’est pas présent. |
Événements
| Champ | Type | Description |
|---|---|---|
event_name |
string | Nom ou titre de l’événement. |
event_venue |
string | Lieu ou lieux de l’événement. |
event_dates |
string | Date ou intervalle de l’événement, sous forme de texte. |
event_date |
date | Date complète ou partielle de l’événement (YYYY-MM-DD). |
Miniatures vidéo
| Champ | Type | Description |
|---|---|---|
thumbnail_hook_text |
string | Texte d’accroche de la vidéo ou du clip, tel qu’il apparaît. |
video_title |
string | Titre de la vidéo ou du clip. |
video_channel |
string | Nom de la chaîne du créateur. |
video_length_str |
string | Durée de la vidéo ou du clip, exactement comme elle apparaît. |
date_posted_str |
string | Date de publication, exactement comme elle apparaît. |
Extraire du Markdown au lieu de JSON structuré
Utilisez le point de terminaison /ocr si vous avez besoin de Markdown au lieu de champs structurés. Il accepte les mêmes types de fichiers.
curl https://api.ocrskill.com/ocr \
-H "Authorization: Bearer sk-your-key-here" \
-F "file=@example.pdf"
Questions fréquentes
Que sont les données structurées ?
Les données structurées utilisent des champs nommés et des types cohérents. Le point de terminaison /ocr.json renvoie des chaînes, des nombres et des dates directement lisibles par votre application.
S’agit-il des données structurées Google ou du balisage schema.org ?
Non. Les données structurées Google décrivent les pages Web pour les moteurs de recherche. Elles utilisent JSON-LD ou des microdonnées dans une page Web.
OCRskill extrait du JSON typé depuis des fichiers. Votre application peut stocker ou traiter ce JSON.
La sortie possède-t-elle un schéma JSON ?
Oui. OCRskill crée le schéma de réponse à partir des fields demandés.
Les champs de date utilisent YYYY-MM-DD. Chaque champ de cette référence correspond à une propriété JSON typée.
Puis-je convertir un PDF en JSON, une image en PDF ou un PDF en image ?
Vous pouvez envoyer directement un PDF à /ocr.json. Vous ne devez pas convertir ses pages en images.
OCRskill ne convertit pas les images en PDF ni les PDF en images.
Comment extraire le texte d’une image ?
Appelez /ocr pour extraire du Markdown. Appelez /ocr.json avec fields pour extraire des valeurs nommées.
Puis-je transformer une image en prompt ?
Appelez /ocr pour extraire du Markdown destiné à un prompt. Utilisez /ocr.json si le prompt nécessite uniquement certaines valeurs.
Pourquoi l’extraction a-t-elle échoué ?
Le point de terminaison renvoie 400 s’il ne peut pas terminer une extraction. Lisez le message d’erreur pour connaître la cause.
Les causes fréquentes incluent un champ obligatoire manquant, un champ inconnu ou un champ en double. Elles incluent aussi un type de fichier non pris en charge.
L’erreur contient aussi input_text. Utilisez cette valeur pour contrôler le texte extrait par OCRskill avant l’échec de l’extraction structurée.
Puis-je utiliser OCRskill avec Claude ?
Oui. Utilisez OCRskill pour extraire du Markdown ou du JSON. Envoyez ensuite le résultat à Claude.