SSaúde Pública BR

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

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
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 MB37feefc7694bbf055f271552942c0ccbd9c1de40185002548514dcdbcc7810a9
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.

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.