Cidades Estados Do Brasil - O mapa detalhado do Brasil com regiões ou estados e cidades capitais ...
O mapa detalhado do Brasil com regiões ou estados e cidades capitais ...

Trabalhando com dados de cidades e estados do Brasil na prática

A gente precisa lidar com isso o tempo todo em projeto que envolva endereço, logística, cadastros. O IBGE mantém uma base atualizada, mas o problema é que ela não é tão simples quanto parece quando você vai implementar. Eu comecei a brigar com isso há alguns anos, quando montei um sistema de frete que precisava cruzar cidade e estado em tempo real. A primeira coisa que você descobre é que existem mais de 5.570 municípios no Brasil, segundo o Censo 2022 do IBGE. Desses, espalhados em 27 unidades federativas. O número muda porque criação de municípios acontece todo ano em algum lugar do país.

Dica importante sobre cidades estados do brasil para desenvolvedores

Se você está construindo algo que depende dessa base, baixe o arquivo SQL ou CSV direto do site do IBGE. O link oficial é o portal de dados abertos. Tem tabela com código do município, nome, sigla do estado, região, microrregião, mesorregião. A estrutura é razoavelmente limpa, mas tem pegadinhas. A pegadinha que eu encontrei na prática e que quase me custou um deploy errado: existem municípios com o mesmo nome em estados diferentes. Porto Feliz existe em São Paulo e em outros estados. Se você fizer um JOIN o nome da cidade sem o código do IBGE, vai ter dados errados no resultado. O workaround que eu usei foi simples — sempre fazer a validação pelo código numérico de 7 dígitos, que é único. Nunca por nome.

A estrutura de dados que eu recomendo ter no seu banco é basicamente duas tabelas. Uma de estados com código, nome e sigla. Outra de municípios com código IBGE, nome, código do estado como chave estrangeira, e talvez código DDD e código área. Isso resolve 90% dos problemas que aparecem. Outro detalhe que os iniciantes costumam perder: a base do IBGE tem entradas duplicadas em alguns formatos de exportação. Quando você baixa em Excel ou CSV às vezes vem linha duplicada porque o arquivo original agrupa por ano de referência. A solução é rodar um DISTINCT pelo código do município e manter a linha com o ano mais recente.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Se você está num projeto pequeno e não quer montar tudo do zero, tem algumas opções de pacote prontos. No Python, o pacote ibge_tools ou o rawlibs já trazem a base atualizada. Em JavaScript, tem o package no npm que pega direto da API do IBGE. No PHP, o composer tem pacotes que fazem o download automático e persistem num migrate. Escolha o que se encaixa no stack. A API do IBGE também é útil. Ela retorna JSON com os dados de todos os municípios de um estado específico. Endpoint funciona assim: pede o código do estado e responde com a lista completa. O problema é que a API tem limitação de taxa e nem sempre responde rápido. Eu configurei um cache local que atualiza a cada 24 horas e só consulto a API quando o cache expira ou quando noto atualização no site do IBGE.

Um ponto que muita gente não considera: a nomenclatura dos estados muda. Há casos raros onde o IBGE atualiza o nome oficial de um município e isso quebra integrações que dependem de string matching. A única forma segura de evitar isso é usar o código, não o nome. Para quem precisa de uma lista completa e quer baixar agora, o arquivo mais confiável é o que o IBGE disponibiliza no portal de dados abertos. Procure por "municípios" e escolha o formato que seu sistema lê melhor. O SQL costuma ser o mais direto porque já vem com estrutura de tabela pronta.

Um cenário onde a base simplesmente não funciona: quando você precisa de dados geográficos precisos, como coordenadas ou limites de bairro. A base do IBGE dá só a posição aproximada do sede municipal em latitude e longitude, e esses valores podem estar desatualizados. Se o seu projeto exige precisão de roteamento ou geocoding, use outra fonte, como OpenStreetMap ou o Google Maps Platform. Aí o custo sobe, mas a qualidade também. Resumindo o que funciona na prática: use o código IBGE, cacheie os dados localmente, trate duplicações na exportação, e não confie no nome como identificador. O resto é ajuste de integração.