Analyser le document API
Que fait ce point de terminaison ?
PDF4me Analyser le document exécute votre modèle d'analyse enregistré sur un PDF et renvoie les champs extraits sous forme de JSON en un seul REST Appelez. Envoyez l'appel. PDF comme Base64, le ID du modèle à partir du tableau de bord et d'un client généré ParseId, et recevoir une réponse structurée indexée par les noms que vous avez définis dans le modèle. Le modèle contient la logique d'extraction (Expression régulière pour les modèles stables, JavaScript Expression (pour les règles conditionnelles), donc ce même appel extrait les factures, les contrats, les reçus et toute mise en page de document personnalisée que vous avez configurée.
Avant d'appeler ce point de terminaison : créer un modèle d'analyse dans le PDF4me tableau de bord. Voir Préparer les informations d'analyse pour le document pour la procédure d'installation complète, exemples d'expressions Regex (INV-\d{6,10} pour les numéros de facture, \d{2}/\d{2}/\d{4} (pour les dates), et deux travailleurs JavaScript Exemples de classificateur d'expressions.
Authentification de votre API Demande
Chaque PDF4me REST L'appel doit inclure votre API clé dans le Authorization En-tête. Créez ou sélectionnez une clé depuis le tableau de bord développeur et conservez-la côté serveur. Ne l'exposez jamais dans le code du navigateur.
Informations importantes à ne pas manquer
docContent, Nom du document, et asynchrone sont requis. ID du modèle, Nom du modèle, et ParseId Ces champs sont facultatifs et ne sont nécessaires que si vous souhaitez que la réponse soit indexée par vos champs de capture personnalisés. Sans eux, API renvoie toujours des champs par défaut utiles tels que type de document et nombre de pages.application/json avec un champ par clé de capture dans votre modèle, plus les champs par défaut. Ceci diffère des points de terminaison Protect, Compress et Convert qui renvoient des données binaires brutes. PDFs.Parse Document renvoie toujours JSON car elle renvoie des données structurées, et non un fichier.REST API point de terminaison
Méthode: POSTE
URL: https://api.pdf4me.com/api/v2/ParseDocument
Envoyer Type de contenu : application/json et un Autorisation en-tête avec votre API clé. Définir asynchrone à FAUX pour une réponse synchrone (HTTP 200 avec analyse JSON), ou vrai recevoir HTTP 202 plus a Emplacement en-tête que vous interrogez jusqu'à ce qu'il renvoie 200 avec les données analysées JSON.
Configuration de la requête Postman
| Paramètre | Valeur |
|---|---|
| Method | POST |
| URL | https://api.pdf4me.com/api/v2/ParseDocument |
| Headers | Content-Type: application/json |
| Authorization | Basic Auth with your API key, or header Authorization: Basic YOUR_API_KEY |
| Body | raw JSON with docContent, docName, async (and optional TemplateId, TemplateName, ParseId) |
| Response (sync) | When async is false: HTTP 200 with parsed JSON containing one field per template key plus default fields such as documentType and pageCount. |
| Response (async) | When async is true: HTTP 202 with a Location header. GET that URL until you receive 200 with the parsed JSON. Useful for large PDFs or batch processing. |
Paramètres
Toujours requis : docContent, Nom du document, asynchrone. Conditionnel (extraction basée sur un modèle) : ID du modèle (recommandé) ou Nom du modèle plus ParseIdSans cela, API renvoie toujours des champs par défaut utiles (documentType, pageCount) mais aucune valeur personnalisée.
| Paramètre | Requis | Taper | Ce que cela fait | Exemple |
|---|---|---|---|---|
docContent | Yes | Base64 String | The source PDF file encoded as Base64 (no data: prefix). Read the file as bytes and run it through your language's Base64 encoder. | JVBERi0xLjQK... |
docName | Yes | String | Filename of the source PDF including .pdf extension. Used for tracking and error messages. | invoice.pdf |
async | Yes | Boolean | Processing mode. false returns parsed JSON immediately with HTTP 200. true returns HTTP 202 plus a Location header that you poll until it returns 200 with the parsed JSON. Use true for large PDFs or batch processing. | true |
TemplateId | Conditional | String (GUID) | GUID of the saved parse template. Recommended over TemplateName for stable production automation. Get it from the template detail panel after Save Changes in the dashboard. | 12345678-1234-1234-1234-123456789abc |
TemplateName | Conditional | String | Template name as typed in the dashboard. Lookup alternative to TemplateId. Renaming the template breaks calls that reference it by name, so prefer TemplateId in production. | invoice_template |
ParseId | Conditional | String (GUID) | Client-generated GUID per call. Used to correlate the request with the parse output for logging and audit trails. Generate with uuid.uuid4 (Python), Guid.NewGuid (C#), UUID.randomUUID (Java). | 87654321-4321-4321-4321-cba987654321 |
Exemples de demandes
Exemple A : Charge utile minimale (sans modèle)
Le plus petit appelle le API Accepte. Renvoie les champs par défaut (documentType, pageCount) mais aucune valeur personnalisée car aucun modèle n'est référencé.
{
"docContent": "JVBERi0xLjQK...",
"docName": "invoice.pdf",
"async": true
}
Exemple B : Extraction basée sur un modèle (modèle de production)
Charge utile de production recommandée. Renvoie un champ par clé de capture définie dans votre modèle, plus les champs par défaut.
{
"docContent": "JVBERi0xLjQK...",
"docName": "invoice.pdf",
"TemplateId": "12345678-1234-1234-1234-123456789abc",
"ParseId": "87654321-4321-4321-4321-cba987654321",
"async": true
}
Exemple C : Recherche de modèle par nom
Utilisez une autre méthode si vous ne disposez pas d'un TemplateId. Évitez cette méthode en production, car renommer le modèle interrompt cet appel.
{
"docContent": "JVBERi0xLjQK...",
"docName": "invoice.pdf",
"TemplateName": "invoice_template",
"ParseId": "87654321-4321-4321-4321-cba987654321",
"async": true
}
Réponse réussie (synchronisation, async: false)
HTTP 200 avec l'analyseur JSONChaque clé de capture de votre modèle devient un champ. Champs par défaut (documentType, pageCount) sont toujours renvoyés.
{
"parsedData": {
"invoiceNumber": "INV-2024-001",
"invoiceDate": "15/01/2024",
"totalAmount": "$1,250.50",
"customerName": "Acme Corporation"
},
"documentType": "invoice",
"pageCount": 1
}
Réponse réussie (asynchrone, async: true)
HTTP 202 avec un Location en-tête. Sondez cela URL avec GET (même en-tête d'autorisation) jusqu'à ce que vous receviez HTTP 200 avec l'analyseur JSON.
HTTP/1.1 202 Accepted
Location: https://api.pdf4me.com/api/v2/ParseDocumentStatus/<job-id>
Exemple curl
curl -X POST https://api.pdf4me.com/api/v2/ParseDocument \
-H "Content-Type: application/json" \
-H "Authorization: Basic YOUR_API_KEY" \
-d '{
"docContent": "JVBERi0xLjQK...",
"docName": "invoice.pdf",
"TemplateId": "12345678-1234-1234-1234-123456789abc",
"ParseId": "87654321-4321-4321-4321-cba987654321",
"async": true
}'
Configuration du modèle
Le modèle d'analyse syntaxique contient toute la logique d'extraction. Configurez-le une seule fois dans le tableau de bord, puis appelez-le par TemplateId de n'importe où.
Expression régulièreModèles stablesINV-\d{6,10}), dates (\d{2}/\d{2}/\d{4}), montants ($?\d{1,3}(?:,\d{3})*(?:.\d{2})?), numéros d'identification fiscale, codes postaux. Utilisés pour environ 80 % des clés de production.Expression JavaScriptLogique conditionnelle et classificateurstexte; votre fonction renvoie une chaîne de caractères. Voir Préparer les informations d'analyse pour le document pour deux exemples de classificateurs fonctionnels (functionFormatTextDate1 et functionGetInvoiceOrder).Exemples de code
Des exemples pré-construits qui chargent un PDF, encodez-le comme Base64, POST à /api/v2/ParseDocumentet gérer la réponse synchrone/asynchrone.
Exemples d'intégration
Modèles d'intégration REST courantsTypical ways developers call Parse Document.
- Un observateur repère un nouveau vendeur PDFs depuis une boîte de réception de messagerie ou un dossier cloud.
- Votre service lit chaque PDF sous forme d'octets et l'encode en Base64.
- POST à
/api/v2/ParseDocumentavec le TemplateId de la facture et un ParseId frais. - Cartographiez les résultats
Numéro de facture,montant total, etDate de la facturedirectement dans une base de données INSERT.
- UN JavaScript La clé d'expression dans le modèle renvoie le type de document (facture, commande, conditions).
- POST renvoie le type ainsi que les champs extraits par expression régulière dans une seule fonction. JSON réponse.
- Votre code effectue une branche en fonction du champ de type et achemine les données structurées vers le système en aval approprié.
- Pour les fichiers de plus de quelques Mo, POST avec
asynchrone : vrai. - Lisez le
EmplacementEn-tête de la réponse 202. - Sondage URL avec GET toutes les 10 secondes (le Python L'exemple utilise 15 tentatives maximales).
- Lorsque le statut de la réponse est 200, analysez le JSON corps et poursuivre le traitement en aval.