Resultado assíncrono
curl --request GET \
--url https://api.lazydata.com.br/v1/search/{target}/{history_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.lazydata.com.br/v1/search/{target}/{history_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.lazydata.com.br/v1/search/{target}/{history_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lazydata.com.br/v1/search/{target}/{history_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.lazydata.com.br/v1/search/{target}/{history_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.lazydata.com.br/v1/search/{target}/{history_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lazydata.com.br/v1/search/{target}/{history_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"code": 200,
"message": "Histórico da consulta retornado com sucesso.",
"result": {
"id": "9fcb573b-7f62-4774-978b-07e89dfef5f2",
"status": "processing",
"status_values": ["queued", "processing", "completed", "completed_with_errors", "failed"],
"target": "person",
"query": {
"taxid": "00000000000",
"datasets": ["person_basic_data"],
"additional": {}
},
"cost": {
"total": 0.05,
"refunded": 0,
"datasets": {
"person_basic_data": {
"charged": 0.05,
"refunded": 0
}
}
},
"timing": {
"total": 0.42,
"datasets": {
"person_basic_data": 0.42
}
},
"errors": {},
"cache": {},
"datasets_status": {
"person_basic_data": "processing"
},
"result": {},
"created_at": "2026-06-22T12:00:00Z",
"last_updated_at": "2026-06-22T12:00:01Z"
}
}
{
"code": 200,
"message": "Histórico da consulta retornado com sucesso.",
"result": {
"id": "9fcb573b-7f62-4774-978b-07e89dfef5f2",
"status": "completed",
"status_values": ["queued", "processing", "completed", "completed_with_errors", "failed"],
"target": "company",
"query": {
"taxid": "00000000000000",
"datasets": ["company_basic_data"],
"additional": {}
},
"cost": {
"total": 0.05,
"refunded": 0,
"datasets": {
"company_basic_data": {
"charged": 0.05,
"refunded": 0
}
}
},
"timing": {
"total": 0.83,
"datasets": {
"company_basic_data": 0.83
}
},
"errors": {},
"cache": {},
"datasets_status": {
"company_basic_data": "completed"
},
"result": {
"company_basic_data": {
"tax_id": "00000000000000",
"name": "EMPRESA EXEMPLO LTDA",
"status": "ATIVA"
}
},
"created_at": "2026-06-22T12:00:00Z",
"last_updated_at": "2026-06-22T12:00:02Z"
}
}
{
"code": 400,
"message": "Tipo de consulta inválido."
}
{
"code": 401,
"message": "Credencial da API inválida."
}
{
"code": 403,
"message": "A credencial da API não possui permissão para este recurso."
}
{
"code": 404,
"message": "O histórico da consulta não foi encontrado."
}
Consultas
Resultado assíncrono
Consulte o andamento, resultado final e histórico técnico de uma consulta assíncrona.
GET
https://api.lazydata.com.br/
/
v1
/
search
/
{target}
/
{history_id}
Resultado assíncrono
curl --request GET \
--url https://api.lazydata.com.br/v1/search/{target}/{history_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.lazydata.com.br/v1/search/{target}/{history_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.lazydata.com.br/v1/search/{target}/{history_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lazydata.com.br/v1/search/{target}/{history_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.lazydata.com.br/v1/search/{target}/{history_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.lazydata.com.br/v1/search/{target}/{history_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lazydata.com.br/v1/search/{target}/{history_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"code": 200,
"message": "Histórico da consulta retornado com sucesso.",
"result": {
"id": "9fcb573b-7f62-4774-978b-07e89dfef5f2",
"status": "processing",
"status_values": ["queued", "processing", "completed", "completed_with_errors", "failed"],
"target": "person",
"query": {
"taxid": "00000000000",
"datasets": ["person_basic_data"],
"additional": {}
},
"cost": {
"total": 0.05,
"refunded": 0,
"datasets": {
"person_basic_data": {
"charged": 0.05,
"refunded": 0
}
}
},
"timing": {
"total": 0.42,
"datasets": {
"person_basic_data": 0.42
}
},
"errors": {},
"cache": {},
"datasets_status": {
"person_basic_data": "processing"
},
"result": {},
"created_at": "2026-06-22T12:00:00Z",
"last_updated_at": "2026-06-22T12:00:01Z"
}
}
{
"code": 200,
"message": "Histórico da consulta retornado com sucesso.",
"result": {
"id": "9fcb573b-7f62-4774-978b-07e89dfef5f2",
"status": "completed",
"status_values": ["queued", "processing", "completed", "completed_with_errors", "failed"],
"target": "company",
"query": {
"taxid": "00000000000000",
"datasets": ["company_basic_data"],
"additional": {}
},
"cost": {
"total": 0.05,
"refunded": 0,
"datasets": {
"company_basic_data": {
"charged": 0.05,
"refunded": 0
}
}
},
"timing": {
"total": 0.83,
"datasets": {
"company_basic_data": 0.83
}
},
"errors": {},
"cache": {},
"datasets_status": {
"company_basic_data": "completed"
},
"result": {
"company_basic_data": {
"tax_id": "00000000000000",
"name": "EMPRESA EXEMPLO LTDA",
"status": "ATIVA"
}
},
"created_at": "2026-06-22T12:00:00Z",
"last_updated_at": "2026-06-22T12:00:02Z"
}
}
{
"code": 400,
"message": "Tipo de consulta inválido."
}
{
"code": 401,
"message": "Credencial da API inválida."
}
{
"code": 403,
"message": "A credencial da API não possui permissão para este recurso."
}
{
"code": 404,
"message": "O histórico da consulta não foi encontrado."
}
Retorna o status atual e os dados disponíveis de uma consulta iniciada anteriormente em modo assíncrono.
Use este endpoint para implementar polling após receber o
Valores aceitos para
Estrutura de
Estrutura de
Estrutura de
Estrutura de
Cada chave representa um dataset solicitado.
Estrutura de
Estrutura de
O campo
Estrutura de
Objeto indexado pelo ID do dataset.
Estrutura de
Objeto indexado pelo ID do dataset. Cada chave contém o retorno final do dataset correspondente.
Para ver conceitos, filtros e interpretação dos campos, consulte:
id de uma consulta com status queued ou processing.
Esse endpoint é voltado para polling logo após iniciar uma consulta assíncrona.
Para consultar histórico armazenado fora da janela curta de polling, use
GET /v1/search/history e GET /v1/search/history/{history_id} com escopo history.{
"code": 200,
"message": "Histórico da consulta retornado com sucesso.",
"result": {
"id": "9fcb573b-7f62-4774-978b-07e89dfef5f2",
"status": "processing",
"status_values": ["queued", "processing", "completed", "completed_with_errors", "failed"],
"target": "person",
"query": {
"taxid": "00000000000",
"datasets": ["person_basic_data"],
"additional": {}
},
"cost": {
"total": 0.05,
"refunded": 0,
"datasets": {
"person_basic_data": {
"charged": 0.05,
"refunded": 0
}
}
},
"timing": {
"total": 0.42,
"datasets": {
"person_basic_data": 0.42
}
},
"errors": {},
"cache": {},
"datasets_status": {
"person_basic_data": "processing"
},
"result": {},
"created_at": "2026-06-22T12:00:00Z",
"last_updated_at": "2026-06-22T12:00:01Z"
}
}
{
"code": 200,
"message": "Histórico da consulta retornado com sucesso.",
"result": {
"id": "9fcb573b-7f62-4774-978b-07e89dfef5f2",
"status": "completed",
"status_values": ["queued", "processing", "completed", "completed_with_errors", "failed"],
"target": "company",
"query": {
"taxid": "00000000000000",
"datasets": ["company_basic_data"],
"additional": {}
},
"cost": {
"total": 0.05,
"refunded": 0,
"datasets": {
"company_basic_data": {
"charged": 0.05,
"refunded": 0
}
}
},
"timing": {
"total": 0.83,
"datasets": {
"company_basic_data": 0.83
}
},
"errors": {},
"cache": {},
"datasets_status": {
"company_basic_data": "completed"
},
"result": {
"company_basic_data": {
"tax_id": "00000000000000",
"name": "EMPRESA EXEMPLO LTDA",
"status": "ATIVA"
}
},
"created_at": "2026-06-22T12:00:00Z",
"last_updated_at": "2026-06-22T12:00:02Z"
}
}
{
"code": 400,
"message": "Tipo de consulta inválido."
}
{
"code": 401,
"message": "Credencial da API inválida."
}
{
"code": 403,
"message": "A credencial da API não possui permissão para este recurso."
}
{
"code": 404,
"message": "O histórico da consulta não foi encontrado."
}
Parâmetros
string
required
Tipo da consulta assíncrona que será detalhada.
target:
| Valor | Descrição |
|---|---|
person | Consulta de pessoa física. |
pf | Alias de person. |
company | Consulta de pessoa jurídica. |
pj | Alias de company. |
process | Consulta processual. |
vehicle | Consulta veicular. |
string
required
ID retornado ao iniciar a consulta assíncrona.
Resposta
integer
required
Código da resposta da API.
string
required
Mensagem descritiva da resposta.
object
Objeto principal com o status, dados da consulta, custos, tempos, erros e retorno dos datasets.
Estrutura de result
| Campo | Tipo | Descrição |
|---|---|---|
id | string | Identificador único da consulta. |
status | string | Status atual da consulta. |
status_values | array<string> | Lista de status possíveis para consultas assíncronas. |
target | string | Tipo público da consulta: person, company, process ou vehicle. |
query | object | Dados usados para iniciar a consulta. |
cost | object | Valores cobrados e estornados. |
timing | object | Tempo total e tempo individual por dataset, quando disponível. |
errors | object | Erros por dataset, quando ocorrerem. |
cache | object | Informações de cache por dataset, quando aplicável. |
datasets_status | object | Status individual de cada dataset solicitado. |
result | object | Resultado agrupado por dataset. Pode ficar vazio enquanto a consulta estiver em andamento. |
created_at | string | Data de criação da consulta em ISO 8601. |
last_updated_at | string | Data da última atualização da consulta em ISO 8601. |
Status da consulta
| Status | Descrição |
|---|---|
queued | Consulta criada e aguardando processamento. |
processing | Consulta em processamento. |
completed | Consulta finalizada. Verifique errors para identificar falhas parciais por dataset. |
completed_with_errors | Consulta finalizada com falhas parciais. Trate como status final e revise errors e datasets_status. |
failed | Consulta finalizada com falha geral. |
Trate
completed, completed_with_errors e failed como status finais.Estrutura de query
| Campo | Tipo | Descrição |
|---|---|---|
taxid | string | CPF ou CNPJ consultado, quando a consulta usa documento. |
plate | string | Placa consultada, quando a consulta é veicular. |
datasets | array<string> | Datasets solicitados na consulta. |
additional | object | Campos adicionais enviados por dataset. |
Estrutura de cost
| Campo | Tipo | Descrição |
|---|---|---|
total | number | Valor total efetivamente debitado. |
refunded | number | Valor total estornado. |
datasets | object | Detalhamento financeiro por dataset. |
Estrutura de cost.datasets
Cada chave representa um dataset solicitado.
| Campo | Tipo | Descrição |
|---|---|---|
charged | number | Valor cobrado pelo dataset. |
refunded | number | Valor estornado para o dataset. |
Estrutura de timing
| Campo | Tipo | Descrição |
|---|---|---|
total | number | Tempo total da consulta em segundos, quando disponível. |
datasets | object | Tempo individual por dataset em segundos. |
Estrutura de errors
O campo errors retorna um objeto indexado pelo ID do dataset quando alguma base falha.
{
"errors": {
"person_example_dataset": {
"code": 42025,
"message": "Não foi possível consultar o provedor da consulta."
}
}
}
Estrutura de datasets_status
Objeto indexado pelo ID do dataset.
{
"datasets_status": {
"person_basic_data": "completed",
"person_example_dataset": "failed"
}
}
Estrutura de result.result
Objeto indexado pelo ID do dataset. Cada chave contém o retorno final do dataset correspondente.
{
"result": {
"company_basic_data": {
"tax_id": "00000000000000",
"name": "EMPRESA EXEMPLO LTDA",
"status": "ATIVA"
}
}
}
Campos descritos na estrutura dos datasets podem não aparecer em todas as consultas. A disponibilidade depende da fonte, do documento consultado e do dataset selecionado.
Respostas esperadas
| Status | Quando ocorre |
|---|---|
200 | Histórico encontrado e retornado com sucesso. |
400 | O target informado não é aceito. |
401 | A chave da API está ausente, inválida ou não pôde ser autenticada. |
403 | A credencial não possui escopo de consulta, o plano não permite acesso ou há bloqueio financeiro. |
404 | Consulta não encontrada ou fora da janela de leitura. |
422 | Validação dos parâmetros de rota falhou no schema da API reference. |
Janela de leitura
O resultado assíncrono fica disponível para leitura por uma janela limitada após a criação da consulta. Atualmente, a janela de leitura é de aproximadamente 30 minutos. Após esse período, a API pode retornar404.
Polling recomendado
- Inicie a consulta em modo assíncrono.
- Guarde o
idretornado. - Consulte este endpoint usando o
targetcorrespondente. - Enquanto
statusforqueuedouprocessing, repita a consulta com intervalo progressivo. - Ao receber
completed,completed_with_errorsoufailed, pare o polling e trateresult,errorsedatasets_status.
Evite polling agressivo. Para consultas com múltiplos datasets ou processos, use intervalos maiores para reduzir carga desnecessária.
Relação com histórico
O histórico de consultas usa o mesmo registro técnico gerado pela consulta assíncrona. Este endpoint detalha um item específico dentro da janela curta de polling. Para histórico completo da conta, use:GET /v1/search/history
GET /v1/search/history/{history_id}
Listar histórico
Liste consultas anteriores com filtros e paginação.
Histórico de consultas
Entenda status por dataset, custos, estornos e erros.

