import requests
resp = requests.get("https://cep.databanx.com.br/ws/01001000/json", timeout=5)
endereco = resp.json()
if resp.status_code != 200or endereco.get("erro"):
# 400 formato inválido · 404 não encontrado · 429/503 tente mais tarderaise ValueError(endereco.get("mensagem", "CEP não encontrado"))
print(endereco["logradouro"], endereco["localidade"], endereco["uf"])
Campos da resposta
Todos os campos são strings. Campos sem informação vêm como
"".
Campo
Descrição
Exemplo
cep
CEP formatado com hífen.
01001-000
logradouro
Tipo e nome do logradouro. Vazio em CEP único de cidade.
Praça da Sé
complemento
Trecho ou lado do logradouro coberto pelo CEP.
lado ímpar
unidade
Nome do grande usuário ou da unidade dos Correios, quando o CEP é exclusivo.
""
bairro
Bairro.
Sé
localidade
Município.
São Paulo
uf
Sigla da unidade federativa.
SP
estado
Nome da unidade federativa.
São Paulo
regiao
Região geográfica.
Sudeste
ibge
Código IBGE do município, 7 dígitos.
3550308
gia
Sempre vazio. Mantido só por compatibilidade com o ViaCEP.
""
ddd
DDD telefônico da localidade.
11
siafi
Código SIAFI do município (Tesouro Nacional).
7107
O campo gia (Guia de Informação e Apuração do ICMS, SP) não consta na base
dos Correios e por isso vem sempre vazio.
Município de um CEP
Para quem só precisa do código IBGE, inclusive quando o CEP digitado não é
de um endereço, como o "CEP geral" de uma cidade que tem CEP por rua.
GEThttps://cep.databanx.com.br/ws/{cep}/municipio
Resposta
cep, localidade, uf, estado,
regiao, ibge, ddd, siafi e
origem.
origem
"cep" quando o CEP é um endereço; "faixa" quando só a faixa de
CEPs do município o contém. Ex.: 46100-000 → Brumado/BA, IBGE
2904605, "faixa".
Não encontrado
404 {"erro": true} quando o CEP não está na faixa de nenhum município.
A rota /json continua respondendo 404 para CEPs que não são
endereços, como o ViaCEP.
Códigos de status
"erro": true marca CEP inválido ou inexistente. Falhas
temporárias (429 e 503) trazem só "mensagem": trate-as pelo status HTTP.