Pular para o conteúdo principal

Analisar documento API

O que este endpoint faz

PDF4me Analisar documento executa seu modelo de análise salvo em um PDF e retorna os campos extraídos como JSON em um único REST ligar. Enviar o PDF como Base64, o ID do modelo a partir do painel de controle e gerado pelo cliente ParseIde receba uma resposta estruturada indexada pelos nomes que você definiu no modelo. O modelo contém a lógica de extração (Expressão regular para padrões estáveis, JavaScript Expressão (para regras condicionais), portanto, essa mesma chamada extrai faturas, contratos, recibos e qualquer layout de documento personalizado que você tenha configurado.

Artigos relacionados no blogue
Ainda não há nenhuma publicação no blogue sobre esta funcionalidade — em breve.
Entretanto, explore o blogue da PDF4me para encontrar tutoriais e fluxos de trabalho para todas as plataformas.
Visite o blogue

Antes de chamar este endpoint: criar um modelo de análise no PDF4me painel. Veja Preparar informações de análise para o documento Para obter o passo a passo completo da configuração, veja os exemplos de expressões regulares (INV-\d{6,10} para números de fatura, \d{2}/\d{2}/\d{4} (para encontros), e dois trabalhando JavaScript Exemplos de classificadores de expressão.

Autenticando seu API Solicitar

Todo PDF4me REST A chamada deve incluir o seu API chave no Authorization Crie ou selecione uma chave no painel do desenvolvedor e mantenha-a no servidor. Nunca a exponha no código do navegador.

Fatos importantes que você não deve perder

A carga útil mínima é de três campos, não cinco.
Apenas conteúdo do documento, nomeDoDocumento, e assíncrono são obrigatórios. ID do modelo, Nome do modelo, e ParseId São opcionais e só são necessárias quando você deseja que a resposta seja indexada pelos seus campos de captura personalizados. Sem elas, API ainda retorna campos padrão úteis, como tipo de documento e contagem de páginas.
A resposta é JSON, não binário
A análise do documento retorna aplicativo/json Com um campo por chave de captura em seu modelo, além dos campos padrão. Isso é diferente dos endpoints Protect, Compress e Convert, que retornam dados binários brutos. PDFsA análise do documento sempre retorna JSON Porque retorna dados estruturados, não um arquivo.
Use TemplateId, e não TemplateName, em produção.
TemplateId é estável GUID O ID do modelo é atribuído pelo painel de controle ao salvar as alterações. Ele nunca muda durante toda a vida útil do modelo. O `TemplateName` funciona como uma alternativa de pesquisa, mas deixa de funcionar se você renomear o modelo. Sempre copie o `TemplateId` do painel de detalhes do modelo e fixe-o no seu código.

REST API ponto final

Método: PUBLICAR
URL: https://api.pdf4me.com/api/v2/ParseDocument

Enviar Tipo de conteúdo: application/json e um Autorização cabeçalho com o seu API chave. Definir assíncrono para falso para uma resposta síncrona (HTTP 200 com analisado JSON), ou verdadeiro para receber HTTP 202 mais um Localização cabeçalho que você consulta até que retorne 200 com o analisado JSON.

Configuração de solicitação do Postman

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

Parâmetros

Sempre necessário: conteúdo do documento, nomeDoDocumento, assíncrono. Extração condicional (baseada em modelo): ID do modelo (recomendado) ou Nome do modelo mais ParseIdSem estes, API Ainda retorna campos padrão úteis (documentType, pageCount), mas nenhum valor com chave personalizada.

ParâmetroObrigatórioTipoO que fazExemplo
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

Solicitar exemplos

Exemplo A: Carga útil mínima (sem modelo)

A menor chamada do API Aceita. Retorna os campos padrão (documentType, pageCount), mas não os valores com chave personalizada, pois nenhum modelo é referenciado.

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

Exemplo B: Extração baseada em modelo (padrão de produção)

A carga útil de produção recomendada. Retorna um campo por chave de captura definida em seu modelo, além dos campos padrão.

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

Exemplo C: Pesquisa de modelo por nome

Use uma alternativa de pesquisa quando não tiver um TemplateId disponível. Evite em produção, pois renomear o modelo interrompe essa chamada.

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

Resposta bem-sucedida (sincronização, async: false)

HTTP 200 com o analisado JSONCada chave de captura do seu modelo se torna um campo. Campos padrão (documentType, pageCount) são sempre retornados.

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

Resposta bem-sucedida (assíncrona, async: true)

HTTP 202 com um Location cabeçalho. Pesquisa que URL com GET (mesmo cabeçalho de autorização) até que você receba HTTP 200 com o analisado JSON.

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

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

Configuração do modelo

O modelo de análise contém toda a lógica de extração. Configure-o uma vez no painel de controle e, em seguida, chame-o por TemplateId De qualquer lugar.

Expressão regularPadrões estáveis
Números de fatura (INV-\d{6,10}), datas (\d{2}/\d{2}/\d{4}), quantidades ($?\d{1,3}(?:,\d{3})*(?:.\d{2})?), números de identificação fiscal, códigos postais. Usados em cerca de 80% das chaves de produção.
Expressão JavaScriptLógica condicional e classificadores
Classificação com múltiplos marcadores, regras de fallback e detecção do tipo de documento. O texto extraído é passado como variável. textoSua função retorna uma string. Veja Preparar informações de análise para o documento para duas amostras de classificadores funcionais (functionFormatTextDate1 e functionGetInvoiceOrder).

Exemplos de código

Amostras pré-construídas que carregam um PDF, codifique-o como Base64, POST para /api/v2/ParseDocumente lidar com a resposta síncrona/assíncrona.

Exemplos de integração

Padrões comuns de integração RESTTypical ways developers call Parse Document.
Caixa de entrada de faturas para banco de dados contábil
  1. Um observador identifica um novo fornecedor. PDFs de uma caixa de entrada de e-mail ou pasta na nuvem.
  2. Seu serviço lê cada PDF como bytes e os codifica como Base64.
  3. POST para /api/v2/ParseDocument com o TemplateId da fatura e um novo ParseId.
  4. Mapeie o resultado retornado Número da fatura, montante total, e data da fatura diretamente em um banco de dados INSERT.
Classificador e extrator de documentos mistos
  1. A JavaScript A chave de expressão no modelo retorna o tipo de documento (fatura, pedido, condições).
  2. POST Retorna o tipo juntamente com os campos extraídos pela expressão regular em um único valor. JSON resposta.
  3. Seu código cria ramificações com base no campo de tipo e encaminha os dados estruturados para o sistema subsequente correto.
Processamento assíncrono em lote de grande porte PDFs
  1. Para arquivos com mais de alguns MB, POST com assíncrono: verdadeiro.
  2. Leia o Localização Cabeçalho da resposta 202.
  3. Faça a pesquisa URL com GET a cada 10 segundos (o Python O exemplo utiliza no máximo 15 tentativas.
  4. Quando o status da resposta for 200, analise o JSON corpo e continuar o processamento subsequente.

Perguntas frequentes

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.

Ações relacionadas

A mesma tarefa em outras plataformas.

Obtenha ajuda