Documentação da API
A API do painel expõe o mesmo motor de consultas usado na interface: catálogo de funcionalidades, execução de consultas, lote de score/renda, histórico por usuário e administração de contas. Todas as rotas falam JSON e respondem no domínio do painel.
01 Visão geral
O acesso é feito com uma sessão assinada guardada em cookie. Depois do login, o cookie acompanha automaticamente as requisições feitas pelo navegador. Em clientes externos (cURL, scripts), basta reenviar o cookie recebido no login.
/painel/api/consulta.
| Página | Acesso | Descrição |
|---|---|---|
GET / | Público | Landing page com os planos. |
GET /login | Público | Tela de login. |
GET /app | Sessão | Painel de consultas. Sem sessão, redireciona para /login. |
GET /docs | Público | Esta documentação. |
02 Autenticação
O login valida usuário e senha e devolve um cookie de sessão assinado. Não há token Bearer: a credencial de acesso é o próprio cookie.
/api/session/login
Público
Autentica e cria a sessão.
| Campo | Tipo | Descrição |
|---|---|---|
username | obrigatório | Nome de usuário cadastrado no painel. |
password | obrigatório | Senha do usuário. |
curl -i -c cookies.txt \
-X POST https://consultas.raisetech.online/api/session/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"SUA_SENHA"}'
{
"username": "admin"
}
/api/session
Público
Informa se a sessão atual está autenticada.
{
"authenticated": true,
"username": "admin",
"role": "admin"
}
{
"authenticated": false,
"username": null,
"role": null
}
/api/session/logout
Sessão
Encerra a sessão e invalida o cookie.
{
"ok": true
}
03 Catálogo de consultas
Antes de consultar, leia o catálogo. Ele traz os grupos do menu e, para cada funcionalidade, a chave usada na API, o rótulo exibido no painel, o tipo de dado esperado e se a consulta exige um valor.
/api/features
Sessão
Lista as 36 funcionalidades, agrupadas.
{
"groups": ["Pessoa", "Empresa", "Veículo", "PIX", "Outros"],
"features": [
{
"key": "cpf",
"label": "CPF Completo",
"icon": "🆔",
"placeholder": "CPF (somente números)",
"kind": "num",
"group": "Pessoa",
"requires_value": true
}
]
}
| Campo | Descrição |
|---|---|
key | Identificador a ser enviado em feature na consulta. |
label | Nome exibido na interface. |
kind | num ou texto — apenas sugere o teclado no painel. |
group | Grupo do menu: Pessoa, Empresa, Veículo, PIX ou Outros. |
requires_value | false em comandos sem parâmetro, como gcnpj. |
04 Executar consulta
Rota principal: executa uma funcionalidade do catálogo para um valor. O resultado pode vir do cache local (7 dias) ou de uma consulta nova ao provedor, o que leva alguns segundos.
/api/consulta
Sessão
Executa a consulta e devolve o resultado estruturado.
| Campo | Tipo | Descrição |
|---|---|---|
feature | obrigatório | Chave da funcionalidade (ex.: cpf, placa, gcnpj). |
valor | opcional | Valor consultado. Obrigatório quando a funcionalidade exige parâmetro. |
force_refresh | opcional | true ignora o cache e consulta o provedor novamente. Padrão: false. |
curl -b cookies.txt \
-X POST https://consultas.raisetech.online/api/consulta \
-H "Content-Type: application/json" \
-d '{"feature":"cpf","valor":"00000000000"}'
{
"status": "RESOLVIDO",
"detail": null,
"from_cache": false,
"payload": {
"modulo": "cpf",
"valor": "00000000000",
"dados": {
"DADOS_PESSOAIS": {
"NOME": "NOME DA PESSOA",
"SCORE": "720",
"RENDA": "3500"
},
"SECOES": [
{
"titulo": "DADOS PESSOAIS",
"itens": [
{ "label": "Nome", "valor": "NOME DA PESSOA" }
]
}
]
},
"secoes": [
{
"titulo": "DADOS PESSOAIS",
"itens": [
{ "label": "Nome", "valor": "NOME DA PESSOA" }
]
}
],
"expiresAt": "2026-09-20T05:23:41.000Z"
}
}
SECOES não existe, apenas dados
vem preenchido — por isso vale sempre tratar os dois caminhos.
Valores possíveis de status
| Status | Significado | payload |
|---|---|---|
| RESOLVIDO | Consulta concluída com dados. | preenchido |
| NAO_ENCONTRADO | O provedor não encontrou registros para o valor. | null |
| SEM_DADOS | Respondeu, mas sem dados úteis. | null |
| ERRO | Falha na consulta. O motivo vem em detail. | null |
{
"status": "ERRO",
"detail": "o bot não respondeu após 3 tentativas — tente novamente",
"payload": null,
"from_cache": false
}
05 Score em lote
Consulta vários CPFs de uma vez e devolve nome, score e renda de cada um. O processamento roda em segundo plano: a chamada inicial apenas abre o lote e devolve um identificador, e o progresso é lido por polling.
/api/score/lote
Sessão
Abre um lote. Limite de 100 CPFs.
| Campo | Tipo | Descrição |
|---|---|---|
cpfs | obrigatório | Lista de CPFs (com ou sem pontuação — só os dígitos são considerados). Duplicatas são descartadas. |
force_refresh | reservado | Aceito no corpo, porém ainda não aplicado ao lote. |
curl -b cookies.txt \
-X POST https://consultas.raisetech.online/api/score/lote \
-H "Content-Type: application/json" \
-d '{"cpfs":["00000000000","11111111111"]}'
{
"job_id": "9f2c1ab34d5e",
"total": 2
}
/api/score/lote/{job_id}
Sessão
Progresso e resultados do lote.
{
"status": "running",
"total": 2,
"processed": 1,
"results": []
}
{
"status": "done",
"total": 2,
"processed": 2,
"results": [
{ "cpf": "00000000000", "status": "OK", "nome": "NOME DA PESSOA", "score": "720", "renda": "3500" },
{ "cpf": "11111111111", "status": "NAO_ENCONTRADO" }
]
}
| Campo | Descrição |
|---|---|
status | running enquanto processa, done ao terminar. |
processed | Quantidade de CPFs já processados. |
results[].status | OK, NAO_ENCONTRADO ou ERRO (com detail). |
06 Histórico
Toda consulta é registrada por usuário — serve para auditoria e para reabrir um resultado anterior sem gastar uma consulta nova.
/api/historico
Sessão
Últimas consultas do usuário autenticado (até 200).
[
{
"id": 1841,
"feature": "cpf",
"valor": "00000000000",
"status": "RESOLVIDO",
"created_at": "2026-09-20T04:23:41.000000+00:00"
}
]
/api/historico/{id}
Sessão
Detalhe de uma consulta, com o payload completo.
07 Conta do usuário
Troca de senha do próprio usuário, exigindo a senha atual.
/api/senha
Sessão
Altera a senha da conta autenticada.
| Campo | Tipo | Descrição |
|---|---|---|
current_password | obrigatório | Senha atual, para confirmação. |
new_password | obrigatório | Nova senha, com no mínimo 6 caracteres. |
{
"ok": true
}
08 Administração
Rotas restritas a contas com papel admin. Sem esse papel, a resposta é
403.
/api/admin/users
Admin
Lista os usuários do painel.
[
{ "username": "admin", "role": "admin", "created_at": "2026-08-23T01:06:25+00:00" }
]
/api/admin/users
Admin
Cria um usuário. Devolve 409 se já existir.
| Campo | Tipo | Descrição |
|---|---|---|
username | obrigatório | Nome do novo usuário. |
password | obrigatório | Senha inicial. |
role | opcional | user (padrão) ou admin. |
/api/admin/users/{username}/password
Admin
Redefine a senha de um usuário, sem exigir a senha antiga.
/api/admin/users/{username}
Admin
Remove um usuário.
400 nesses dois casos.
/api/admin/historico
Admin
Histórico de todos os usuários (até 500 registros).
09 Todas as funcionalidades
As 36 funcionalidades disponíveis, com a chave usada na API e o valor esperado. Use o filtro para localizar rapidamente.
Pessoa
Empresa
Veículo
PIX
Outros
10 Erros e status
Falhas seguem o padrão do framework, com o motivo em detail. Erros de
validação vêm em 422, com a lista de campos inválidos.
| Código | Quando acontece |
|---|---|
200 | Requisição bem-sucedida. |
400 | Dados inválidos: senha curta, nenhum CPF válido no lote, lote acima de 100 CPFs, remoção da própria conta ou do último admin. |
401 | Sem sessão válida, ou credenciais incorretas no login. |
403 | Sem permissão de administrador, ou tentativa de ler histórico de outro usuário. |
404 | Funcionalidade, consulta ou lote inexistente (ou expirado). |
409 | Usuário já cadastrado. |
422 | Corpo da requisição fora do formato esperado. |
502 | Falha ao consultar o provedor. |
{
"detail": "não autenticado"
}
11 Exemplos completos
Fluxo completo de autenticação e consulta em três linguagens.
cURL
# 1. autentica e guarda o cookie
curl -s -c cookies.txt \
-X POST https://consultas.raisetech.online/api/session/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"SUA_SENHA"}'
# 2. consulta usando o cookie
curl -s -b cookies.txt \
-X POST https://consultas.raisetech.online/api/consulta \
-H "Content-Type: application/json" \
-d '{"feature":"placa","valor":"ABC1D23"}'
Python
import requests
BASE = "https://consultas.raisetech.online"
s = requests.Session()
s.post(f"{BASE}/api/session/login",
json={"username": "admin", "password": "SUA_SENHA"}).raise_for_status()
r = s.post(f"{BASE}/api/consulta",
json={"feature": "cpf", "valor": "00000000000"})
r.raise_for_status()
dados = r.json()
if dados["status"] == "RESOLVIDO":
print(dados["payload"]["dados"].get("SECOES"))
else:
print("sem resultado:", dados.get("detail"))
JavaScript
const BASE = "https://consultas.raisetech.online";
await fetch(`${BASE}/api/session/login`, {
method: "POST",
headers: { "Content-Type": "application/json" },
credentials: "include",
body: JSON.stringify({ username: "admin", password: "SUA_SENHA" })
});
const res = await fetch(`${BASE}/api/consulta`, {
method: "POST",
headers: { "Content-Type": "application/json" },
credentials: "include",
body: JSON.stringify({ feature: "cnpj", valor: "00000000000000" })
});
const dados = await res.json();
console.log(dados.status, dados.payload && dados.payload.secoes);