Busca avançada
curl --request POST \
--url https://api.lazydata.com.br/v1/search/person/advanced \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"mother_name": "<string>",
"father_name": "<string>",
"identity_card": "<string>",
"pis": "<string>",
"voter_registration": "<string>",
"zipcode": "<string>",
"page": 123
}
'import requests
url = "https://api.lazydata.com.br/v1/search/person/advanced"
payload = {
"name": "<string>",
"mother_name": "<string>",
"father_name": "<string>",
"identity_card": "<string>",
"pis": "<string>",
"voter_registration": "<string>",
"zipcode": "<string>",
"page": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
mother_name: '<string>',
father_name: '<string>',
identity_card: '<string>',
pis: '<string>',
voter_registration: '<string>',
zipcode: '<string>',
page: 123
})
};
fetch('https://api.lazydata.com.br/v1/search/person/advanced', 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/person/advanced",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'mother_name' => '<string>',
'father_name' => '<string>',
'identity_card' => '<string>',
'pis' => '<string>',
'voter_registration' => '<string>',
'zipcode' => '<string>',
'page' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.lazydata.com.br/v1/search/person/advanced"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"mother_name\": \"<string>\",\n \"father_name\": \"<string>\",\n \"identity_card\": \"<string>\",\n \"pis\": \"<string>\",\n \"voter_registration\": \"<string>\",\n \"zipcode\": \"<string>\",\n \"page\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.lazydata.com.br/v1/search/person/advanced")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"mother_name\": \"<string>\",\n \"father_name\": \"<string>\",\n \"identity_card\": \"<string>\",\n \"pis\": \"<string>\",\n \"voter_registration\": \"<string>\",\n \"zipcode\": \"<string>\",\n \"page\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lazydata.com.br/v1/search/person/advanced")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"mother_name\": \"<string>\",\n \"father_name\": \"<string>\",\n \"identity_card\": \"<string>\",\n \"pis\": \"<string>\",\n \"voter_registration\": \"<string>\",\n \"zipcode\": \"<string>\",\n \"page\": 123\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"message": "Consulta realizada com sucesso.",
"result": {
"items": [
{
"taxid": "00000000000",
"name": "CARLOS SANTOS SILVA",
"birthdate": "1978-05-17",
"age": 48,
"mother_name": "MARIA SANTOS SILVA",
"father_name": "JOSE SILVA",
"location": "Rio de Janeiro/RJ",
"city": "Rio de Janeiro",
"state": "RJ",
"synthetic": true
}
],
"has_more": false,
"page": 1,
"price": 0.09,
"charged": 0.09,
"debit_only_if_found": false,
"time": 0.42,
"test": false
}
}
{
"code": 400,
"message": "Um ou mais parâmetros informados são inválidos."
}
{
"code": 401,
"message": "Credencial da API inválida."
}
{
"code": 403,
"message": "A credencial da API não possui permissão para este recurso."
}
Pessoa física
Busca avançada
Busque pessoas físicas por nome, filiação, documentos auxiliares ou CEP.
POST
https://api.lazydata.com.br/
/
v1
/
search
/
person
/
advanced
Busca avançada
curl --request POST \
--url https://api.lazydata.com.br/v1/search/person/advanced \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"mother_name": "<string>",
"father_name": "<string>",
"identity_card": "<string>",
"pis": "<string>",
"voter_registration": "<string>",
"zipcode": "<string>",
"page": 123
}
'import requests
url = "https://api.lazydata.com.br/v1/search/person/advanced"
payload = {
"name": "<string>",
"mother_name": "<string>",
"father_name": "<string>",
"identity_card": "<string>",
"pis": "<string>",
"voter_registration": "<string>",
"zipcode": "<string>",
"page": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
mother_name: '<string>',
father_name: '<string>',
identity_card: '<string>',
pis: '<string>',
voter_registration: '<string>',
zipcode: '<string>',
page: 123
})
};
fetch('https://api.lazydata.com.br/v1/search/person/advanced', 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/person/advanced",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'mother_name' => '<string>',
'father_name' => '<string>',
'identity_card' => '<string>',
'pis' => '<string>',
'voter_registration' => '<string>',
'zipcode' => '<string>',
'page' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.lazydata.com.br/v1/search/person/advanced"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"mother_name\": \"<string>\",\n \"father_name\": \"<string>\",\n \"identity_card\": \"<string>\",\n \"pis\": \"<string>\",\n \"voter_registration\": \"<string>\",\n \"zipcode\": \"<string>\",\n \"page\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.lazydata.com.br/v1/search/person/advanced")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"mother_name\": \"<string>\",\n \"father_name\": \"<string>\",\n \"identity_card\": \"<string>\",\n \"pis\": \"<string>\",\n \"voter_registration\": \"<string>\",\n \"zipcode\": \"<string>\",\n \"page\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lazydata.com.br/v1/search/person/advanced")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"mother_name\": \"<string>\",\n \"father_name\": \"<string>\",\n \"identity_card\": \"<string>\",\n \"pis\": \"<string>\",\n \"voter_registration\": \"<string>\",\n \"zipcode\": \"<string>\",\n \"page\": 123\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"message": "Consulta realizada com sucesso.",
"result": {
"items": [
{
"taxid": "00000000000",
"name": "CARLOS SANTOS SILVA",
"birthdate": "1978-05-17",
"age": 48,
"mother_name": "MARIA SANTOS SILVA",
"father_name": "JOSE SILVA",
"location": "Rio de Janeiro/RJ",
"city": "Rio de Janeiro",
"state": "RJ",
"synthetic": true
}
],
"has_more": false,
"page": 1,
"price": 0.09,
"charged": 0.09,
"debit_only_if_found": false,
"time": 0.42,
"test": false
}
}
{
"code": 400,
"message": "Um ou mais parâmetros informados são inválidos."
}
{
"code": 401,
"message": "Credencial da API inválida."
}
{
"code": 403,
"message": "A credencial da API não possui permissão para este recurso."
}
Executa uma busca avançada de pessoa física em formato paginado.
Use esta rota quando você não possui o CPF da pessoa, mas possui dados como nome completo, nome completo da mãe, nome completo do pai, RG, PIS, título de eleitor ou CEP.
Estrutura de
Estrutura de
{
"code": 200,
"message": "Consulta realizada com sucesso.",
"result": {
"items": [
{
"taxid": "00000000000",
"name": "CARLOS SANTOS SILVA",
"birthdate": "1978-05-17",
"age": 48,
"mother_name": "MARIA SANTOS SILVA",
"father_name": "JOSE SILVA",
"location": "Rio de Janeiro/RJ",
"city": "Rio de Janeiro",
"state": "RJ",
"synthetic": true
}
],
"has_more": false,
"page": 1,
"price": 0.09,
"charged": 0.09,
"debit_only_if_found": false,
"time": 0.42,
"test": false
}
}
{
"code": 400,
"message": "Um ou mais parâmetros informados são inválidos."
}
{
"code": 401,
"message": "Credencial da API inválida."
}
{
"code": 403,
"message": "A credencial da API não possui permissão para este recurso."
}
Corpo da requisição
string
Nome completo da pessoa. Quando informado, deve conter ao menos nome e sobrenome.
string
Nome completo da mãe. Pode ser usado sem informar o nome da pessoa.
string
Nome completo do pai. Pode ser usado sem informar o nome da pessoa.
string
Número do RG. Pontuação é aceita e removida automaticamente.
string
Número do PIS. Pontuação é aceita e removida automaticamente.
string
Número do título de eleitor. Pontuação é aceita e removida automaticamente.
string
CEP com 8 dígitos. Pontuação é aceita e removida automaticamente.
integer
default:"1"
Página dos resultados. Use a próxima página enquanto
has_more for true.string
Use
sandbox para executar uma chamada de teste sem consumo de saldo.Para detalhes sobre chamadas de teste, consulte Ambiente de teste.
Regras dos filtros
É necessário informar pelo menos um dos campos aceitos. Nomes informados emname, mother_name e father_name devem ser completos. A busca normaliza os nomes internamente para letras maiúsculas, remove acentos e padroniza espaços antes de consultar o índice.
Campos numéricos como identity_card, pis, voter_registration e zipcode aceitam pontuação, mas são consultados apenas com dígitos.
Exemplo de corpo
{
"name": "CARLOS SANTOS SILVA",
"mother_name": "MARIA SANTOS SILVA",
"zipcode": "01001000",
"page": 1
}
Resposta
integer
required
Código da resposta da API.
string
required
Mensagem descritiva da resposta.
object
required
Objeto principal com os registros encontrados, dados de paginação, cobrança e tempo de execução.
Estrutura de result
| Campo | Tipo | Descrição |
|---|---|---|
items | array<object> | Registros encontrados para os filtros enviados. |
has_more | boolean | Indica se existe próxima página disponível. |
page | integer | Página retornada. |
price | number | Preço da busca para a conta autenticada. |
charged | number | Valor debitado nesta chamada. Em sandbox, retorna 0. |
debit_only_if_found | boolean | Indica se a cobrança ocorre apenas quando houver resultado útil. |
time | number | Tempo de execução em segundos. |
test | boolean | Indica se a chamada foi executada em ambiente de teste. |
Estrutura de result.items[]
| Campo | Tipo | Descrição |
|---|---|---|
taxid | string | CPF encontrado. |
name | string | Nome da pessoa. |
birthdate | string | Data de nascimento no formato yyyy-mm-dd, quando disponível. |
age | integer | Idade calculada, quando disponível. |
mother_name | string | Nome da mãe, quando disponível. |
father_name | string | Nome do pai, quando disponível. |
location | string | Localização resumida, quando disponível. |
city | string | Cidade, quando disponível. |
state | string | UF, quando disponível. |
synthetic | boolean | Indica retorno sintético em chamadas sandbox, quando aplicável. |
Campos de
items[] podem não ser retornados em todas as consultas. A disponibilidade depende dos filtros enviados, do índice consultado e dos dados existentes para o registro encontrado.Paginação
Quandohas_more retornar true, envie a mesma requisição incrementando page.
{
"name": "CARLOS SANTOS SILVA",
"mother_name": "MARIA SANTOS SILVA",
"zipcode": "01001000",
"page": 2
}
Respostas esperadas
As respostas possíveis estão exemplificadas no painel lateral da página.| Status | Quando ocorre |
|---|---|
200 | Busca executada com sucesso. |
400 | Requisição inválida, filtro ausente ou campo em formato incompatível. |
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. |
Fluxo recomendado
- Envie os filtros mais específicos disponíveis.
- Use nomes completos para reduzir ambiguidades.
- Leia
itemse verifiquehas_more. - Se
has_morefortrue, consulte a próxima página. - Use
x-ambient: sandboxpara validar integração sem consumir saldo.

