Aller au contenu principal

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.

Articles de blog connexes
Il n'y a pas encore d'article de blog consacré à cette fonctionnalité — à venir prochainement.
En attendant, n'hésitez pas à consulter le blog de PDF4me pour découvrir des tutoriels et des procédures de travail adaptés à toutes les plateformes.
Consultez le blog

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

La charge utile minimale est de trois champs, et non de cinq.
Seulement 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.
La réponse est JSON, pas binaire
L'analyse du document renvoie 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.
Utilisez TemplateId, et non TemplateName, en production
TemplateId est stable GUID Attribué par le tableau de bord lors de l'enregistrement des modifications, cet identifiant reste inchangé pendant toute la durée de vie du modèle. TemplateName peut servir de solution de recherche, mais ne fonctionne plus si vous renommez le modèle. Copiez toujours TemplateId depuis le panneau de détails du modèle et intégrez-le à votre code.

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ètreValeur
MethodPOST
URLhttps://api.pdf4me.com/api/v2/ParseDocument
HeadersContent-Type: application/json
AuthorizationBasic Auth with your API key, or header Authorization: Basic YOUR_API_KEY
Bodyraw 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ètreRequisTaperCe que cela faitExemple
docContentYesBase64 StringThe source PDF file encoded as Base64 (no data: prefix). Read the file as bytes and run it through your language's Base64 encoder.JVBERi0xLjQK...
docNameYesStringFilename of the source PDF including .pdf extension. Used for tracking and error messages.invoice.pdf
asyncYesBooleanProcessing 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
TemplateIdConditionalString (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
TemplateNameConditionalStringTemplate 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
ParseIdConditionalString (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 stables
Numéros de facture (INV-\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 classificateurs
Classification multi-marqueurs, règles de repli, détection du type de document. Le texte extrait est transmis comme variable. texte; 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.
Boîte de réception des factures vers la base de données comptable
  1. Un observateur repère un nouveau vendeur PDFs depuis une boîte de réception de messagerie ou un dossier cloud.
  2. Votre service lit chaque PDF sous forme d'octets et l'encode en Base64.
  3. POST à /api/v2/ParseDocument avec le TemplateId de la facture et un ParseId frais.
  4. Cartographiez les résultats Numéro de facture, montant total, et Date de la facture directement dans une base de données INSERT.
Classificateur et extracteur de documents mixtes
  1. UN JavaScript La clé d'expression dans le modèle renvoie le type de document (facture, commande, conditions).
  2. POST renvoie le type ainsi que les champs extraits par expression régulière dans une seule fonction. JSON réponse.
  3. 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é.
Traitement asynchrone par lots de grands volumes de données PDFs
  1. Pour les fichiers de plus de quelques Mo, POST avec asynchrone : vrai.
  2. Lisez le Emplacement En-tête de la réponse 202.
  3. Sondage URL avec GET toutes les 10 secondes (le Python L'exemple utilise 15 tentatives maximales).
  4. Lorsque le statut de la réponse est 200, analysez le JSON corps et poursuivre le traitement en aval.

Foire aux questions

What is the minimum payload required by the Parse Document REST API?+
Three fields: docContent (the PDF as Base64), docName (filename with .pdf), and async (boolean for sync vs polling). TemplateId, TemplateName, and ParseId are optional. Without a template the API returns default information (documentType, pageCount) but no custom-keyed values.
Should I use TemplateId or TemplateName?+
Use TemplateId in production. It is a stable GUID generated by the dashboard at Save Changes and never changes for the life of the template. TemplateName works as a lookup alternative but breaks if you rename the template. Always pin TemplateId in your code.
What is ParseId and where does it come from?+
ParseId is a client-generated GUID you create per call: uuid.uuid4 in Python, Guid.NewGuid in C#, UUID.randomUUID in Java. Pass it in the request body for logging and audit trail correlation. The API does not validate it against a registry, so any valid GUID works.
Is the response JSON or binary?+
JSON. The response body is application/json containing one field per capture key in your template plus default fields such as documentType and pageCount. This is different from Protect, Compress, and Convert endpoints which return raw binary PDFs.
How does async work for large or batch PDFs?+
Set async to true. The API responds with 202 Accepted plus a Location header containing a poll URL. GET that URL with the same Authorization header. While the document is still processing the poll URL returns 202; when finished it returns 200 with the parsed JSON. Use async true for files over a few MB or when processing in batches.
How is this different from regex parsing in Python with pdfplumber?+
Python libraries like pdfplumber, PyMuPDF, and pdfminer give you raw text extraction primitives and you write the matching logic in your application code. PDF4me Parse Document uses templates you configure once in a hosted dashboard, then calls run that template from any language or platform. The matching logic lives in the template, not your code, which keeps it consistent across systems.
Where do I learn the Regex Expression and JavaScript Expression syntax?+
See the full Prepare Parse Info for Document setup guide. It covers Regex patterns for invoice numbers, dates, and amounts, and includes two working JavaScript Expression classifier samples (functionFormatTextDate1 for Terms and Conditions vs Order classification, functionGetInvoiceOrder for invoice vs order detection).
Can I run the same template from Make, Zapier, Power Automate, or n8n?+
Yes. The TemplateId is the same across all platforms. The Make, Zapier, Power Automate, and n8n PDF4me modules call this same endpoint under the hood. Build and test the template once in the dashboard, then reference its TemplateId from any platform.

Actions connexes

Même tâche sur d'autres plateformes

Obtenez de l'aide