Dados & API
Toda a base é acessível por uma API REST pública e gratuita (PostgREST), sem cadastro. A chave abaixo é pública por design e dá acesso somente leitura.
Acesso rápido
BASE="https://zekjhmxjamatlxpkykde.supabase.co/rest/v1"
KEY="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inpla2pobXhqYW1hdGx4cGt5a2RlIiwicm9sZSI6ImFub24iLCJpYXQiOjE3ODEwNzY4MzIsImV4cCI6MjA5NjY1MjgzMn0.px8FcU0QK8w9v95kwGlGzASKpY3drsxAvFe0e6wUoCU"
# Série mensal de óbitos no Brasil (todas as causas)
curl "$BASE/mart_mortalidade_uf_mes?select=mes_competencia,uf_sigla,obitos&capitulo_cid=eq.TOTAL&sexo=eq.TOTAL&faixa_etaria=eq.TOTAL&order=mes_competencia" \
-H "apikey: $KEY"
# Municípios de MG com maior taxa em 2023 (pop >= 50 mil)
curl "$BASE/mart_mortalidade_municipio?uf_sigla=eq.MG&ano=eq.2023&capitulo_cid=eq.TOTAL&sexo=eq.TOTAL&populacao=gte.50000&order=taxa_obitos_100k.desc&limit=20" \
-H "apikey: $KEY"
# Soma de óbitos por causa (agregação no servidor)
curl "$BASE/mart_mortalidade_causa?select=causabas_3,obitos.sum()&ano=eq.2024&uf_sigla=eq.SP&order=causabas_3" \
-H "apikey: $KEY"Filtros seguem a sintaxe do PostgREST (eq., gte., neq., order=, limit=, select=). Respostas são paginadas em até 1.000 linhas — use o cabeçalho Range com ordenação determinística para obter conjuntos maiores.
Tabelas disponíveis
| Tabela | Granularidade | Linhas |
|---|---|---|
mart_mortalidade_municipio | município × ano (2015–2024) × capítulo CID-10 × sexo; taxa bruta + IC95% + taxa padronizada por idade | ~1,3 mi |
mart_mortalidade_uf_mes | UF × mês (2015–2024) × capítulo × sexo × faixa etária | ~400 mil |
mart_mortalidade_causa | UF × ano (2015–2024) × causa básica (CID-10, 3 caracteres) | ~200 mil |
mart_excesso_uf_mes | excesso de mortalidade: observado × esperado por UF/BR × mês (2020+) | ~1,7 mil |
mart_dengue_semana | dengue (SINAN): casos prováveis, graves e óbitos por município × ano × semana epidemiológica | centenas de mil |
mart_dengue_municipio_ano | dengue anual por município: casos, incidência /100k e letalidade | dezenas de mil |
mart_internacoes_municipio | internações SUS (SIH): volume, permanência média, mortalidade hospitalar e custo, por município × ano × capítulo CID-10 | centenas de mil |
mart_natalidade_municipio | nascidos vivos (SINASC): peso ao nascer, prematuridade, pré-natal, idade da mãe, por município × ano | ~11 mil |
mart_mortalidade_infantil_uf | Taxa de Mortalidade Infantil por UF e ano (óbitos <1 ano ÷ nascidos vivos) | 54 |
mart_qualidade_registro_municipio | índice de confiabilidade do registro de óbitos por município (% causas mal-definidas, 2022–2024) com classificação Bom/Regular/Ruim | 5.595 |
dim_ivs | vulnerabilidade social municipal (proxy Censo 2022: analfabetismo + água; z-score) | 5.570 |
dim_cluster_municipio | arquétipos de saúde por k-means (mortalidade × vulnerabilidade × internações, 2023) | ~1,7 mil |
mart_icsap_municipio | internações evitáveis (ICSAP) por município, 2024: total, ICSAP, % e por 100k hab. | ~5,5 mil |
mart_fluxo_intermunicipal | fluxo de pacientes residência→atendimento (SIH 2024, fluxos ≥ 5) | dezenas de mil |
mart_internacoes_agravo | internações por agravo traçador (CID-3) por município, 2024: volume, permanência, mortalidade, custo | ~53 mil |
mart_internacoes_hospital | internações por estabelecimento (CNES), 2024: volume, permanência, mortalidade, custo, capítulo principal | ~4,7 mil |
dim_municipio | municípios IBGE (códigos 6/7 dígitos, UF, região) | 5.571 |
dim_populacao | população municipal por ano (2015–2024) | ~56 mil |
dim_pop_faixa | população municipal por faixa etária (Censo 2022) | ~44,6 mil |
dim_pop_padrao | população padrão da padronização (Brasil, Censo 2022) | 8 |
dim_cid10_capitulo / dim_cid10_categoria | capítulos e descrições das categorias CID-10 | 22 / ~2 mil |
meta_dataset | metadados: fontes, métodos, datas, exclusões, licença, versão | — |
Importante: linhas com capitulo_cid='TOTAL', sexo='TOTAL' ou faixa_etaria='TOTAL' são subtotais pré-calculados. Filtre-os explicitamente para evitar dupla contagem.
Uso em Python e R
# Python
import requests, pandas as pd
r = requests.get(
"https://zekjhmxjamatlxpkykde.supabase.co/rest/v1/mart_mortalidade_causa",
params={"ano": "eq.2024", "uf_sigla": "eq.SP", "order": "obitos.desc", "limit": "100"},
headers={"apikey": "<KEY>"},
)
df = pd.DataFrame(r.json())
# R
library(httr2); library(dplyr)
resp <- request("https://zekjhmxjamatlxpkykde.supabase.co/rest/v1/mart_mortalidade_causa") |>
req_url_query(ano = "eq.2024", uf_sigla = "eq.SP", order = "obitos.desc", limit = "100") |>
req_headers(apikey = "<KEY>") |> req_perform()
df <- resp |> resp_body_json(simplifyVector = TRUE)Repositório de dados (download em lote)
A base completa está disponível em Parquet — ideal para DuckDB, pandas, Arrow ou R. O repositório é somente leitura e cada arquivo tem hash SHA-256 publicado para verificação de integridade.
| Arquivo | Tamanho | SHA-256 |
|---|---|---|
| mart_mortalidade_municipio.parquet | 14,2 MB | 748310975375de33d289cb72a54c7d52d63a7118af8df2b2a7477f0bc97c3071 |
| mart_mortalidade_uf_mes.parquet | 1,6 MB | 3958450095820478e582ee30fae57be1c49e6c9f91e174865e00bd0ed9f06db3 |
| mart_mortalidade_causa.parquet | 0,7 MB | c51f2c553810eaf92d996aa52fb7b436da2a80a971526d060c7beacc341fa4ad |
| mart_excesso_uf_mes.parquet | 0,04 MB | 3954a0838a18a96394002ff07c9ad3428697312d11356a4c572c8edd262b0c5f |
| mart_dengue_semana.parquet | 1,1 MB | 4e9eb4d9a87efc8ded2f3d692252b24d59091ca62ae4f29c1163b996d78d113f |
| mart_dengue_municipio_ano.parquet | 0,3 MB | 1bf5f4d31d395428219b065ea80d68fa138cd8476d3dda1b9734ddfbedb40fcb |
| mart_internacoes_municipio.parquet | 6,0 MB | 09d129d5bbe344f1e3fc12ed9ee9413035e7600b0e1dd9ce6dbdb868857c56d3 |
| mart_icsap_municipio.parquet | 0,2 MB | 90b65857b3717e1479310ff68a1f717bbbb91fef8c3aae55599e45c97ebd2efd |
| mart_fluxo_intermunicipal.parquet | 0,3 MB | 233d3ec76916fd9efb73fafe2dbeb33419816d032e5c8dfcc2e4dd54fd313b29 |
| mart_internacoes_agravo.parquet | 1,2 MB | 8690e2df0586337a34f66fe493b7c443ee4e931d4d8fcef8aeabf4719baafe35 |
| mart_internacoes_hospital.parquet | 0,2 MB | 31e39b7793d5e811f784a9da3578ea7fecd3e8d51c862e2da0b3ab0b2158c58c |
| mart_natalidade_municipio.parquet | 0,2 MB | d6f064c2230322368bdf11553b89c9439b86240a2bf223f309ee82a0d25f5294 |
| mart_mortalidade_infantil_uf.parquet | 0,01 MB | 73665f2f9cce2adec1a0431ff67c7ee1ec5a92412baca1ac838bdeb8b7d40732 |
| mart_qualidade_registro_municipio.parquet | 0,13 MB | 32f0827acaa90887753557b469eff65af254ae2313944d6e9391ff031214c0ee |
| dim_ivs.parquet | 0,12 MB | 76f386873403eb7aad4d1099eceb05169a737f80083f57d1ba45ecec774517d2 |
| dim_cluster_municipio.parquet | 0,05 MB | f02e5be4fd3efccefb18cd671742f1ab5090c22a6d44bed21179caa2ea081646 |
| dim_municipio.parquet | 0,09 MB | a7f3f66aad10ef9bd99f6d1f0dc919f9017dcc3ae7e55de9da65344790e2d7e4 |
| dim_populacao.parquet | 0,29 MB | c88335c58dc4e45c46a91512d749cc6f40d00d4659cdcb289921a54467c0456d |
| dim_pop_faixa.parquet | 0,13 MB | a7aaa140fd70bfea6f18c77ec5ebdeb25a26bd26437ca8289b355ba3e05c3b0a |
| dim_pop_padrao.parquet | 0,01 MB | bee34904f471812432ac2d047ed56a4eed5a88d905a28a55c24c02fb0153aebc |
| dim_cid10_categoria.parquet | 0,04 MB | 3202eca9d645ae8bdb6ba98aa4dda940a1e878fc267bb6d6a711629fcc4ebf3f |
# Verificar integridade após o download
sha256sum mart_mortalidade_municipio.parquet
# Ler direto da URL com DuckDB (sem baixar)
duckdb -c "SELECT uf_sigla, sum(obitos) FROM read_parquet('https://zekjhmxjamatlxpkykde.supabase.co/storage/v1/object/public/dados/mart_mortalidade_uf_mes.parquet') WHERE capitulo_cid='TOTAL' AND sexo='TOTAL' AND faixa_etaria='TOTAL' GROUP BY 1 ORDER BY 2 DESC"Pacote Python
Cliente oficial com paginação automática e suporte a pandas — ideal para notebooks de pesquisa:
pip install "git+https://github.com/pedropaulofernandes88-stack/saude-publica-br#subdirectory=clients/python"
import saudeemdado as sd
mg = sd.municipios(uf="MG", ano=2023, pop_min=50_000, as_df=True)
mg.nlargest(10, "taxa_padronizada_100k")Servidor MCP (pesquise via assistentes de IA)
O dataset também é acessível por assistentes de IA via Model Context Protocol: aponte o Claude Desktop/Code para mcp_server/server.py do repositório e pergunte em linguagem natural ("compare o excesso de mortalidade de SP e AM em 2021") — as respostas usam exatamente os números citáveis desta base.
Boletim municipal
Cada município tem um boletim imprimível (PDF via navegador) com série de taxas 2015–2024, IC95% e principais grupos de causas: /boletim/?m=<código IBGE 6 dígitos> — ou clique no nome do município no painel.
Vigência por base (data-fonte)
Cada sistema tem cobertura e atualidade próprias — uma análise deve sempre confrontar o ano disponível de cada base:
| Base | Sistema | Cobertura | Observação |
|---|---|---|---|
| Mortalidade | SIM | 2015–2024 | 2024 preliminar |
| Internações | SIH/AIH | 2022–2024 | 2024 preliminar; só rede SUS |
| Dengue | SINAN | 2015–2024 | 2024 em classificação |
| Nascimentos | SINASC | 2021–2023 | 2024 não liberado pelo MS |
| Vulnerabilidade / população | IBGE Censo 2022 + estimativas | 2022 (2023 interpolado) | renda municipal 2022 ainda não liberada |
Observatório de qualidade do registro
A transparência exige medir o que é incerto. Publicamos um índice de confiabilidade do registro de óbitos por município (mart_qualidade_registro_municipio), baseado na proporção de causas mal-definidas (capítulo XVIII — sintomas e sinais), indicador clássico de qualidade da informação em mortalidade (padrão RIPSA/OPAS). No agregado nacional a proporção é de 5,2% (2022–2024), mas o número esconde a desigualdade: 1.096 municípios (1 em cada 5) estão na classe Ruim (> 10%), onde a causa de morte é pouco confiável — concentrados no Norte e Nordeste.
Classificação: Bom (< 5%), Regular (5–10%), Ruim (> 10%). Não redistribuímos causas mal-definidas entre causas específicas — elas permanecem visíveis. Use as taxas causa-específicas com essa ressalva onde a confiabilidade é menor. O índice serve para direcionar busca ativa de óbitos e para ponderar comparações.
Licença e citação
Dados originais em domínio público (DATASUS/Ministério da Saúde e IBGE). Agregações e marts derivados sob CC BY 4.0 (uso livre com atribuição); código sob licença MIT. Em publicações, cite as fontes primárias (DataSUS; IBGE) e, se a agregação for usada, esta plataforma.
Como citar:
Fernandes, P. P. Saúde em Dado: inteligência epidemiológica aberta
sobre os microdados do SUS. https://saudeemdado.com
DOI: 10.5281/zenodo.20706845. Acesso em: AAAA-MM-DD.
Fontes primárias: DATASUS (SIM, SIH, SINAN, SINASC) e IBGE.DOI de conceito (todas as versões) no Zenodo: 10.5281/zenodo.20706845. O repositório traz CITATION.cff para citação automática (botão "Cite this repository" no GitHub). Cada release versiona o dataset e publica os checksums acima.