Passa al contenuto principale

Analizza il documento API

Cosa fa questo endpoint

PDF4me Analizza il documento esegue il tuo modello di analisi salvato rispetto a PDF e restituisce i campi estratti come JSON in un singolo REST chiamata. Invia il PDF COME Base64, IL TemplateId dalla dashboard e da un client generato ParseIde ricevere una risposta strutturata indicizzata dai nomi definiti nel modello. Il modello contiene la logica di estrazione (Espressione regolare per modelli stabili, JavaScript Espressione per le regole condizionali), quindi questa stessa chiamata estrae fatture, contratti, ricevute e qualsiasi layout di documento personalizzato che hai configurato.

Articoli correlati del blog
Non ci sono ancora post sul blog dedicati a questa funzionalità — in arrivo a breve.
Nel frattempo, dai un'occhiata al blog di PDF4me per trovare tutorial e procedure operative su tutte le piattaforme.
Visita il blog

Prima di chiamare questo endpoint: creare un modello di analisi nel PDF4me dashboard. Vedi Prepara le informazioni di analisi per il documento per la procedura di configurazione completa, esempi di espressioni Regex (INV-\d{6,10} per i numeri di fattura, \d{2}/\d{2}/\d{4} per le date) e due lavori JavaScript Esempi di classificatori di espressioni.

Autenticazione del tuo API Richiesta

Ogni PDF4me REST la chiamata deve includere il tuo API chiave nel Authorization Intestazione. Crea o seleziona una chiave dalla dashboard per sviluppatori e mantienila lato server. Non esporla mai nel codice del browser.

Informazioni importanti da non perdere

Il carico utile minimo è di tre campi, non cinque.
Soltanto docContent, docName, E asincrono sono obbligatori. TemplateId, TemplateName, E ParseId sono facoltativi e necessari solo quando si desidera che la risposta sia indicizzata dai campi di acquisizione personalizzati. Senza di essi API restituisce ancora campi predefiniti utili come tipo di documento E Conteggio pagine.
La risposta è JSON, non binario
Analizza il documento restituisce applicazione/json con un campo per ogni chiave di acquisizione nel tuo modello più i campi predefiniti. Questo è diverso dagli endpoint Protect, Compress e Convert che restituiscono dati binari non elaborati. PDFs. Analizza documento restituisce sempre JSON perché restituisce dati strutturati, non un file.
In produzione, utilizzare TemplateId anziché TemplateName.
TemplateId è un valore stabile GUID Viene assegnato dalla dashboard al momento del salvataggio delle modifiche. Non cambia mai per tutta la durata del modello. TemplateName funziona come alternativa di ricerca, ma smette di funzionare se si rinomina il modello. Copiare sempre TemplateId dal pannello dei dettagli del modello e inserirlo nel codice.

REST API endpoint

Metodo: INVIARE
URL: https://api.pdf4me.com/api/v2/ParseDocument

Inviare Content-Type: application/json e un Autorizzazione intestazione con il tuo API chiave. Imposta asincrono A falso per una risposta sincrona (HTTP 200 con analisi JSON), O VERO ricevere HTTP 202 più un Posizione intestazione che viene interrogata fino a quando non restituisce 200 con l'analisi JSON.

configurazione della richiesta Postman

CollocamentoValore
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.

Parametri

Sempre richiesto: docContent, docName, asincrono. Condizionale (estrazione basata su modello): TemplateId (consigliato) o TemplateName altro ParseId. Senza questi il API Restituisce comunque campi predefiniti utili (documentType, pageCount) ma nessun valore con chiave personalizzata.

ParametroNecessarioTipoCosa faEsempio
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

Esempi di richieste

Esempio A: Carico utile minimo (nessun modello)

Il più piccolo chiama il API Accetta. Restituisce i campi predefiniti (documentType, pageCount) ma nessun valore con chiave personalizzata perché non viene fatto riferimento ad alcun modello.

{
"docContent": "JVBERi0xLjQK...",
"docName": "invoice.pdf",
"async": true
}

Esempio B: Estrazione basata su modelli (modello di produzione)

Il payload di produzione consigliato. Restituisce un campo per ogni chiave di acquisizione definita nel modello, oltre ai campi predefiniti.

{
"docContent": "JVBERi0xLjQK...",
"docName": "invoice.pdf",
"TemplateId": "12345678-1234-1234-1234-123456789abc",
"ParseId": "87654321-4321-4321-4321-cba987654321",
"async": true
}

Esempio C: Ricerca del modello per nome

Ricerca alternativa quando non si ha a disposizione un TemplateId. Da evitare in produzione perché la ridenominazione del template interrompe questa chiamata.

{
"docContent": "JVBERi0xLjQK...",
"docName": "invoice.pdf",
"TemplateName": "invoice_template",
"ParseId": "87654321-4321-4321-4321-cba987654321",
"async": true
}

Risposta positiva (sincronizzazione, async: false)

HTTP 200 con l'analisi JSON. Ogni chiave di acquisizione dal tuo modello diventa un campo. Campi predefiniti (documentType, pageCount) vengono sempre restituiti.

{
"parsedData": {
"invoiceNumber": "INV-2024-001",
"invoiceDate": "15/01/2024",
"totalAmount": "$1,250.50",
"customerName": "Acme Corporation"
},
"documentType": "invoice",
"pageCount": 1
}

Risposta positiva (asincrona, async: true)

HTTP 202 con un Location intestazione. Sondaggio su URL con GET (stessa intestazione di autorizzazione) fino a quando non ricevi HTTP 200 con l'analisi JSON.

HTTP/1.1 202 Accepted
Location: https://api.pdf4me.com/api/v2/ParseDocumentStatus/<job-id>

esempio di riccio

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
}'

Impostazione del modello

Il modello di analisi contiene tutta la logica di estrazione. Configuralo una volta nella dashboard, quindi chiamalo tramite TemplateId da qualsiasi luogo.

Espressione regolareModelli stabili
Numeri di fattura (INV-\d{6,10}), date (\d{2}/\d{2}/\d{4}), importi ($?\d{1,3}(?:,\d{3})*(?:.\d{2})?), codici fiscali, codici postali. Utilizzati per circa l'80% delle chiavi di produzione.
Espressione JavaScriptLogica condizionale e classificatori
Classificazione multimarcatore, regole di fallback, rilevamento del tipo di documento. Il testo estratto viene passato come variabile testo; la tua funzione restituisce una stringa. Vedi Prepara le informazioni di analisi per il documento per due esempi di classificatori funzionanti (functionFormatTextDate1 e functionGetInvoiceOrder).

Esempi di codice

Esempi predefiniti che caricano un PDF, codificalo come Base64, POST A /api/v2/ParseDocumente gestire la risposta sincrona/asincrona.

Esempi di integrazione

Modelli comuni di integrazione RESTTypical ways developers call Parse Document.
Dalla casella di posta delle fatture al database contabile
  1. Un osservatore individua un nuovo venditore PDFs da una casella di posta elettronica o da una cartella cloud.
  2. Il tuo servizio legge ogni PDF come byte e lo codifica come Base64.
  3. POST A /api/v2/ParseDocument con il TemplateId della fattura e un nuovo ParseId.
  4. Mappare il risultato Numero fattura, importo totale, E data fattura direttamente in un database INSERT.
Classificatore ed estrattore di documenti misti
  1. UN JavaScript La chiave di espressione nel modello restituisce il tipo di documento (fattura, ordine, condizioni).
  2. POST restituisce il tipo insieme ai campi estratti tramite regex in un JSON risposta.
  3. Il tuo codice si dirama in base al campo tipo e instrada i dati strutturati al sistema a valle corretto.
Elaborazione batch asincrona di grandi dimensioni PDFs
  1. Per i file di dimensioni superiori a pochi MB, POST con asincrono: vero.
  2. Leggi il Posizione intestazione dalla risposta 202.
  3. Sondare il URL con GET ogni 10 secondi (il Python Il campione utilizza un massimo di 15 tentativi.
  4. Quando lo stato della risposta è 200, analizza il JSON corpo e continuare l'elaborazione a valle.

Domande frequenti

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.

Azioni correlate

Stessa attività su altre piattaforme

Richiedi assistenza