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/createResearch
- 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]

Abrir um caso​

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

Abre um caso no workspace e o põe na raia Abertura do quadro.

O autor do caso é o usuário do token, nunca o userId do corpo — esse campo é ignorado. Abrir um caso sem usuário autenticado é recusado com 401 antes de qualquer gravação.

incidentType decide quais análises rodam depois: a dimensão de posse só roda em roubo e furto, a de croqui só em colisão. Deixá-lo vazio continua valendo — o fluxo o deduz do relato —, mas um tipo declarado é sempre melhor que um deduzido.

reportTime é o instante do fato. Mande-o com o fuso do lugar do fato: um furto declarado às 23:48 em Ribeirão Pires é 02:48Z do dia seguinte, e quem formatar sem saber onde o fato aconteceu imprime o dia errado.

Idempotência

Mande o header Idempotency-Key com um valor único por caso (um UUID, por exemplo). Repetir a requisição com a mesma chave e o mesmo corpo devolve o caso que já existe, com 200 e o header Idempotent-Replayed: true, sem abrir um segundo. A mesma chave com um corpo diferente responde 409 IDEMPOTENCY_KEY_REUSED.

Sem a chave, duas chamadas abrem dois casos — nunca se deduplica por conteúdo.

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​

Header Parameters

Idempotency-Key

Chave única por caso (um UUID, por exemplo). Repetir a requisição com a mesma chave e o mesmo corpo devolve o caso que já existe, com 200 e Idempotent-Replayed: true.

Type
string
Example"6f1c2a9e-4b7d-4e2a-9c3f-0a1b2c3d4e5f"

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"

Request Body​

application/json
JSON
{
  
"domain": "auto",
  
"objective": "sinistro",
  
"status": "CREATED",
  
"incidentType": "colisao",
  
"reportAddress": "Av. Paulista, 1000 - São Paulo/SP",
  
"reportTime": "2026-11-03T23:48:00-03:00",
  
"reportText": "Colisão traseira no cruzamento, sem vítimas.",
  
"doubts": [
  
  
[
  
  
  
"O condutor estava autorizado a dirigir?"
  
  
]
  
],
  
"bot": {
  
  
"additionalProperties": "string"
  
},
  
"userId": "string"
}

Responses​

Replay da mesma Idempotency-Key com o mesmo corpo: o caso que já existia, sem abrir outro.

application/json
JSON
{
  
"id": "string",
  
"workspaceId": "string",
  
"userId": "string",
  
"domain": "auto",
  
"objective": "sinistro",
  
"reportAddress": "string",
  
"reportText": "string",
  
"doubts": [
  
  
"string"
  
],
  
"status": "CREATED",
  
"incidentType": "colisao",
  
"bot": {
  
  
"additionalProperties": "string"
  
},
  
"kanbanId": "string",
  
"createdAt": "string",
  
"updatedAt": "string",
  
"reportTime": "string"
}

Playground​

Authorization
Headers
Variables
Key
Value
Body

Samples​

Powered by VitePress OpenAPI