CPFHub.io

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.

Abrir no Cursor

Pré-requisitos

  • Next.js 13+ com App Router
  • Uma API Key em app.cpfhub.io
  • Variável de ambiente CPFHUB_API_KEY configurada

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

CampoTipoExemplo
cpfstring"12345678909"
namestring"Fulano de Tal"
nameUpperstring"FULANO DE TAL"
gender"M" | "F""M"
birthDatestring"15/06/1990"
daynumber15
monthnumber6
yearnumber1990

Tratamento de erros

HTTPerror.codeDescrição
404CPF_NOT_FOUNDCPF não consta na base
422INVALID_CPF_DIGITSDígitos verificadores inválidos
429RATE_LIMIT_EXCEEDEDMuitas requisições
401UNAUTHORIZEDAPI Key inválida ou ausente

Links


Atualizado em 17 de maio de 2026