Documentos
Um Documento é uma página processada individualmente — uma imagem enviada, ou uma página renderizada de um PDF enviado. Cada Documento pertence a um Lote (identificado por batch_name), que é a unidade que você realmente inicia o processamento. Enviar um PDF com várias páginas cria um Documento por página no mesmo lote — veja Fazer upload de um documento abaixo.
Fazer upload de um documento
Envia um único arquivo (imagem ou PDF) para um lote. Se batch_name for omitido, um será gerado automaticamente e retornado na resposta. O upload não inicia a extração — chame Iniciar processamento de um lote assim que você tiver enviado tudo o que deseja processar em conjunto. O campo remaining_batch_capacity da resposta informa quantos documentos adicionais este lote pode aceitar antes de atingir o tamanho máximo do seu plano (veja max_batch_size em Conta) — útil para decidir no lado do cliente se deve continuar adicionando a este lote ou iniciar um novo, sem uma consulta separada.
Parâmetros
| Nome | Localização | Tipo | Descrição |
|---|---|---|---|
file | body (multipart) | file | Obrigatório, a menos que url seja fornecido. Uma imagem (JPEG/PNG/etc.) ou um PDF. PDFs são limitados a 30 páginas por upload e são divididos em um Documento por página. |
url | body (multipart) | string, opcional | Alternativa a file — o servidor baixa o arquivo desta URL em vez de você precisar anexá-lo. Mutuamente exclusivo com file; forneça exatamente um. Deve ser uma URL pública http:// ou https:// (sem endereços localhost/rede privada); o download é limitado a 30MB com um tempo limite de leitura de 15 segundos. |
batch_name | body (multipart) | string, opcional | Lote ao qual adicionar este documento. Omita para gerar automaticamente um novo nome de lote (retornado na resposta). Reutilize o mesmo valor em vários uploads para construir um lote antes de processá-lo. |
template_id | body (multipart) | integer, opcional | Um ID de Modelo pertencente à sua conta para pré-associar a este documento. Não é obrigatório — você também pode passar um modelo (ou campos ad-hoc) ao chamar process. |
password | body (multipart) | string, opcional | Apenas PDF. Tentado primeiro se o arquivo estiver protegido por senha. Se omitido, ou se não desbloquear o arquivo, recorre a quaisquer senhas já salvas nas configurações de Email Inbox da sua conta — este campo não exige que você tenha o Email Inbox configurado, é apenas uma alternativa por chamada a ele. |
Idempotency-Key | header, opcional | string | Seguro para repetir. Consulte Idempotência. |
Uploads de PDF retornam um array, não um único ID. Fazer upload de um PDF renderiza cada página como seu próprio Documento e o document_id da resposta se torna um array JSON (uma string por página, na ordem das páginas), além de um campo page_count. Um upload de imagem única retorna uma string escalar. Código cliente que assume que document_id é sempre uma string falhará em um upload de PDF — verifique se o arquivo que você está enviando é um PDF e ramifique com base na forma da resposta, ou sempre envie imagens e nunca dependa do caso escalar. Consulte os dois exemplos de resposta à direita.
Possíveis erros
missing_api_key/invalid_api_key/plan_required— consulte Tratamento de Erros.missing_parameter— nemfilenemurlforam enviados.invalid_parameter(param: "file") — imagem ou PDF inválido/corrompido, PDF protegido por senha que não pôde ser desbloqueado (nem o campopasswordnem nenhuma senha salva do Email Inbox funcionaram), ou PDF com mais de 30 páginas.invalid_parameter(param: "url") — tantofilequantourlforam enviados, a URL não resolve para um endereço público, o download falhou ou expirou, ou o arquivo baixado excede 30MB.invalid_parameter(param: "batch_name") — o lote já atingiu o tamanho máximo do seu plano.invalid_parameter(param: "template_id") outemplate_not_found.rate_limit_exceeded— muitos documentos não processados (na fila) já existem na conta; processe ou exclua alguns primeiro.
Obter um documento
Recupera o status atual de um único documento e, após a extração bem-sucedida, seus line_items remodelados. Este é o equivalente para um único documento de Obter resultados do lote — mesmas regras de remodelagem, mas sem a opção ?include=bbox (disponível apenas no endpoint de resultados em nível de lote).
Parâmetros
| Nome | Localização | Tipo | Descrição |
|---|---|---|---|
document_id | path | string | O ID do documento retornado por POST /documents (ou uma entrada desse array, para uma página de PDF). |
status é sempre um dos valores queued, processing, succeeded, failed, canceled — consulte o guia Modelo Assíncrono para a máquina de estados. completed_at é definido quando o documento atinge um estado terminal (succeeded, failed ou canceled) e permanece null antes disso.
Erros possíveis
missing_api_key/invalid_api_key/plan_required— consulte Tratamento de Erros.document_not_found— nenhum Documento com este ID em sua conta.
Obter a imagem de um Documento
Retorna a imagem da página de um Documento — a página completa por padrão, ou um recorte normalizado dela com ?crop=. É isso que alimenta image_url em campos de localização pura (consulte Obter resultados do lote), mas você também pode chamá-lo diretamente com suas próprias coordenadas.
Parâmetros
| Nome | Localização | Tipo | Descrição |
|---|---|---|---|
document_id | path | string | O ID do Documento. |
crop | query, opcional | string | "x1,y1,x2,y2" — quatro floats entre 0 e 1, mesma convenção de coordenadas normalizadas de todo objeto bbox em outras partes da API. Omita para obter a imagem de página completa e sem recorte. |
A resposta são os bytes brutos da imagem (Content-Type: image/jpeg), não JSON — não há exemplo de resposta JSON à direita para este endpoint, apenas a requisição.
Erros possíveis
missing_api_key/invalid_api_key/plan_required— consulte Tratamento de Erros.document_not_found— nenhum Documento com este ID, ou o arquivo de imagem original não está mais disponível (ex.: ultrapassou a janela de retenção de exclusão automática da sua conta).invalid_parameter(param: "crop") — valorcropmalformado, coordenadas fora de 0–1, ou uma região de recorte vazia após o ajuste aos limites da imagem.
Acionar anotação de bbox
Inicia explicitamente o job opcional e pago de segunda passagem que localiza onde cada valor de campo extraído está fisicamente na página. Esta é uma ação faturada separada da extração em si — consulte o guia Bounding Boxes antes de integrar isso, especialmente a nota sobre a configuração auto_annotate_bbox da sua conta que pode acionar (e cobrar) este mesmo job automaticamente sem que você nunca chame este endpoint.
Parâmetros
| Nome | Localização | Tipo | Descrição |
|---|---|---|---|
document_id | path | string | Deve ser um documento já succeeded com dados extraídos — você não pode anotar um documento que ainda não concluiu a extração. |
Idempotency-Key | header, opcional | string | Recomendado — esta ação gasta créditos. Consulte Idempotência. |
Retorna 202 quando um novo job de bbox acaba de ser enfileirado, ou 200 quando um job de bbox para este documento já está em execução (already_running: true) — significando que você já chamou este mesmo endpoint para este documento uma vez antes e aquele job de bbox anterior ainda não terminou. Isso não tem relação com a conclusão da extração do próprio documento — bbox só pode ser acionado em um documento que já está succeeded (veja "Erros possíveis" abaixo), então quando você pode chamar este endpoint, a extração já está concluída. already_running é puramente sobre um segundo job de bbox para o mesmo documento, não sobre o job de extração. De qualquer forma (202 ou 200), nada novo é iniciado ou cobrado no caminho 200 — consulte Obter anotação de bbox com o group_batch_id retornado para obter o resultado.
Possíveis erros
missing_api_key/invalid_api_key/plan_required— consulte Tratamento de Erros.document_not_found— nenhum documento com este ID em sua conta.insufficient_credits— créditos insuficientes para executar esta passagem de anotação.invalid_parameter— o documento não está em um estado válido para isso (ainda processando) ou não possui dados extraídos para localizar caixas.
Obter anotação bbox
Consulta o status e obtém os resultados do trabalho de anotação bbox mais recente acionado para um documento. Se nenhum trabalho foi acionado para este documento, exists é false e status/group_batch_id são null — esta é uma resposta normal e comum (a maioria dos documentos nunca tem bbox acionado), não um erro.
Parâmetros
| Nome | Localização | Tipo | Descrição |
|---|---|---|---|
document_id | path | string | O ID do documento. |
rows mapeia um índice de linha (como string, ex. "0") para um mapa de nome de campo → objeto bbox normalizado (ou null se a localização daquele campo não foi encontrada na página). status usa o mesmo conjunto fechado de 5 valores de enumeração usado em toda a API.
Possíveis erros
missing_api_key/invalid_api_key/plan_required— consulte Tratamento de Erros.document_not_found— nenhum documento com este ID em sua conta.