Documentação

Referência da API CPF

Base URL https://api.apicpf.dev · autentique e consulte CPF em JSON.

Autenticação

Toda chamada à API é autenticada por uma API Key no formato sk-live_…. Você recebe a chave ao criar a conta e pode regenerá-la no painel.

Header de autenticação

http
X-API-KEY: sk-live_sua_chave_aqui

Também aceitamos Authorization: Bearer sk-live_… ou ?token= / ?api_key= na URL.

Nunca exponha a API Key no frontend ou em repositório público. Faça as chamadas no seu servidor.

Erro de autenticação

CódigoSignificado
401Header ausente ou API Key inválida
403Conta bloqueada

Consultar CPF

Consulta dados cadastrais do CPF. Consome 1 crédito. Resposta média em ~2ms quando há cache.

GET https://api.apicpf.dev/consulta?cpf=

Consulta CPF via query string (cache local ou provedor).

Parâmetros

cpf string obrigatório

CPF com ou sem máscara. Ex.: 52998224725 ou 529.982.247-25.

Response

json · 200
{
  "code": 200,
  "data": {
    "cpf": "52998224725",
    "nome": "Maria Aparecida da Silva",
    "mae": "Ana da Silva",
    "genero": "F",
    "data_nascimento": "1988-03-12"
  }
}

Validar CPF

Checa formato e dígitos verificadores sem debitar crédito. Ideal antes da consulta completa.

GET https://api.apicpf.dev/v1/validate?cpf=

Validação de dígitos. Também disponível em /validate.

Parâmetros

cpf string obrigatório

CPF a validar. Aceita máscara.

Response

json · 200
{
  "code": 200,
  "valid": true,
  "cpf": "52998224725",
  "formatted": "529.982.247-25"
}

Via URL

Atalho REST com o CPF no path. Consome crédito como a consulta padrão.

GET https://api.apicpf.dev/cpf/{digits}

Substitua {digits} pelo CPF (apenas números ou com máscara).

Response

json · 200
{
  "code": 200,
  "data": {
    "cpf": "52998224725",
    "nome": "Maria Aparecida da Silva"
  }
}

Health

Healthcheck público da API. Não exige autenticação.

GET https://api.apicpf.dev/health

Retorna status do serviço.

Response

json · 200
{
  "code": 200,
  "service": "apicpf",
  "ok": true
}

Exemplos

Snippets prontos para colar. Troque sk-live_sua_chave_aqui pela sua chave.

cURL · Consulta
curl -X GET 'https://api.apicpf.dev/consulta?cpf=52998224725' \
  -H 'X-API-KEY: sk-live_sua_chave_aqui' \
  -H 'Accept: application/json'
curl -X GET 'https://api.apicpf.dev/v1/validate?cpf=529.982.247-25'
curl -X GET 'https://api.apicpf.dev/cpf/52998224725' \
  -H 'X-API-KEY: sk-live_sua_chave_aqui'
$ch = curl_init('https://api.apicpf.dev/consulta?cpf=52998224725');
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    'X-API-KEY: sk-live_sua_chave_aqui',
    'Accept: application/json',
  ],
]);
$response = curl_exec($ch);
curl_close($ch);
$json = file_get_contents('https://api.apicpf.dev/v1/validate?cpf=52998224725');
$ch = curl_init('https://api.apicpf.dev/cpf/52998224725');
curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-KEY: sk-live_sua_chave_aqui']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
const res = await fetch('https://api.apicpf.dev/consulta?cpf=52998224725', {
  headers: {
    'X-API-KEY': 'sk-live_sua_chave_aqui',
    'Accept': 'application/json',
  },
});
const data = await res.json();
const res = await fetch('https://api.apicpf.dev/v1/validate?cpf=52998224725');
const data = await res.json();
const res = await fetch('https://api.apicpf.dev/cpf/52998224725', {
  headers: { 'X-API-KEY': 'sk-live_sua_chave_aqui' },
});

Códigos de erro

Respostas de erro sempre incluem code e message.

CódigoSignificado
400CPF inválido ou mal formatado
401API Key ausente ou inválida
403Conta bloqueada ou IP fora da allowlist
404Rota não encontrada
429Limite de taxa (RPM / diário)
402Sem créditos disponíveis
500Erro interno / banco indisponível

Exemplo de erro

json · 401
{
  "code": 401,
  "message": "API key não fornecida"
}

Gere sua chave no painel e faça o primeiro request em minutos.

Criar conta