SSaúde em Dado

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.

🔌 Consulte por IA (MCP). Conecte o Claude Desktop/Code e pergunte a saúde do Brasil em linguagem natural — 15 ferramentas, camada de confiabilidade do dado e detector de anomalias, com regras anti-alucinação (todo número vem com fonte). Roda na sua máquina, custo zero. Guia de instalação →

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

TabelaGranularidadeLinhas
mart_mortalidade_municipiomunicípio × ano (2015–2024) × capítulo CID-10 × sexo; taxa bruta + IC95% + taxa padronizada por idade~1,3 mi
mart_mortalidade_uf_mesUF × mês (2015–2024) × capítulo × sexo × faixa etária~400 mil
mart_mortalidade_causaUF × ano (2015–2024) × causa básica (CID-10, 3 caracteres)~200 mil
mart_excesso_uf_mesexcesso de mortalidade: observado × esperado por UF/BR × mês (2020+)~1,7 mil
mart_dengue_semanadengue (SINAN): casos prováveis, graves e óbitos por município × ano × semana epidemiológicacentenas de mil
mart_dengue_municipio_anodengue anual por município: casos, incidência /100k e letalidadedezenas de mil
mart_internacoes_municipiointernações SUS (SIH): volume, permanência média, mortalidade hospitalar e custo, por município × ano × capítulo CID-10centenas de mil
mart_natalidade_municipionascidos vivos (SINASC): peso ao nascer, prematuridade, pré-natal, idade da mãe, por município × ano~11 mil
mart_mortalidade_infantil_ufTaxa 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/Ruim5.595
dim_ivsvulnerabilidade social municipal (proxy Censo 2022: analfabetismo + água; z-score)5.570
dim_cluster_municipioarquétipos de saúde por k-means (mortalidade × vulnerabilidade × internações, 2023)~1,7 mil
mart_icsap_municipiointernações evitáveis (ICSAP) por município, 2024: total, ICSAP, % e por 100k hab.~5,5 mil
mart_fluxo_intermunicipalfluxo de pacientes residência→atendimento (SIH 2024, fluxos ≥ 5)dezenas de mil
mart_internacoes_agravointernações por agravo traçador (CID-3) por município, 2024: volume, permanência, mortalidade, custo~53 mil
mart_internacoes_hospitalinternações por estabelecimento (CNES), 2024: volume, permanência, mortalidade, custo, capítulo principal~4,7 mil
dim_municipiomunicípios IBGE (códigos 6/7 dígitos, UF, região)5.571
dim_populacaopopulação municipal por ano (2015–2024)~56 mil
dim_pop_faixapopulação municipal por faixa etária (Censo 2022)~44,6 mil
dim_pop_padraopopulação padrão da padronização (Brasil, Censo 2022)8
dim_cid10_capitulo / dim_cid10_categoriacapítulos e descrições das categorias CID-1022 / ~2 mil
meta_datasetmetadados: 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.

ArquivoTamanhoSHA-256
mart_mortalidade_municipio.parquet14,2 MB748310975375de33d289cb72a54c7d52d63a7118af8df2b2a7477f0bc97c3071
mart_mortalidade_uf_mes.parquet1,6 MB3958450095820478e582ee30fae57be1c49e6c9f91e174865e00bd0ed9f06db3
mart_mortalidade_causa.parquet0,7 MBc51f2c553810eaf92d996aa52fb7b436da2a80a971526d060c7beacc341fa4ad
mart_excesso_uf_mes.parquet0,04 MB3954a0838a18a96394002ff07c9ad3428697312d11356a4c572c8edd262b0c5f
mart_dengue_semana.parquet1,1 MB4e9eb4d9a87efc8ded2f3d692252b24d59091ca62ae4f29c1163b996d78d113f
mart_dengue_municipio_ano.parquet0,3 MB1bf5f4d31d395428219b065ea80d68fa138cd8476d3dda1b9734ddfbedb40fcb
mart_internacoes_municipio.parquet6,0 MB09d129d5bbe344f1e3fc12ed9ee9413035e7600b0e1dd9ce6dbdb868857c56d3
mart_icsap_municipio.parquet0,2 MB90b65857b3717e1479310ff68a1f717bbbb91fef8c3aae55599e45c97ebd2efd
mart_fluxo_intermunicipal.parquet0,3 MB233d3ec76916fd9efb73fafe2dbeb33419816d032e5c8dfcc2e4dd54fd313b29
mart_internacoes_agravo.parquet1,2 MB8690e2df0586337a34f66fe493b7c443ee4e931d4d8fcef8aeabf4719baafe35
mart_internacoes_hospital.parquet0,2 MB31e39b7793d5e811f784a9da3578ea7fecd3e8d51c862e2da0b3ab0b2158c58c
mart_natalidade_municipio.parquet0,2 MBd6f064c2230322368bdf11553b89c9439b86240a2bf223f309ee82a0d25f5294
mart_mortalidade_infantil_uf.parquet0,01 MB73665f2f9cce2adec1a0431ff67c7ee1ec5a92412baca1ac838bdeb8b7d40732
mart_qualidade_registro_municipio.parquet0,13 MB32f0827acaa90887753557b469eff65af254ae2313944d6e9391ff031214c0ee
dim_ivs.parquet0,12 MB76f386873403eb7aad4d1099eceb05169a737f80083f57d1ba45ecec774517d2
dim_cluster_municipio.parquet0,05 MBf02e5be4fd3efccefb18cd671742f1ab5090c22a6d44bed21179caa2ea081646
dim_municipio.parquet0,09 MBa7f3f66aad10ef9bd99f6d1f0dc919f9017dcc3ae7e55de9da65344790e2d7e4
dim_populacao.parquet0,29 MBc88335c58dc4e45c46a91512d749cc6f40d00d4659cdcb289921a54467c0456d
dim_pop_faixa.parquet0,13 MBa7aaa140fd70bfea6f18c77ec5ebdeb25a26bd26437ca8289b355ba3e05c3b0a
dim_pop_padrao.parquet0,01 MBbee34904f471812432ac2d047ed56a4eed5a88d905a28a55c24c02fb0153aebc
dim_cid10_categoria.parquet0,04 MB3202eca9d645ae8bdb6ba98aa4dda940a1e878fc267bb6d6a711629fcc4ebf3f
# 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:

BaseSistemaCoberturaObservação
MortalidadeSIM2015–20242024 preliminar
InternaçõesSIH/AIH2022–20242024 preliminar; só rede SUS
DengueSINAN2015–20242024 em classificação
NascimentosSINASC2021–20232024 não liberado pelo MS
Vulnerabilidade / populaçãoIBGE Censo 2022 + estimativas2022 (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.