Extracteur
Ce document décrit comment utiliser l’API DIMARC pour interagir avec les endpoints /extractor et /extractor/async. Ces endpoints permettent d’extraire des données structurées de documents de tout type selon des modèles définis dans l’interface Dimarc.
POST /v2/extractorPOST /v2/extractor/async
Prérequis
- Un compte DIMARC actif.
- Être administrateur de votre organisation.
- Un agent de type “Extracteur” configuré.
- Votre token d’authentification
x-api-key
(voir Récupération de votre Token d’Authentification)
Récupérer l’ID d’un agent
Chacun des agents a un ID unique. Pour récupérer l’ID de l’agent Extracteur, rendez-vous sur votre tableau de bord:
- Cliquez en haut à droite sur l’icône de votre profil puis accédez à la section Organisation > API ou en cliquant ici
- Dans la section Références de vos agents, vous pouvez récupérer l’ID de l’agent Extracteur que vous souhaitez utiliser.
Modes d’extraction
L’API de l’Extracteur offre deux modes de fonctionnement:
- Synchrone: La requête est traitée immédiatement et la réponse est retournée dans la même connexion HTTP.
- Asynchrone: Le traitement est mis en file d’attente et les résultats sont envoyés à un webhook défini une fois l’extraction terminée.
Où configurer les modèles d’extraction
Les modèles d’extraction sont configurés dans l’interface Dimarc. Pour ajouter un nouveau modèle, rendez-vous sur votre tableau de bord: https://app.dimarc.ai
Rendez-vous dans la configuration de votre agent Extracteur et ajoutez un nouveau modèle en définissant les champs à extraire.
Extraction synchrone
L’extraction synchrone est idéale pour des traitements rapides ou lorsque votre application attend directement le résultat.
Requête synchrone
curl --location 'https://api.dimarc.ai/v2/extractor/<agent_id>' \--header 'Content-Type: application/json' \--header 'x-api-key: <your_api_key>' \--data '{ "filename": "L100.pdf", "file": "<base64_encoded_file>",}'
Paramètres de la requête synchrone
Paramètre | Type | Description |
---|---|---|
filename | string | Nom du fichier original (avec extension) |
file | string | Contenu du fichier encodé en base64 |
Format de réponse synchrone
{ "status": "success", "data": { .... }}
Extraction asynchrone
L’extraction asynchrone est recommandée pour:
- Les documents volumineux
- Les extractions complexes nécessitant plus de temps
- Les systèmes qui ne peuvent pas attendre une réponse immédiate
Requête asynchrone
curl --location 'https://api.dimarc.ai/v2/extractor/async/<agent_id>' \--header 'Content-Type: application/json' \--header 'x-api-key: <your_api_key>' \--data '{ "filename": "L100.pdf", "file": "<base64_encoded_file>", "callback": "https://votre-endpoint-de-callback.com/webhook"}'
Paramètres de la requête asynchrone
Paramètre | Type | Description |
---|---|---|
filename | string | Nom du fichier original (avec extension) |
file | string | Contenu du fichier encodé en base64 |
callback | string | URL du webhook qui recevra les résultats |
Réponse immédiate (asynchrone)
{ "message": "Extraction started", "data": { "extraction_id": "uid_extraction" }}
Format de la réponse au webhook
{ "extract_id": "uid_extraction", "data": { .... }}
Extraction de données structurées
Pour les données complexes comme les listes (tableaux, séries d’articles, etc.), utilisez le format “list” et définissez les sous-éléments dans le tableau “items”:
{ "name": "products", "format": "list", "description": "Liste des produits dans la facture", "items": [ { "name": "product_name", "format": "text", "description": "Nom du produit", "items": [] }, { "name": "quantity", "format": "text", "description": "Quantité commandée", "items": [] }, { "name": "unit_price", "format": "text", "description": "Prix unitaire HT", "items": [] } ]}
Limites et considérations
- Taille maximale du fichier: 36 Mo
- Formats supportés: PDF, PNG, JPG, JPEG, DOCX, XLSX
- Temps moyen d’extraction: 5 à 10 pour des documents standards (sans trop d’imagerie)
Support et assistance
Pour toute question concernant l’API Extracteur, contactez notre équipe de support à l’adresse support@dimarc.fr