A NextAPI tem dois endpoints geoespaciais para consulta de CEPs por proximidade. Os dois aceitam um raio em metros e devolvem uma lista paginada de CEPs ordenados por distância, sem depender de serviços externos como Google Maps.
Os dois endpoints
1. CEPs próximos a coordenadas GPS (GET /v1/ceps/geo)
Recebe latitude, longitude e um raio em metros, e retorna os CEPs dentro daquela área. Útil quando você já tem a posição GPS do usuário ou do entregador.
GET https://api.nextapi.com.br/v1/ceps/geo?latitude=-23.5614&longitude=-46.6559&raioMetro=1000
Authorization: Bearer SEU_TOKEN
Parâmetros obrigatórios:
latitude— latitude do ponto de referência (ex:-23.5614)longitude— longitude do ponto de referência (ex:-46.6559)raioMetro— raio em metros ao redor do ponto (ex:1000para 1 km)
Parâmetros opcionais: page e pageSize (máx 200 itens por página, limite global de 2.000 itens). Consome 2 créditos por consulta.
Exemplo de resposta (cada item da lista):
{
"cep": "01310-100",
"logradouro": "Avenida Paulista",
"localidade": "Bela Vista",
"nomeMunicipio": "São Paulo",
"uf": "SP",
"latitude": -23.5614,
"longitude": -46.6559
}
2. CEPs próximos a um CEP de referência (GET /v1/ceps/geo/{cep})
Alternativa quando você tem um CEP em vez de coordenadas. A API usa a geolocalização do CEP informado como ponto de origem.
GET https://api.nextapi.com.br/v1/ceps/geo/01310100?raioMetro=500
Authorization: Bearer SEU_TOKEN
O parâmetro cep vai no path (somente dígitos, sem traço). O raioMetro é obrigatório na query string. Também consome 2 créditos e suporta paginação.
Exemplos práticos
Encontrar CEPs próximos à posição GPS do usuário
async function cepsProximos(raioMetros = 500) {
const pos = await new Promise((resolve, reject) =>
navigator.geolocation.getCurrentPosition(resolve, reject)
);
const { latitude, longitude } = pos.coords;
const url = new URL('https://api.nextapi.com.br/v1/ceps/geo');
url.searchParams.set('latitude', latitude);
url.searchParams.set('longitude', longitude);
url.searchParams.set('raioMetro', raioMetros);
const response = await fetch(url, {
headers: { Authorization: 'Bearer ' + process.env.NEXTAPI_TOKEN }
});
const data = await response.json();
return data.items; // array de CEPs próximos
}
Verificar se um CEP está na zona de entrega
Para um restaurante que entrega em até 2 km, você pode checar se o CEP do cliente aparece na lista antes de confirmar o pedido:
async function dentroZonaEntrega(cepLoja, cepCliente, raioMetros = 2000) {
// Remove formatação
const cepLimpo = cepLoja.replace(/D/g, '');
const response = await fetch(
'https://api.nextapi.com.br/v1/ceps/geo/' + cepLimpo + '?raioMetro=' + raioMetros,
{ headers: { Authorization: 'Bearer ' + process.env.NEXTAPI_TOKEN } }
);
const data = await response.json();
const cepClienteLimpo = cepCliente.replace(/D/g, '').replace(/(d{5})(d{3})/, '$1-$2');
return data.items.some(item => item.cep === cepClienteLimpo);
}
// Uso
const aceita = await dentroZonaEntrega('01310100', '01311-100');
console.log(aceita ? 'Entrega disponível' : 'Fora da área de cobertura');
Casos de uso
- Delivery: checar se o CEP do cliente está dentro da área de cobertura do restaurante antes de confirmar o pedido.
- Logística: listar os CEPs atendidos por um centro de distribuição e usá-los para rotear pedidos para a transportadora correta.
- Imobiliárias e marketplaces: encontrar anúncios próximos a um ponto de interesse sem precisar integrar Google Maps.
- Field service: ao receber coordenadas de um técnico em campo, identificar qual CEP e logradouro está mais próximo para registrar a ocorrência.
Limites e paginação
Cada consulta retorna até 200 itens por página, com limite global de 2.000 registros. Para raios grandes em regiões densas (ex: 5.000 metros no centro de São Paulo), o retorno pode ter várias páginas — use page e pageSize para navegar. Os endpoints de geo estão disponíveis somente nos planos pagos.
A documentação completa está disponível em nextapi.com.br/#docs.
Pronto para integrar?
Teste a API agora mesmo sem precisar de cartão de crédito. 100 requisições/mês grátis.
Criar Conta Grátis