A lista de municípios de São Paulo que a maioria das pessoas não consegue encontrar direito
O IBGE mantem um arquivo CSV com todos os municípios brasileiros atualizados anualmente. O estado de São Paulo tem 645 municípios registrados. O código do estado é 35. Se você está construindo um sistema de endereços, uma ferramenta de frete, ou qualquer coisa que precise listar cidades paulistas, o caminho mais direto é baixar o arquivo direto do site do IBGE em vez de tentar montar a lista manualmente ou usar API de terceiros que muitas vezes estão desatualizadas.municípios de são paulo – onde conseguir e como lidar com dados reais
O link oficial é https://www.ibge.gov.br/estruturas-demograficas/documentos-documentos-tematicos/17295-codigos-dos-municipios-e-as-listas-dos-municipio-em-formatos-digitais.html . Lá tem o arquivo em Excel, CSV e até um shapefile se você precisar de coordenadas. A versão mais recente que uso é a de 2024, quando o IBGE atualizou os nomes de alguns municípios e ajustou limites municipais novos. O problema prático que eu encontrei foi com o município de Águas da Prata. O arquivo do IBGE traz o nome exatamente como consta na legislação estadual, mas em bases de dados comerciais de CRM e ERP, esse município às vezes aparece como "Agua da Prata" ou com acento diferente, dependendo de quando a tabela foi populada. A solução que eu adotei foi normalizar tudo para UTF-8 sem acentos e comparar pelo código IBGE em vez do nome. O código nunca muda, o nome sim. Todo município tem um ID único de 7 dígitos no padrão IBGE (ex: 3550308 para São Paulo). Quando você cruza dados por código, resolve metade dos problemas de merge que dão dor de cabeça.
Outra coisa que poucas pessoas mencionam: o código IBGE de 7 dígitos pode ser truncado para 4 dígitos quando você só precisa do código do município dentro do estado. Os dois primeiros são o estado (35), os três seguintes são a região administrativa, e os dois finais identificam o município. Para muitos sistemas internos, trabalhar apenas com os últimos cinco dígitos (ex: 50308) é suficiente e simplifica queries. Só tome cuidado ao fazer join entre bases de estados diferentes, porque aí o código perde o sentido. O formato CSV do IBGE já vem com colunas úteis: código completo, nome do município, nome do município em maiúsculas, nome em minúsculas, capital (S/N), microrregião, mesorregião. A coluna de capital é particularmente útil se você está montando uma hierarquia de regiões e precisa saber rapidamente qual cidade é sede. O arquivo também indica se o município mudou de nome no ano vigente, o que acontece ocasionalmente quando uma lei estadual altera a nomenclatura oficial.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Se você precisa de uma lista pronta para importar em SQL, eu costumo fazer o seguinte fluxo: baixo o CSV do IBGE, filtro apenas os municípios onde o código começa com 35, removo linhas duplicadas que aparecem em atualizações intermediárias, e insiro numa tabela com a estrutura (codigo_ibge INT PRIMARY KEY, nome VARCHAR, nome_upper VARCHAR, capital BOOLEAN, mesorregiao VARCHAR, microrregiao VARCHAR). Um INSERT massivo desses leva cerca de 3 segundos num banco moderno com 645 linhas. Nada para reclamar. Um aviso importante: não confie em listas de municípios de sites de e-commerce ou de ferramentas de cálculo de frete que não citam a fonte. Muitos esses sites usam tabelas próprias que estão desatualizadas desde 2018, com municípios extintos ou renomeados faltando. Eu já vi um plugin de WordPress de frete que não reconhecia o município de Emilianópolis porque a tabela dele parou em 2015. Verifique sempre a fonte dos dados.
Para quem trabalha com geolocalização e precisa das coordenadas, o shapefile do IBGE é a opção mais confiável. Ele está disponível no mesmo link citado acima, e contém a geometria de cada município. O problema é que o shapefile é pesado (cerca de 50 MB compactado) e importar camadas de 645 polígonos em SIGs amadores pode travar a interface. Se você só precisa das coordenadas do centro de cada município, o CSV já inclui as latitude e longitude médias em formato decimal. É suficiente para 90% dos casos de uso. Outra armadilha que eu vejo todo dia é a confusão entre município e região metropolitana. O IBGE divide o estado de São Paulo em 63 microregiões e 14 mesorregiões. Quando alguém pede uma lista de "cidades da Grande São Paulo", a resposta técnica depende de qual definição você adota. A RMSP tem 39 municípios segundo o IBGE, mas outras definições governamentais incluem até 41. Se o seu sistema precisa dessa distinção, recomendo consultar a Resolução do IBGE mais recente e não confiar em definições de sites turísticos.
Se você quer automatizar isso, existe um script simples em Python que baixa o CSV, filtra por estado 35, e gera um arquivo JSON pronto para uso. O processo inteiro leva menos de 10 segundos rodando localmente. Vale a pena ter esse script versionado no repositório do projeto porque o IBGE atualiza os arquivos sem aviso prévio e o formato pode mudar ligeiramente de uma anno para o outro. O link direto para o CSV mais recente com todos os municípios de São Paulo é obtido acessando a página do IBGE citada e clicando no link "Municípios com Codemos em formatos digitais". O arquivo se chama normalmente algo como `municipios_2024.zip`. Dentro dele, o arquivo CSV principal é `municipios_BR_2024.csv` ou similar. Sempre verifique a data de publicação no cabeçalho do arquivo antes de confiar nos dados.