API DataShield

API RESTful para consultas cadastrais (PG) e dossiês completos (Forense). Autenticação via API Key, resposta em JSON.

Base URL: https://ciclocontabilidade.com/api/v1

Início Rápido

1. Crie sua conta no Dashboard
2. Assine um plano
3. Gere sua API Key na seção "Chave API"
4. Faça sua primeira consulta:

cURL
Python
Node.js
# Consulta por CPF
curl -H "x-api-key: SUA_API_KEY" \
  "https://ciclocontabilidade.com/api/v1/pg?cpf=12345678900"
import requests

headers = {"x-api-key": "SUA_API_KEY"}
r = requests.get(
    "https://ciclocontabilidade.com/api/v1/pg",
    params={"cpf": "12345678900"},
    headers=headers
)
print(r.json())
const res = await fetch(
  "https://ciclocontabilidade.com/api/v1/pg?cpf=12345678900",
  { headers: { "x-api-key": "SUA_API_KEY" } }
);
const data = await res.json();
console.log(data);

Autenticação

Todas as requisições devem incluir o header x-api-key com sua chave de API.

HeaderValor
x-api-keySua chave de API gerada no Dashboard
Segurança: Nunca exponha sua API Key em código frontend. Use sempre em backend/servidor.

Rate Limits

Os limites variam por plano:

PlanoReq/minutoPG/períodoDET/período
STARTER550015
PRO202.50080
ENTERPRISE6010.000350

Ao exceder o limite, a resposta será 429 Too Many Requests.

Códigos de Erro

CódigoSignificadoQuando
400Bad RequestParâmetros inválidos ou faltando
401UnauthorizedAPI Key inválida ou ausente
403ForbiddenSem assinatura ativa
404Not FoundNenhum registro encontrado
429Rate LimitedExcedeu limite de requisições ou quota
502Bad GatewayServiço temporariamente indisponível

Formato do Erro

{ "error": "Descrição do erro" }

Consulta PG (Cadastral)

Retorna dados cadastrais: nome, CPF, endereço, telefones, RG, filiação, renda e mais.

GET/api/v1/pgConsulta cadastral

Parâmetros (query string)

ParâmetroTipoExemploDescrição
cpfstring12345678900CPF (apenas números)
cnpjstring12345678000190CNPJ (apenas números)
nomestringJoão da SilvaNome completo ou parcial
telstring11999998888Telefone com DDD
Use apenas um parâmetro por requisição. Prioridade: cpf > cnpj > nome > tel.

Exemplo de Resposta

{
  "success": true,
  "level": "PRO",
  "data": {
    "cpf": "12345678900",
    "nome": "JOÃO DA SILVA",
    "data_nascimento": "15/03/1990",
    "sexo": "M",
    "nome_mae": "MARIA DA SILVA",
    "renda": "5000.00",
    "score": 750,
    "endereco": "Rua das Flores, 123",
    "cidade": "São Paulo",
    "uf": "SP",
    "telefones": ["(11) 99999-8888"]
  }
}

Exemplos

cURL
Python
Node.js
# Por CPF
curl -H "x-api-key: KEY" "https://ciclocontabilidade.com/api/v1/pg?cpf=12345678900"

# Por Nome
curl -H "x-api-key: KEY" "https://ciclocontabilidade.com/api/v1/pg?nome=Joao+Silva"
import requests

API = "https://ciclocontabilidade.com/api/v1"
KEY = "SUA_API_KEY"

r = requests.get(f"{API}/pg", params={"cpf": "12345678900"}, headers={"x-api-key": KEY})
print(r.json())
const res = await fetch("https://ciclocontabilidade.com/api/v1/pg?cpf=12345678900", {
  headers: { "x-api-key": "SUA_API_KEY" }
});
console.log(await res.json());

Dossiê Forense (DET)

Retorna dossiê completo com 60+ seções: dados pessoais, endereços, telefones, parentes, veículos, processos, fotos, vacinas e muito mais.

GET/api/v1/detDossiê completo

Parâmetros (query string)

ParâmetroTipoExemploDescrição
cpfstring12345678900CPF (busca direta)
cnpjstring12345678000190CNPJ (busca direta)
telefonestring11999998888Busca reversa por telefone
placastringABC1D23Busca reversa por placa
emailstringfulano@gmail.comBusca reversa por email
Busca reversa: Ao pesquisar por telefone, placa ou email, o sistema descobre o CPF/CNPJ e retorna o dossiê completo automaticamente.

Exemplo de Resposta

{
  "success": true,
  "searchType": "cpf",
  "data": {
    "consulta": {
      "cadastral": { "nome": "...", "cpf": "...", ... },
      "enderecos": [...],
      "telefones": [...],
      "parentes": [...],
      "placas": [...],
      "fotos": [...],
      "empregos": [...],
      // ... 60+ seções
    }
  }
}

Exemplos

cURL
Python
Node.js
# Por CPF
curl -H "x-api-key: KEY" "https://ciclocontabilidade.com/api/v1/det?cpf=12345678900"

# Por Placa (busca reversa)
curl -H "x-api-key: KEY" "https://ciclocontabilidade.com/api/v1/det?placa=ABC1D23"

# Por Email
curl -H "x-api-key: KEY" "https://ciclocontabilidade.com/api/v1/det?email=fulano@gmail.com"

# Por Telefone
curl -H "x-api-key: KEY" "https://ciclocontabilidade.com/api/v1/det?telefone=11999998888"
import requests

API = "https://ciclocontabilidade.com/api/v1"
KEY = "SUA_API_KEY"
h = {"x-api-key": KEY}

# Dossiê por CPF
r = requests.get(f"{API}/det", params={"cpf": "12345678900"}, headers=h)
dossie = r.json()["data"]["consulta"]

print(dossie["cadastral"]["nome"])
print(f"Parentes: {len(dossie.get('parentes', []))}")
print(f"Veículos: {len(dossie.get('placas', []))}")

# Busca reversa por Placa
r = requests.get(f"{API}/det", params={"placa": "ABC1D23"}, headers=h)
print(r.json())
const API = "https://ciclocontabilidade.com/api/v1";
const KEY = "SUA_API_KEY";

const res = await fetch(`${API}/det?telefone=11999998888`, {
  headers: { "x-api-key": KEY }
});
const { data } = await res.json();
console.log(data.consulta.cadastral.nome);
console.log("Endereços:", data.consulta.enderecos.length);

Status / Quota

GET/api/v1/statusVerifica uso e limites

Resposta

{
  "plan": "pro_monthly",
  "level": "PRO",
  "pg": { "used": 142, "limit": 2500, "remaining": 2358 },
  "det": { "used": 12, "limit": 80, "remaining": 68 },
  "expiresAt": "2026-10-15T23:59:59Z"
}

Planos & Limites

PlanoNívelPGDETRateCampos PG
Starter SemanalSTARTER500155/minBásicos
Starter MensalSTARTER500155/minBásicos
Pro SemanalPRO2.5008020/minCompletos
Pro MensalPRO2.5008020/minCompletos
Enterprise SemanalENTERPRISE10.00035060/minCompletos
Enterprise MensalENTERPRISE10.00035060/minCompletos
Starter retorna apenas: cpf, nome, data_nascimento, nome_mae, nome_pai, sexo, rg, titulo_eleitor.
Pro/Enterprise retornam todos os campos.

Campos — Consulta PG

CampoTipoDescriçãoNível
cpfstringCPFTodos
nomestringNome completoTodos
data_nascimentostringData de nascimentoTodos
sexostringM ou FTodos
nome_maestringNome da mãeTodos
nome_paistringNome do paiTodos
rgstringNúmero do RGTodos
titulo_eleitorstringTítulo de eleitorTodos
rendastringRenda estimadaPRO+
scorenumberScore de créditoPRO+
enderecostringEndereçoPRO+
bairrostringBairroPRO+
cidadestringCidadePRO+
ufstringEstadoPRO+
cepstringCEPPRO+
telefonesarrayLista de telefonesPRO+

Campos — Dossiê Forense

O dossiê contém até 66 seções. Listamos as principais:

SeçãoChaveDescrição
📋 CadastralcadastralNome, CPF, nascimento, situação
📍 EndereçosenderecosHistórico de endereços com lat/lng
📞 TelefonestelefonesNúmeros com classificação e WhatsApp
📧 EmailsemailsEmails com avaliação de qualidade
👨‍👩‍👧 ParentesparentesFamiliares com foto, renda, profissão
🏠 VizinhosrelacionadosPorEnderecoPessoas no mesmo endereço
🚗 VeículosplacasVeículos com fotos, modelo, chassi
📷 FotosfotosFotos de perfil
💼 EmpregosempregosHistórico de emprego
📚 EscolaridadeescolaridadeNível de escolaridade
⚖️ ProcessosprocessosProcessos judiciais
🏢 SociedadessociedadesEmpresas e cargos
💳 Chaves PIXchavesPixChaves PIX registradas
💉 VacinasvacinasRegistro de vacinação
🚗 CNHcnhCarteira de habilitação
📊 IRPFirpfDeclarações de IR
📱 Planos MóveisplanosMoveisOperadora e plano
🏪 MEImeiDetalhadoDados do MEI com CNAE
📈 PropensõespropensoesScore comportamental (CSB8)
✍️ AssinaturaassinaturasAssinatura digital
🌐 OnlinemovimentacoesOnlineGoogle Maps, reviews
⏳ TimelinelinhaDoTempoLinha do tempo de eventos
🔒 VazamentoscredenciaisVazadasCredenciais expostas
🏥 Pl. SaúdeplanosSaudePlanos de saúde
✈️ ViagensviagensViagens internacionais
🚁 DronesdronesDrones registrados
🏛️ PolíticapoliticaDados políticos
🔗 LinkedInlinkedinPerfil profissional
🚨 BNMPpecasBnmpMandados de prisão

E mais: aeronaves, benefícios, certidões, CIN, CCF, contatos comerciais, dívida ativa, empréstimos, energias, estrangeiro, genitores, histórico escolar, imóveis, INSS, naturalidade completa, OAB, outros nomes, PPE, PROUNI, RAIS, RGs, SISU, etc.