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 |
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 | 37feefc7694bbf055f271552942c0ccbd9c1de40185002548514dcdbcc7810a9 |
| 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.
Licença e citação
Dados originais em domínio público (DATASUS/Ministério da Saúde e IBGE). Agregações e código sob licença MIT. Em publicações, cite as fontes primárias (SIM/DataSUS; IBGE) e, se desejar, esta plataforma.