API Panel

...

Documentacao da API

Base URL:

Todas as rotas de dados exigem autenticação. Existem 3 métodos aceitos:

MétodoComo usarQuando usar
Bearer TokenHeader Authorization: Bearer SEU_TOKENAPIs, bots, integrações
Query ParamAdicione ?token=SEU_TOKEN na URLTestes rápidos, webhooks
Session CookieLogin via POST /api/loginNavegador / painel web

Autenticação via Token (recomendado)

Crie tokens na aba Tokens do painel. Cada token pode ter limite diário, limite por minuto e expiração.

Exemplo com Bearer Token

# Buscar CPF com Bearer token
curl -H "Authorization: Bearer SEU_TOKEN_AQUI" http://v1.workzap.io/api/cpf/00000000272

# Buscar nome
curl -H "Authorization: Bearer SEU_TOKEN_AQUI" "http://v1.workzap.io/api/nome/Isaias?mode=prefixo&limit=10"

Exemplo com Query Param

curl "http://v1.workzap.io/api/cpf/00000000272?token=SEU_TOKEN_AQUI"

Respostas de erro do token

StatusErroCausa
401Token inválidoToken não existe
403Token bloqueado / Token inactive / Token expiradoToken não é mais válido
429Limite atingidoLimite diário ou por minuto foi atingido

Autenticação via Session (painel web)

POST /api/login

Autentica o usuário e retorna um cookie de sessão.

CampoTipoDescrição
usernamestringNome de usuário
passwordstringSenha
curl -c cookies.txt -X POST http://v1.workzap.io/api/login \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"admin"}'

Resposta: {"success": true, "username": "admin"}

POST /api/logout

Encerra a sessão.

curl -b cookies.txt -X POST http://v1.workzap.io/api/logout

GET /api/me

Verifica se está autenticado.

curl -b cookies.txt http://v1.workzap.io/api/me

Resposta: {"authenticated": true, "username": "admin"}

Consultas

GET /api/status

Status do banco e total de registros.

curl -b cookies.txt http://v1.workzap.io/api/status

Resposta: {"status": "online", "total_registros": 223739201}

GET /api/cpf/:cpf

Busca por CPF (somente números). Aceita com ou sem formatação.

ParamTipoDescrição
:cpfstringCPF (ex: 00000000272 ou 000.000.002-72)
curl -b cookies.txt http://v1.workzap.io/api/cpf/00000000272

Resposta:

[{
  "id": 4511,
  "cpf": "00000000272",
  "nome": "Gherson Dywyno Esphyndola",
  "nascimento": "31/03/1966",
  "genero": "M - Masculino"
}]

GET /api/nome/:nome

Busca por nome. Suporta 4 modos de busca.

ParamTipoDescrição
:nomestringNome a buscar
?modestringauto (padrão) | exato | prefixo | contem
?limitnumberMáx resultados (padrão: 50, máx: 500)

Modos de busca:

ModoVelocidadeDescrição
autoRapidoTenta exato, depois prefixo
exatoRapidoNome completo identico
prefixoRapidoComeca com o texto digitado
contemLento (~1min)Contem o texto em qualquer posicao
# Busca auto (recomendada)
curl -b cookies.txt "http://v1.workzap.io/api/nome/Isaias%20Amaral%20dos%20Santos?limit=10"

# Busca por prefixo
curl -b cookies.txt "http://v1.workzap.io/api/nome/Isaias%20Amaral?mode=prefixo&limit=10"

GET /api/nascimento?data=

Busca por data de nascimento.

ParamTipoDescrição
?datastringData no formato dd/mm/aaaa
?limitnumberMáx resultados (padrão: 50, máx: 500)
curl -b cookies.txt "http://v1.workzap.io/api/nascimento?data=31/03/1966&limit=5"

POST /api/query

Executa query SQL livre. Somente SELECT permitido. Se não incluir LIMIT, o sistema adiciona LIMIT 100 automaticamente.

CampoTipoDescrição
sqlstringQuery SELECT a executar
curl -b cookies.txt -X POST http://v1.workzap.io/api/query \
  -H "Content-Type: application/json" \
  -d '{"sql":"SELECT * FROM `1analytics` WHERE genero LIKE '\''F%'\'' LIMIT 5"}'

Resposta: {"total": 5, "dados": [...]}

Tabela de Dados

O banco contém uma tabela 1analytics com a seguinte estrutura:

ColunaTipoDescrição
idint (PK)ID auto-incremento
cpfvarchar(255)CPF (somente números, 11 dígitos)
nomevarchar(255)Nome completo
nascimentovarchar(255)Data nascimento (dd/mm/aaaa ou N/D)
generovarchar(255)M - Masculino / F - Feminino / I - Intersexo

Exemplos com Python

import requests

base = 'http://v1.workzap.io'
headers = {'Authorization': 'Bearer SEU_TOKEN_AQUI'}

# Buscar por CPF
r = requests.get(f'{base}/api/cpf/00000000272', headers=headers)
print(r.json())

# Buscar por nome
r = requests.get(f'{base}/api/nome/Isaias Amaral dos Santos', headers=headers, params={'limit': 10})
print(r.json())

# Query SQL
r = requests.post(f'{base}/api/query', headers=headers, json={'sql': 'SELECT COUNT(*) as total FROM `1analytics`'})
print(r.json())

Exemplos com JavaScript (fetch)

const TOKEN = 'SEU_TOKEN_AQUI';
const headers = { 'Authorization': `Bearer ${TOKEN}` };

// Buscar por CPF
const res = await fetch('/api/cpf/00000000272', { headers });
console.log(await res.json());

// Query SQL
const res2 = await fetch('/api/query', {
  method: 'POST',
  headers: { ...headers, 'Content-Type': 'application/json' },
  body: JSON.stringify({ sql: "SELECT * FROM `1analytics` WHERE nome = 'Isaias Amaral dos Santos'" })
});
console.log(await res2.json());

Códigos de Erro

StatusSignificado
200Sucesso
400Parâmetro inválido ou ausente
401Não autenticado / Token inválido
403Query não permitida / Token bloqueado/expirado
404CPF não encontrado
429Limite diário ou por minuto atingido
500Erro interno do servidor
503Banco offline

Gerenciar Tokens

Criar novo token

Atenção: copie o token agora. Ele não será exibido novamente.

Carregando...

Realize uma pesquisa para exibir os resultados