Skip to content
Vai integrar a API REST da Zarv com ajuda de IA? Copie a instrução que aponta o modelo para esta documentação.
Ver a instrução
Você vai integrar a API REST da Zarv. Use a documentação oficial como fonte da verdade.

- Página desta integração: https://developers.zarv.com/api/lens/submitResearchDocuments
- Autenticação Bearer JWT e hosts: https://developers.zarv.com/setup
- Índice das APIs: https://developers.zarv.com/api
- Índice da documentação em markdown: https://developers.zarv.com/llms.txt
- Documentação completa em um arquivo: https://developers.zarv.com/llms-full.txt

Os specs OpenAPI publicados são a fonte da verdade para rotas e schemas — use o spec da API que você escolher antes de escrever qualquer request.

Antes de escrever qualquer código, leia a página desta integração. Siga exatamente os nomes de campos, endpoints, callbacks e formatos que estiverem documentados — não invente parâmetros nem endpoints, e não deduza comportamento a partir de outras APIs que você conhece. Se algo de que você precisa não estiver na documentação, diga que não está em vez de supor.

Minha tarefa: [ex.: escolher a API certa e fazer a primeira chamada autenticada]

Enviar os documentos do caso​

POST
/api/v1/lens/{workspaceId}/research/{researchId}/document

Envia todos os arquivos do caso de uma vez e responde 202 sem chamar modelo nenhum. Os arquivos ficam na fila e um worker os identifica, lê e grava depois. É a rota que substituiu o antigo create de um arquivo por vez.

O que o worker faz com cada arquivo

  1. Sem type, o identificador de documento diz o que o arquivo é (target): apólice, BO, aviso de sinistro, termo de terceiro, CNH, CRLV, foto do local, foto do veículo ou OUTRO. O OUTRO fica fora do caso.
  2. Foto de veículo passa também pelo OCR Veículo, e a posição da foto (frente, traseira, lateral, interior, cofre do motor) é que dá o tipo do documento.
  3. Com agentReader: true, o OCR do tipo lê o arquivo e grava os campos extraídos no metadata do documento, na chave do agente.
  4. Com autoCreate: true, a leitura entra na montagem do caso: o agente de reconciliação transforma as leituras em envolvidos e preenche o relato (veja documents.assembly no GET do caso). autoCreate exige agentReader — sem leitura não há o que montar.

Limites

Limite Valor
Arquivos por envio 40
Tamanho de um arquivo (decodificado) 10 MB
Soma dos arquivos (decodificados) 50 MB
Formatos application/pdf, image/jpeg, image/png, image/webp

O corpo inteiro é cortado em cerca de 67,7 MB antes de ser lido — o Base64 dos 50 MB mais folga para o resto do JSON. Passar disso é 413.

Um envio por vez

Há um envio por caso. Mandar outro com um em andamento é 409 RESEARCH_DOCUMENTS_IN_PROGRESS. O andamento sai no GET do caso, em documents.

Um arquivo recusado leva o índice dele no corpo do erro (index), para o front saber qual corrigir sem ler a frase.

Authorizations​

BearerAuth

Token Bearer JWT obtido em POST /api/v1/authentication. O workspace do token precisa ser o mesmo do caminho.

Type
HTTP (bearer)

Parameters​

Path Parameters

workspaceId*

O workspace dono do caso. Tem de ser o workspace do token.

Type
string
Required
Example"3f1a2b4c-5d6e-4f70-8a91-b2c3d4e5f607"
Format
"uuid"
researchId*

O id do caso.

Type
string
Required
Example"7d2f8e10-4c3b-4a5d-9e8f-1a2b3c4d5e6f"
Format
"uuid"

Request Body​

application/json
JSON
{
  
"files": [
  
  
{
  
  
  
"fileName": "bo.pdf",
  
  
  
"contentType": "application/pdf",
  
  
  
"base64": "JVBERi0xLjQKJeLjz9MK...",
  
  
  
"agentReader": true,
  
  
  
"autoCreate": true
  
  
},
  
  
{
  
  
  
"fileName": "apolice.pdf",
  
  
  
"contentType": "application/pdf",
  
  
  
"base64": "JVBERi0xLjQKJeLjz9MK...",
  
  
  
"agentReader": true,
  
  
  
"autoCreate": true
  
  
},
  
  
{
  
  
  
"fileName": "frente.jpg",
  
  
  
"contentType": "image/jpeg",
  
  
  
"base64": "/9j/4AAQSkZJRgABAQAA...",
  
  
  
"agentReader": true
  
  
}
  
]
}

Responses​

O envio entrou na fila.

application/json
JSON
{
  
"researchId": "string",
  
"status": "QUEUED",
  
"total": 3,
  
"progress": 0
}

Playground​

Authorization
Variables
Key
Value
Body

Samples​

Powered by VitePress OpenAPI