Next.js
Consulte CPF direto no servidor com um Route Handler do App Router. Zero dependências extras.
Integrando com Cursor, Lovable, v0 ou outra IA?
Copie o prompt de integração e cole direto no seu assistente de IA - ele saberá exatamente como usar a API.
Pré-requisitos
- Next.js 13+ com App Router
- Uma API Key em app.cpfhub.io
- Variável de ambiente
CPFHUB_API_KEYconfigurada
Route Handler
Crie o arquivo app/api/cpf/[cpf]/route.ts:
TypeScript
import { NextRequest, NextResponse } from 'next/server'
export async function GET(
_req: NextRequest,
{ params }: { params: { cpf: string } }
) {
const res = await fetch(`https://api.cpfhub.io/cpf/${params.cpf}`, {
headers: { 'x-api-key': process.env.CPFHUB_API_KEY! },
next: { revalidate: 0 },
})
const body = await res.json()
if (!res.ok) {
return NextResponse.json(body, { status: res.status })
}
return NextResponse.json(body)
}✦
next: { revalidate: 0 }
Desativa o cache do Next.js para esta rota - dados de CPF são sensíveis e devem ser buscados em tempo real.
Server Component
Você também pode consultar diretamente de um Server Component:
TypeScript
// app/usuario/[cpf]/page.tsx
async function getCpf(cpf: string) {
const res = await fetch(`https://api.cpfhub.io/cpf/${cpf}`, {
headers: { 'x-api-key': process.env.CPFHUB_API_KEY! },
cache: 'no-store',
})
if (!res.ok) return null
return res.json().then((r) => r.data)
}
export default async function Page({ params }: { params: { cpf: string } }) {
const data = await getCpf(params.cpf)
if (!data) return <p>CPF não encontrado.</p>
return (
<div>
<p>{data.name}</p>
<p>{data.birthDate}</p>
</div>
)
}⚠
Nunca exponha a API Key no client
A chamada à API deve acontecer sempre no servidor (Server Component, Route Handler, Server Action). Nunca passe a CPFHUB_API_KEY para componentes client-side.
Campos retornados
| Campo | Tipo | Exemplo |
|---|---|---|
cpf | string | "12345678909" |
name | string | "Fulano de Tal" |
nameUpper | string | "FULANO DE TAL" |
gender | "M" | "F" | "M" |
birthDate | string | "15/06/1990" |
day | number | 15 |
month | number | 6 |
year | number | 1990 |
Tratamento de erros
| HTTP | error.code | Descrição |
|---|---|---|
| 404 | CPF_NOT_FOUND | CPF não consta na base |
| 422 | INVALID_CPF_DIGITS | Dígitos verificadores inválidos |
| 429 | RATE_LIMIT_EXCEEDED | Muitas requisições |
| 401 | UNAUTHORIZED | API Key inválida ou ausente |
Links
Atualizado em 17 de maio de 2026