API de CEP com geolocalização, busca reversa, autocomplete, CEPs próximos e compatibilidade ViaCEP.
A API CEP permite consultar endereços brasileiros de forma completa e enriquecida. Além da consulta direta por CEP, a API oferece busca reversa por endereço, autocomplete, busca por locais especiais (empresas, órgãos, prédios), CEPs próximos por coordenada ou a partir de outro CEP, listagem de cidades e bairros e consulta por código IBGE.
Todos os endpoints usam GET, retornam JSON, exigem autenticação Bearer Token e suportam CORS.
Todas as requisições exigem o header Authorization usando o padrão Bearer Token.
Seu token é gerado automaticamente após a confirmação de pagamento do Plano. Ele fica disponível no seu Painel.
curl -X GET "https://api.apicep.com.br/cep/01001000" \ -H "Authorization: Bearer SEU_TOKEN"
Faça sua primeira consulta em segundos: informe o CEP no endpoint e receba o endereço completo com geolocalização em JSON.
{
"cep": "01001-000",
"cepNumerico": "01001000",
"tipoLogradouro": "Praça",
"logradouro": "da Sé",
"endereco": "Praça da Sé",
"complemento": "- lado ímpar",
"local": null,
"bairro": "Sé",
"cidade": "São Paulo",
"uf": "SP",
"estado": "São Paulo",
"codigoIbge": "3550308",
"codigoIbgeUf": "35",
"idCidade": 9668,
"cepCidade": null,
"latitude": "-23.5503099",
"longitude": "-46.6342009"
}Consulta os dados completos de endereço a partir de um CEP, incluindo geolocalização.
Também aceita via query string:
curl -X GET "https://api.apicep.com.br/cep/01001000" \ -H "Authorization: Bearer SEU_TOKEN"
cepCEP formatado com hífencepNumericoCEP somente com númerostipoLogradouroTipo do logradouro: Rua, Avenida, Praça…logradouroNome do logradouroenderecoEndereço completo montadocomplementoComplemento do CEP, quando houverlocalNome de local especial: empresa, prédio, órgão, instituiçãobairroBairrocidadeCidadeufEstado em siglaestadoNome do estadocodigoIbgeCódigo IBGE da cidadecodigoIbgeUfCódigo IBGE da UFidCidadeID interno da cidade na basecepCidadeCEP geral da cidade, quando existirlatitudeLatitude do CEP, quando disponívellongitudeLongitude do CEP, quando disponívelRetorna os dados do CEP com campos extras: país, região, tipo do CEP e indicação se possui geolocalização.
Também aceita:
{
"cep": "01001-000",
"cepNumerico": "01001000",
"tipoLogradouro": "Praça",
"logradouro": "da Sé",
"endereco": "Praça da Sé",
"complemento": "- lado ímpar",
"local": null,
"bairro": "Sé",
"cidade": "São Paulo",
"idCidade": 9668,
"cepCidade": "01000-000",
"uf": "SP",
"estado": "São Paulo",
"codigoIbge": "3550308",
"codigoIbgeUf": "35",
"ddd": "11",
"latitude": "-23.5503099",
"longitude": "-46.6342009",
"pais": "Brasil",
"regiao": "Sudeste",
"tipoCep": "logradouro",
"temGeolocalizacao": true
}paisPaís do endereçoregiaoRegião do Brasil conforme a UFtipoCepTipo inferido: logradouro, local_especial, cidade ou indefinidotemGeolocalizacaoIndica se o CEP possui latitude e longitudeRetorna o endereço em formato compatível com o padrão ViaCEP. Ideal para migrar integrações já existentes.
Também aceita:
{
"cep": "01001-000",
"logradouro": "Praça da Sé",
"complemento": "- lado ímpar",
"bairro": "Sé",
"localidade": "São Paulo",
"uf": "SP",
"ibge": "3550308"
}Este formato é útil para substituir integrações existentes com o ViaCEP com o mínimo de alteração no código — basta trocar a URL e adicionar o header Authorization.
Retorna apenas latitude e longitude de um CEP.
Também aceita:
{
"cep": "01001-000",
"cepNumerico": "01001000",
"latitude": "-23.5503099",
"longitude": "-46.6342009"
}Busca CEPs informando UF, cidade e logradouro. Também pesquisa no campo local, permitindo encontrar CEPs de empresas, órgãos, universidades e prédios.
Também aceita via query string:
| Parâmetro | Obrig. | Padrão | Máx | Descrição |
|---|---|---|---|---|
| uf | Sim | — | — | Sigla da UF (2 letras) |
| cidade | Sim | — | — | Nome da cidade. Mínimo 3 caracteres, máximo 120 |
| logradouro | Sim | — | — | Nome do logradouro. Mínimo 3 caracteres, máximo 120. Pesquisa também no campo local |
| limit | — | 50 | 100 | Quantidade de resultados |
| offset | — | 0 | — | Paginação |
ufObrigatórioSigla da UF (2 letras)
cidadeObrigatórioNome da cidade. Mínimo 3 caracteres, máximo 120
logradouroObrigatórioNome do logradouro. Mínimo 3 caracteres, máximo 120. Pesquisa também no campo local
limitQuantidade de resultados
offsetPaginação
curl -X GET "https://api.apicep.com.br/cep/endereco/SP/Sao%20Paulo/Paulista?limit=10" \ -H "Authorization: Bearer SEU_TOKEN"
{
"total": 124,
"limit": 10,
"offset": 0,
"resultados": [
{
"cep": "01310-100",
"tipoLogradouro": "Avenida",
"logradouro": "Paulista",
"endereco": "Avenida Paulista",
"complemento": "- até 610 - lado par",
"local": null,
"bairro": "Bela Vista",
"cidade": "São Paulo",
"uf": "SP",
"codigoIbge": "3550308",
"ddd": "11",
"latitude": "-23.5614552",
"longitude": "-46.6558819"
}
]
}Busca por termo livre em logradouro, local especial e bairro. Útil para campos de busca, autocomplete, CRM, checkout e sistemas internos.
Também aceita:
| Parâmetro | Obrig. | Padrão | Máx | Descrição |
|---|---|---|---|---|
| q | Sim | — | — | Termo de busca. Mínimo 3, máximo 120 caracteres |
| uf | — | — | — | Filtra por UF (2 letras) |
| cidade | — | — | — | Filtra por cidade. Mínimo 2 caracteres |
| limit | — | 20 | 100 | Quantidade de resultados |
| offset | — | 0 | — | Paginação |
qObrigatórioTermo de busca. Mínimo 3, máximo 120 caracteres
ufFiltra por UF (2 letras)
cidadeFiltra por cidade. Mínimo 2 caracteres
limitQuantidade de resultados
offsetPaginação
curl -X GET "https://api.apicep.com.br/cep/busca?q=Serasa&uf=SP&cidade=Sao%20Paulo&limit=10" \ -H "Authorization: Bearer SEU_TOKEN"
A busca também encontra locais especiais como empresas, órgãos públicos, universidades e prédios cadastrados pelos Correios.
{
"total": 3,
"limit": 10,
"offset": 0,
"resultados": [
{
"cep": "06460-040",
"tipoLogradouro": "Alameda",
"logradouro": "Mamoré",
"endereco": "Alameda Mamoré, 989",
"complemento": null,
"local": "Serasa Experian",
"bairro": "Alphaville Industrial",
"cidade": "Barueri",
"uf": "SP",
"codigoIbge": "3505708",
"ddd": "11",
"latitude": "-23.4988",
"longitude": "-46.8456"
}
]
}Retorna CEPs próximos a uma coordenada geográfica, ordenados por distância.
Também aceita:
| Parâmetro | Obrig. | Padrão | Máx | Descrição |
|---|---|---|---|---|
| lat | Sim | — | — | Latitude |
| lng | Sim | — | — | Longitude |
| raio | — | 2 | 50 | Raio em quilômetros |
| limit | — | 10 | 100 | Quantidade de resultados |
| offset | — | 0 | — | Paginação |
latObrigatórioLatitude
lngObrigatórioLongitude
raioRaio em quilômetros
limitQuantidade de resultados
offsetPaginação
curl -X GET "https://api.apicep.com.br/cep/proximos?lat=-23.5676&lng=-46.6492&raio=2&limit=10" \ -H "Authorization: Bearer SEU_TOKEN"
Cada item inclui o campo extra distanciaKm:
{
"latitude": -23.5676,
"longitude": -46.6492,
"raioKm": 2,
"limit": 10,
"offset": 0,
"resultados": [
{
"cep": "01311-000",
"logradouro": "Paulista",
"endereco": "Avenida Paulista",
"bairro": "Bela Vista",
"cidade": "São Paulo",
"uf": "SP",
"latitude": "-23.5676249",
"longitude": "-46.6492632",
"distanciaKm": 0.007
}
]
}Retorna CEPs próximos a um CEP de origem. Por padrão restringe à mesma cidade do CEP pesquisado, evitando falsos positivos por coordenadas inconsistentes.
Também aceita:
| Parâmetro | Obrig. | Padrão | Máx | Descrição |
|---|---|---|---|---|
| raio | — | 2 | 50 | Raio em quilômetros |
| limit | — | 10 | 100 | Quantidade de resultados |
| offset | — | 0 | — | Paginação |
| mesmaCidade | — | true | — | Restringe à mesma cidade do CEP de origem. Aceita: true/1/sim/s/yes ou false/0/nao/n/no. Use false para qualquer cidade no raio |
raioRaio em quilômetros
limitQuantidade de resultados
offsetPaginação
mesmaCidadeRestringe à mesma cidade do CEP de origem. Aceita: true/1/sim/s/yes ou false/0/nao/n/no. Use false para qualquer cidade no raio
# Padrão (apenas mesma cidade) curl -X GET "https://api.apicep.com.br/cep/proximos/01001000?raio=2&limit=10" \ -H "Authorization: Bearer SEU_TOKEN" # Permitindo qualquer cidade no raio curl -X GET "https://api.apicep.com.br/cep/proximos/01001000?raio=2&limit=10&mesmaCidade=false" \ -H "Authorization: Bearer SEU_TOKEN"
Também aceita:
curl -X GET "https://api.apicep.com.br/cep/cidades/SP" \ -H "Authorization: Bearer SEU_TOKEN"
[
{
"idCidade": 8853,
"cidade": "Adamantina",
"uf": "SP",
"estado": "São Paulo",
"cepCidade": null,
"codigoIbge": "3500105"
}
]Também aceita:
O parâmetro cidade aceita correspondência parcial (mínimo 2 caracteres).
curl -X GET "https://api.apicep.com.br/cep/bairros/SP/Sao%20Paulo" \ -H "Authorization: Bearer SEU_TOKEN"
[
{
"idBairro": 29401,
"bairro": "Aclimação",
"idCidade": 9668,
"cidade": "São Paulo",
"uf": "SP"
}
]Consulta os dados de uma cidade pelo código IBGE (6 a 10 dígitos).
Também aceita via query string (qualquer um dos dois nomes):
curl -X GET "https://api.apicep.com.br/cep/ibge/3550308" \ -H "Authorization: Bearer SEU_TOKEN"
{
"idCidade": 9668,
"cidade": "São Paulo",
"uf": "SP",
"estado": "São Paulo",
"cepCidade": null,
"codigoIbge": "3550308"
}Conjunto de endpoints para validar, corrigir, normalizar, pontuar e localizar endereços brasileiros usando a base de CEPs da API. Ideal para formulários de cadastro, checkout, CRM, ERP, logística e antifraude.
Todos os endpoints abaixo também aceitam o prefixo alternativo /cep/endereco/... com o mesmo comportamento.
Valida se os dados informados (CEP, UF, cidade, bairro, logradouro) são compatíveis com a base. Ideal para formulários, checkout, CRM e ERP.
Também aceita:
| Parâmetro | Obrig. | Padrão | Máx | Descrição |
|---|---|---|---|---|
| cep | Sim | — | — | CEP com ou sem hífen |
| uf | — | — | — | UF esperada do endereço |
| cidade | — | — | — | Cidade informada pelo usuário |
| bairro | — | — | — | Bairro informado pelo usuário |
| logradouro | — | — | — | Logradouro informado pelo usuário |
cepObrigatórioCEP com ou sem hífen
ufUF esperada do endereço
cidadeCidade informada pelo usuário
bairroBairro informado pelo usuário
logradouroLogradouro informado pelo usuário
curl -X GET "https://api.apicep.com.br/endereco/validar?cep=01001000&cidade=Sao%20Paulo&uf=SP&bairro=Se" \ -H "Authorization: Bearer SEU_TOKEN"
{
"valido": true,
"confianca": 100,
"classificacao": "excelente",
"mensagem": "Endereço compatível com a base.",
"original": {
"cep": "01001000",
"uf": "SP",
"cidade": "Sao Paulo",
"bairro": "Se"
},
"corrigido": {
"cep": "01001-000",
"cepNumerico": "01001000",
"tipoLogradouro": "Praça",
"logradouro": "da Sé",
"endereco": "Praça da Sé",
"complemento": "- lado ímpar",
"local": null,
"bairro": "Sé",
"cidade": "São Paulo",
"uf": "SP",
"estado": "São Paulo",
"codigoIbge": "3550308",
"codigoIbgeUf": "35",
"idCidade": 9668,
"cepCidade": null,
"latitude": "-23.5503099",
"longitude": "-46.6342009"
},
"comparacoes": {
"uf": true,
"cidade": true,
"bairro": true
},
"problemas": [],
"sugestoes": []
}Retorna sugestões de endereço em tempo real conforme o usuário digita. Busca por logradouro, local especial e bairro, priorizando logradouros mais diretos.
Também aceita:
| Parâmetro | Obrig. | Padrão | Máx | Descrição |
|---|---|---|---|---|
| q | Sim | — | — | Termo pesquisado, mínimo de 3 caracteres |
| uf | — | — | — | Filtra por UF |
| cidade | — | — | — | Filtra por cidade |
| limit | — | 10 | 50 | Quantidade de resultados |
| offset | — | 0 | — | Paginação |
qObrigatórioTermo pesquisado, mínimo de 3 caracteres
ufFiltra por UF
cidadeFiltra por cidade
limitQuantidade de resultados
offsetPaginação
curl -X GET "https://api.apicep.com.br/endereco/autocomplete?q=av%20paulist&uf=SP&cidade=Sao%20Paulo&limit=10" \ -H "Authorization: Bearer SEU_TOKEN"
[
{
"label": "Avenida Paulista - até 610 - lado par, Bela Vista, São Paulo/SP",
"cep": "01310-000",
"cepNumerico": "01310000",
"endereco": "Avenida Paulista",
"logradouro": "Paulista",
"tipoLogradouro": "Avenida",
"complemento": "- até 610 - lado par",
"local": null,
"bairro": "Bela Vista",
"cidade": "São Paulo",
"uf": "SP",
"latitude": "-23.5674731",
"longitude": "-46.6491264"
},
{
"label": "Avenida Paulista - de 612 a 1510 - lado par, Bela Vista, São Paulo/SP",
"cep": "01310-100",
"cepNumerico": "01310100",
"endereco": "Avenida Paulista",
"logradouro": "Paulista",
"tipoLogradouro": "Avenida",
"complemento": "- de 612 a 1510 - lado par",
"local": null,
"bairro": "Bela Vista",
"cidade": "São Paulo",
"uf": "SP",
"latitude": "-23.5674637",
"longitude": "-46.6491379"
}
]Recebe dados de endereço digitados pelo usuário e retorna a versão padronizada da base. Útil para limpar cadastros, corrigir acentos e padronizar cidade/UF/bairro.
Também aceita:
| Parâmetro | Obrig. | Padrão | Máx | Descrição |
|---|---|---|---|---|
| cep | — | — | — | CEP com ou sem hífen |
| texto | — | — | — | Texto livre do endereço |
| q | — | — | — | Alternativa ao parâmetro texto |
| uf | — | — | — | UF informada |
| cidade | — | — | — | Cidade informada |
| bairro | — | — | — | Bairro informado |
| logradouro | — | — | — | Logradouro informado |
cepCEP com ou sem hífen
textoTexto livre do endereço
qAlternativa ao parâmetro texto
ufUF informada
cidadeCidade informada
bairroBairro informado
logradouroLogradouro informado
cep, ou texto/q, ou uf + cidade + logradouro.Exemplo com CEP:
curl -X GET "https://api.apicep.com.br/endereco/normalizar?cep=01001000&logradouro=praca%20da%20se&cidade=sao%20paulo&uf=sp" \ -H "Authorization: Bearer SEU_TOKEN"
Exemplo com texto livre:
curl -X GET "https://api.apicep.com.br/endereco/normalizar?texto=praca%20da%20se%20sao%20paulo%20sp" \ -H "Authorization: Bearer SEU_TOKEN"
{
"encontrado": true,
"confianca": 100,
"origem": "cep",
"mensagem": "Endereço normalizado com sucesso.",
"original": {
"cep": "01001000",
"uf": "sp",
"cidade": "sao paulo",
"logradouro": "praca da se"
},
"normalizado": {
"cep": "01001-000",
"cepNumerico": "01001000",
"tipoLogradouro": "Praça",
"logradouro": "da Sé",
"endereco": "Praça da Sé",
"complemento": "- lado ímpar",
"local": null,
"bairro": "Sé",
"cidade": "São Paulo",
"uf": "SP",
"estado": "São Paulo",
"codigoIbge": "3550308",
"codigoIbgeUf": "35",
"idCidade": 9668,
"cepCidade": null,
"latitude": "-23.5503099",
"longitude": "-46.6342009"
}
}Analisa a qualidade do endereço informado e retorna uma nota de 0 a 100. Útil para identificar cadastros incompletos, divergentes ou de baixa qualidade.
Também aceita:
| Parâmetro | Obrig. | Padrão | Máx | Descrição |
|---|---|---|---|---|
| cep | — | — | — | CEP com ou sem hífen |
| uf | — | — | — | UF informada |
| cidade | — | — | — | Cidade informada |
| bairro | — | — | — | Bairro informado |
| logradouro | — | — | — | Logradouro informado |
cepCEP com ou sem hífen
ufUF informada
cidadeCidade informada
bairroBairro informado
logradouroLogradouro informado
curl -X GET "https://api.apicep.com.br/endereco/score?cep=01001000&cidade=Sao%20Paulo&uf=SP&bairro=Se" \ -H "Authorization: Bearer SEU_TOKEN"
{
"score": 100,
"classificacao": "excelente",
"valido": true,
"problemas": [],
"sugestoes": [],
"original": {
"cep": "01001000",
"uf": "SP",
"cidade": "Sao Paulo",
"bairro": "Se"
},
"corrigido": {
"cep": "01001-000",
"cepNumerico": "01001000",
"tipoLogradouro": "Praça",
"logradouro": "da Sé",
"endereco": "Praça da Sé",
"complemento": "- lado ímpar",
"local": null,
"bairro": "Sé",
"cidade": "São Paulo",
"uf": "SP",
"estado": "São Paulo",
"codigoIbge": "3550308",
"codigoIbgeUf": "35",
"idCidade": 9668,
"cepCidade": null,
"latitude": "-23.5503099",
"longitude": "-46.6342009"
}
}Classificações possíveis:
| Classificação | Faixa |
|---|---|
| excelente | 90 a 100 |
| bom | 70 a 89 |
| regular | 50 a 69 |
| ruim | 0 a 49 |
Encontra o endereço mais provável a partir de uma latitude e longitude. Útil para aplicativos, logística, mapas, delivery, check-in e atendimento em campo.
Também aceita:
| Parâmetro | Obrig. | Padrão | Máx | Descrição |
|---|---|---|---|---|
| lat | Sim | — | — | Latitude |
| lng | Sim | — | — | Longitude |
| raio | — | 1 | 50 | Raio de busca em quilômetros |
latObrigatórioLatitude
lngObrigatórioLongitude
raioRaio de busca em quilômetros
curl -X GET "https://api.apicep.com.br/endereco/reverso?lat=-23.5503&lng=-46.6342&raio=1" \ -H "Authorization: Bearer SEU_TOKEN"
{
"latitude": -23.5503,
"longitude": -46.6342,
"raioKm": 1,
"limit": 1,
"offset": 0,
"resultado": {
"cep": "01001-000",
"cepNumerico": "01001000",
"tipoLogradouro": "Praça",
"logradouro": "da Sé",
"endereco": "Praça da Sé",
"complemento": "- lado ímpar",
"local": null,
"bairro": "Sé",
"cidade": "São Paulo",
"uf": "SP",
"estado": "São Paulo",
"codigoIbge": "3550308",
"codigoIbgeUf": "35",
"idCidade": 9668,
"cepCidade": null,
"latitude": "-23.5503099",
"longitude": "-46.6342009",
"distanciaKm": 0.0011
}
}| Parâmetro | Onde usar | Descrição |
|---|---|---|
| limit | Busca, endereço, próximos | Limita a quantidade de resultados. Máximo 100 |
| offset | Busca, endereço, próximos | Paginação |
| uf | Busca, cidades, bairros, endereço | Sigla da UF com 2 letras |
| cidade | Busca, bairros, endereço | Nome da cidade |
| cep | Consulta, geo, próximos | CEP com ou sem hífen |
| q | Busca geral | Termo livre de busca |
| lat | Próximos por coordenada | Latitude |
| lng | Próximos por coordenada | Longitude |
| raio | Próximos | Raio em km. Máximo 50 |
| formato | Consulta CEP | Use viacep para retorno compatível |
| completo | Consulta CEP | Use true para retorno enriquecido |
| mesmaCidade | Próximos por CEP | Use false para permitir resultados de outras cidades |
Veja como consumir a API em diferentes linguagens. Substitua SEU_TOKEN pelo seu token real.
const TOKEN = "SEU_TOKEN";
const BASE = "https://api.apicep.com.br";
// Consultar CEP
const res = await fetch(`${BASE}/cep/01001000`, {
headers: { "Authorization": `Bearer ${TOKEN}` }
});
const endereco = await res.json();
console.log(endereco.endereco, endereco.cidade);
// Buscar CEPs próximos a uma coordenada
const proximos = await fetch(
`${BASE}/cep/proximos?lat=-23.5676&lng=-46.6492&raio=2&limit=5`,
{ headers: { "Authorization": `Bearer ${TOKEN}` } }
).then(r => r.json());Todas as respostas de erro retornam um JSON no formato { "mensagem": "..." } acompanhado de um código interno entre parênteses (ex.: Cod.(2001)) que identifica precisamente o erro ocorrido.
| HTTP | Quando ocorre |
|---|---|
| 200 | Sucesso. |
| 400 | Parâmetro inválido (CEP, UF, latitude, longitude, código IBGE, texto de busca, etc.). |
| 401 | Token ausente, mal formatado, inválido ou desativado. |
| 402 | Sem assinatura ativa ou assinatura expirada. |
| 403 | Conta bloqueada. |
| 404 | CEP, endereço, cidade, bairro ou IBGE não encontrado. |
| 405 | Método HTTP não permitido. Apenas GET é aceito. |
| 429 | Limite diário de consultas do plano atingido. |
| 500 | Erro interno ao processar a requisição. |
Token ausente (401)
{
"mensagem": "Token de autenticação não fornecido. Use o header 'Authorization: Bearer SEU_TOKEN'. Cod.(7007)"
}Token inválido (401)
{
"mensagem": "Token inválido! Cod.(4002)"
}Sem assinatura ativa (402)
{
"mensagem": "Você não possui uma assinatura ativa. Contrate um plano. Cod.(7771)"
}CEP inválido (400)
{
"mensagem": "O CEP deve conter 8 números. Cod.(1102)"
}CEP não encontrado (404)
{
"mensagem": "CEP não encontrado. Cod.(2001)"
}Limite diário atingido (429)
{
"mensagem": "Limite diário de 1000 consultas atingido. Faça upgrade do plano. Cod.(4290)"
}