Base URL: https://legis.senado.leg.br/dadosabertos
Swagger: https://legis.senado.leg.br/dadosabertos/api-docs/swagger-ui/index.html
No authentication required.
Format: append .json or .xml to endpoint paths.
GET /senador/lista/atual.json # all senators currently in office
GET /senador/afastados.json # senators on leave
GET /senador/lista/legislatura/{leg}.json # by legislature number (e.g. 57)
GET /senador/partidos.json # party list
GET /senador/{codigo}.json # full senator profile
GET /senador/{codigo}/mandatos.json # mandate history
GET /senador/{codigo}/filiacoes.json # party affiliations
GET /senador/{codigo}/cargos.json # positions held
GET /senador/{codigo}/comissoes.json # committee memberships
GET /senador/{codigo}/liderancas.json # leadership roles
GET /senador/{codigo}/discursos.json # speeches
?dataInicio=YYYYMMDD&dataFim=YYYYMMDD&tipoPronunciamento=
GET /senador/{codigo}/apartes.json # interjections
GET /senador/{codigo}/autorias.json # authored bills
GET /senador/{codigo}/relatorias.json # reports authored
GET /senador/{codigo}/votacoes.json # voting history
GET /senador/{codigo}/profissao.json # professional background
GET /senador/{codigo}/historicoAcademico.json
GET /senador/{codigo}/licencas.json # leave periods
GET /materia/pesquisa/lista.json
?sigla=PL # type: PL, PEC, PLS, MSF, INC, etc.
?numero=123
?ano=2026
?autor= # author name
?assunto= # subject/keyword
?tramitando=S # S=currently in progress
?codigoSituacao=
GET /materia/{codigo}.json # by internal code
GET /materia/{sigla}/{numero}/{ano}.json # e.g. /materia/PL/1234/2026.json
GET /materia/situacaoatual/{codigo}.json # current status
GET /materia/votacoes/{codigo}.json # votes on this bill
GET /materia/textos/{codigo}.json # bill texts
GET /materia/emendas/{codigo}.json # amendments
GET /materia/relatorias/{codigo}.json # rapporteurs
GET /materia/autoria/{codigo}.json # authorship
GET /materia/movimentacoes/{codigo}.json # full tramitação history
GET /materia/tramitando.json # all currently in progress
GET /materia/legislaturaatual.json # current legislature bills
GET /materia/atualizadas.json # recently updated
?numdias=7 # last N days
GET /plenario/agenda/dia/{data}.json # e.g. /plenario/agenda/dia/20260304.json
GET /plenario/agenda/mes/{data}.json # e.g. /plenario/agenda/mes/202603.json
GET /plenario/agenda/cn/{data}.json # Congresso Nacional joint session agenda
GET /plenario/agenda/atual/iCal # iCal feed agenda atual
GET /plenario/resultado/{data}.json # plenary results for a date (YYYYMMDD)
GET /plenario/resultado/mes/{data}.json # monthly results (YYYYMM)
GET /plenario/resultado/cn/{data}.json # resultado sessão CN (YYYYMMDD)
GET /plenario/resultado/veto/{codigo}.json # resultado de veto
GET /plenario/resultado/veto/materia/{codigo}.json # resultado veto sobre PL
GET /plenario/resultado/veto/dispositivo/{codigo}.json # resultado dispositivo de veto parcial
GET /plenario/lista/votacao/{dataInicio}/{dataFim}.json # votes in date range (YYYYMMDD)
GET /plenario/votacao/nominal/{ano}.json # all nominal votes in a year
GET /plenario/votacao/orientacaoBancada/{dataSessao}.json # orientação bancada por data
GET /plenario/votacao/orientacaoBancada/{dataInicio}/{dataFim}.json # orientação bancada por período
GET /plenario/lista/discursos/{dataInicio}/{dataFim}.json # speeches
GET /plenario/lista/legislaturas.json
GET /plenario/lista/tiposComparecimento.json # tipos de comparecimento
GET /plenario/legislatura/{data}.json
GET /plenario/tiposSessao.json # tipos de sessão
GET /plenario/encontro/{codigo}.json # session detail
GET /plenario/encontro/{codigo}/pauta.json # session agenda
GET /plenario/encontro/{codigo}/resultado.json
GET /plenario/encontro/{codigo}/resumo.json
GET /comissao/lista/colegiados.json # all standing committees
GET /comissao/lista/mistas.json # joint CN/Congresso committees
GET /comissao/lista/{tipo}.json # by type
GET /comissao/lista/tiposColegiado.json # tipos de colegiado
GET /comissao/{codigo}.json # committee detail
GET /comissao/agenda/{dataReferencia}.json # YYYYMMDD
GET /comissao/agenda/{dataInicio}/{dataFim}.json
GET /comissao/agenda/mes/{mesReferencia}.json # YYYYMM
GET /comissao/agenda/atual/iCal # iCal feed
GET /comissao/reuniao/{codigoReuniao}.json
GET /comissao/reuniao/notas/{codigoReuniao}.json
GET /comissao/reuniao/{sigla}/documento/{tipoDocumento}.json # doc da última reunião
GET /composicao/comissao/{codigo}.json # membership
GET /composicao/comissao/atual/mista/{codigo}.json # composição atual comissão mista
GET /composicao/comissao/resumida/mista/{codigo}/{dataInicio}/{dataFim}.json
GET /comissao/cpi/{comissao}/requerimentos.json # Requerimentos de CPI
?pagina=1&tamanho=20
GET /votacaoComissao/comissao/{siglaComissao}.json
GET /votacaoComissao/materia/{sigla}/{numero}/{ano}.json
GET /votacaoComissao/parlamentar/{codigo}.json
GET /votacao.json
?dataInicio=YYYYMMDD&dataFim=YYYYMMDD
?codigoSessao=
GET /composicao/mesaSF.json # Senate presiding board
GET /composicao/mesaCN.json # CN presiding board
GET /composicao/lideranca.json # leadership
GET /composicao/lideranca/tipos.json # tipos de lideranças
GET /composicao/lideranca/tipos-unidade.json # tipos de unidades de lideranças
GET /composicao/lista/liderancaSF.json
GET /composicao/lista/liderancaCN.json
GET /composicao/lista/cn/{tipo}.json # composição comissões CN por tipo
GET /composicao/lista/partidos.json
GET /composicao/lista/blocos.json
GET /composicao/lista/tiposCargo.json # tipos de cargo
GET /composicao/bloco/{codigo}.json
GET /autor/lista/atual.json
GET /autor/tiposAutor.json
GET /legislacao/lista.json
?tipo=&ano=&numero=
GET /legislacao/{codigo}.json
GET /legislacao/urn.json?urn={urn}
GET /taquigrafia/notas/sessao/{idSessao}.json
GET /taquigrafia/notas/reuniao/{idReuniao}.json
GET /taquigrafia/videos/sessao/{idSessao}.json
GET /taquigrafia/videos/reuniao/{idReuniao}.json
GET /discurso/texto-integral/{codigoPronunciamento}.json
GET /discurso/texto-binario/{codigoPronunciamento}.json
GET /materia/vetos/{ano}.json # Vetos de um ano (ex: 2026)
GET /materia/vetos/aposrcn.json # Vetos posteriores à RCN 1/2013 em tramitação
GET /materia/vetos/antesrcn.json # Vetos anteriores à RCN 1/2013 em tramitação
GET /materia/vetos/encerrados.json # Vetos com tramitação encerrada
GET /orcamento/lista.json # Lotes de emendas ao orçamento
GET /orcamento/oficios.json # Ofícios de apoio às emendas de orçamento
GET /orcamento/oficios/{numeroSedol}.json # Detalhes de um ofício específico
GET /processo # Pesquisa avançada (SEM sufixo .json, retorna array)
?sigla=PL # tipo
?numero=123
?ano=2026
?tramitando=S
?autor= # nome do autor
?codigoParlamentarAutor=
?termo= # palavra-chave no assunto
?dataInicioApresentacao=YYYYMMDD
?dataFimApresentacao=YYYYMMDD
?numdias= # últimos N dias
GET /processo/{id} # Processo pelo ID
GET /processo/assuntos.json # Assuntos gerais e específicos
GET /processo/documento.json # Documentos de processo
GET /processo/documento/tipos.json
GET /processo/documento/tipos-conteudo.json
GET /processo/emenda.json
GET /processo/entes.json
GET /processo/prazo.json
GET /processo/prazo/tipos.json
GET /processo/relatoria.json
GET /processo/siglas.json
GET /processo/tipos-atualizacao.json
GET /processo/tipos-autor.json
GET /processo/tipos-decisao.json
GET /processo/tipos-situacao.json
GET /materia/distribuicao/autoria.json
?siglaComissao= # por comissão
?codParlamentar= # por parlamentar
GET /materia/distribuicao/relatoria/{sigla}.json
Existem duas APIs distintas do Senado para transparência:
| API | Base URL | Foco |
|---|---|---|
| ----- | ---------- | ------ |
| Dados Abertos Legislativos | legis.senado.leg.br/dadosabertos | Atividade legislativa |
| Dados Abertos Administrativos | adm.senado.gov.br/adm-dadosabertos | CEAP, servidores, contratos |
Swagger ADM: https://adm.senado.gov.br/adm-dadosabertos/swagger-ui/index.html
Base URL: https://adm.senado.gov.br/adm-dadosabertos
GET /api/v1/senadores/despesas_ceaps/{ano} # CEAP por ano (ex: 2026) - retorna JSON
GET /api/v1/senadores/despesas_ceaps/{ano}/csv # CEAP por ano em CSV
Campos: id, tipoDocumento, ano, mes, codSenador, nomeSenador,
tipoDespesa, cpfCnpj, fornecedor, valor, ...
GET /api/v1/senadores/auxilio-moradia # Auxílio moradia por senador
GET /api/v1/senadores/auxilio-moradia/csv
?nomeParlamentarContains=
?estadoEleitoEquals=
?partidoEleitoEquals=
GET /api/v1/senadores/escritorios # Escritórios de apoio
GET /api/v1/senadores/escritorios/csv
GET /api/v1/senadores/aposentados # Senadores aposentados e remuneração
GET /api/v1/senadores/aposentados/csv
GET /api/v1/senadores/quantitativos/senadores # Quantitativo de senadores
GET /api/v1/senadores/quantitativos/senadores/csv
GET /api/v1/servidores/servidores # Lista servidores
?tipoVinculoEquals=
?situacaoEquals=
?lotacaoEquals=
?cargoEquals=
GET /api/v1/servidores/servidores/ativos # Apenas ativos
GET /api/v1/servidores/servidores/efetivos # Apenas efetivos
GET /api/v1/servidores/servidores/comissionados
GET /api/v1/servidores/servidores/inativos
GET /api/v1/servidores/servidores/{formato}/csv # Export CSV
GET /api/v1/servidores/remuneracoes/{ano}/{mes} # Remuneração mensal
GET /api/v1/servidores/remuneracoes/{ano}/{mes}/csv
Campos: sequencial, nome, mes, ano, remuneracao_basica, vantagens_pessoais,
funcao_comissionada, gratificacoes, diarias, auxilios, ...
GET /api/v1/servidores/horas-extras/{ano}/{mes} # Horas extras
GET /api/v1/servidores/horas-extras/{ano}/{mes}/csv
GET /api/v1/servidores/estagiarios # Estagiários
GET /api/v1/servidores/pensionistas # Pensionistas
GET /api/v1/servidores/pensionistas/remuneracoes/{ano}/{mes}
GET /api/v1/servidores/lotacoes # Lotações
GET /api/v1/servidores/cargos # Cargos
GET /api/v1/servidores/previsao-aposentadoria # Previsão de aposentadoria
GET /api/v1/servidores/quantitativos/pessoal # Quantitativo de pessoal
GET /api/v1/servidores/quantitativos/cargos-funcoes
GET /api/v1/supridos/{ano} # Lista de supridos do ano
GET /api/v1/supridos/{ano}/csv
GET /api/v1/supridos/atosConcessao/{ano} # Atos de concessão
GET /api/v1/supridos/empenhos/{ano} # Empenhos
GET /api/v1/supridos/movimentacoes/{ano} # Movimentações
GET /api/v1/supridos/transacoes/{ano} # Transações
GET /api/v1/contratacoes/contratos # Contratos
?statusContratoParam=
?nomeFornecedorContains=
?cnpjCpfEquals=
?numeroContains=
?anoEquals=
?objetoDescricaoContains=
GET /api/v1/contratacoes/contratos/{id}/aditivos
GET /api/v1/contratacoes/contratos/{id}/pagamentos
GET /api/v1/contratacoes/licitacoes # Licitações
?numeroEquals=
?objetoContains=
GET /api/v1/contratacoes/licitacoes/{id}/detalhamentos
GET /api/v1/contratacoes/notas_empenho # Notas de empenho
GET /api/v1/contratacoes/atas_registro_preco # Atas de registro de preço
GET /api/v1/contratacoes/empresas # Empresas fornecedoras
GET /api/v1/contratacoes/terceirizados # Terceirizados
GET /api/v1/contratacoes/{tipoContratacao}/{id}/itens
GET /api/v1/contratacoes/{tipoContratacao}/{id}/garantias
# Todos aceitam sufixo /csv para export
curl "https://adm.senado.gov.br/ergon-ng-reports/api/v1/diretores-e-coordenadores"
# Retorna: diretores, coordenadores, setores, telefones e e-mails do SF
curl "https://adm.senado.gov.br/adm-dadosabertos/api/v1/senadores/despesas_ceaps/2026" | \
python3 -c "
import json, sys
despesas = json.load(sys.stdin)
# Filtrar por senador
for d in despesas:
if 'MARCOS PONTES' in d.get('nomeSenador', ''):
print(f\"{d['mes']:02d}/{d['ano']} | {d['tipoDespesa'][:40]} | R$ {d.get('valor', 0)}\")
"
/api/v1/senadores/despesas_ceaps/{ano} (ADM)/api/v1/senadores/auxilio-moradia (ADM)/api/v1/senadores/escritorios (ADM)/api/v1/servidores/remuneracoes/{ano}/{mes} (ADM)/api/v1/supridos/{ano} (ADM)/api/v1/contratacoes/contratos (ADM)/orcamento/lista.json (LEGIS)/senador/{cod}/...)DATE=$(date +%Y%m%d)
curl "https://legis.senado.leg.br/dadosabertos/plenario/agenda/dia/$DATE.json"
curl "https://legis.senado.leg.br/dadosabertos/senador/lista/atual.json" | \
python3 -c "
import json,sys
data = json.load(sys.stdin)
senators = data['ListaParlamentarEmExercicio']['Parlamentares']['Parlamentar']
for s in senators:
name = s['IdentificacaoParlamentar']['NomeParlamentar']
if 'Pontes' in name:
print(json.dumps(s, ensure_ascii=False, indent=2))
"
curl "https://legis.senado.leg.br/dadosabertos/materia/pesquisa/lista.json?sigla=PL&ano=2026&tramitando=S&assunto=transporte"
START=$(date -d '7 days ago' +%Y%m%d)
END=$(date +%Y%m%d)
curl "https://legis.senado.leg.br/dadosabertos/plenario/lista/votacao/$START/$END.json"
MONTH=$(date +%Y%m)
curl "https://legis.senado.leg.br/dadosabertos/comissao/agenda/mes/$MONTH.json"
# By sigla/number/year:
curl "https://legis.senado.leg.br/dadosabertos/materia/movimentacoes/{codigo}.json"
YYYYMMDD; senator speeches use YYYYMMDD; materia pesquisa uses YYYY/senador/lista/atual.json/materia/pesquisa/lista.json results/materia/{sigla}/{numero}/{ano} is deprecated since 2025; prefer /processo or /materia/pesquisa/lista/comissao/agenda/atual/iCalreferences/api-endpoints.mdisinstance(x, list) else [x] if x else []data["ListaParlamentarEmExercicio"]["Parlamentares"]["Parlamentar"]). The Python client's _get_list() uses DFS to find the first list.YYYYMMDD; some senator endpoints also use YYYYMMDD; matéria pesquisa uses just YYYY for year filters./processo/{codigo}.json returns richer data (autuações, situações, tramitação completa) than /materia/{codigo}.json. Prefer processo for detailed status tracking./materia/{sigla}/{numero}/{ano} is deprecated since 2025. Use /materia/pesquisa/lista.json with params instead./composicao/comissao/{codigo}: requires a valid committee code from /comissao/lista/colegiados — passing 1 returns 400./plenario/agenda/mes/{data} and /plenario/resultado/mes/{data}: require format YYYYMM and must correspond to months with actual sessions; past months without sessions may return 400./votacao.json: requires codigoSessao parameter (not a date range) to return results. Use /plenario/lista/votacao/{inicio}/{fim} for date-based queries.https://adm.senado.gov.br/adm-dadosabertos (separate from legis). No .json suffix needed. Returns arrays directly./processo (no .json suffix) returns a raw JSON array, not a nested object. Params accept 20+ filters including dataInicioApresentacao, termo, codigoParlamentarAutor.You can use the async Python client for programmatic access:
import asyncio
from senado_client import get_senado_client
async def main():
client = get_senado_client()
# Listar senadores atuais
senators = await client.lista_senadores_atuais()
# Buscar por nome
resultado = await client.buscar_senador_por_nome("Bolsonaro")
# Pesquisar matérias
materias = await client.pesquisar_materia(sigla="PL", ano=2026)
# Votações da semana
from datetime import date, timedelta
votacoes = await client.get_votacoes_periodo(
date.today() - timedelta(days=7),
date.today()
)
await client.close()
asyncio.run(main())
Requires: pip install httpx
Senadores:
lista_senadores_atuais() — Senadores em exercíciobuscar_senador_por_nome(nome) — Busca por nomeget_senador_detalhe(codigo) — Detalhes completosget_autorias_senador(codigo) — Matérias de autoriaget_discursos_senador(codigo, data_inicio?, data_fim?) — Discursosget_senador_votacoes(codigo) — Histórico de votaçõesget_senador_comissoes(codigo) — Comissõesget_senador_mandatos(codigo) — Mandatosget_senador_filiacoes(codigo) — Filiações partidáriasget_senador_cargos(codigo) — Cargos exercidosget_senador_liderancas(codigo) — Liderançasget_senador_apartes(codigo) — Apartes/intervençõesget_senador_relatorias(codigo) — Relatoriasget_senador_profissao(codigo) — Profissãoget_senador_historico_academico(codigo) — Histórico acadêmicoget_senador_licencas(codigo) — LicençasMatérias/Proposições:
pesquisar_materia(sigla?, numero?, ano?, tramitando?) — Pesquisapesquisar_materia_por_assunto(assunto, tramitando?) — Por assuntoget_materia_detalhe(codigo) — Detalhesget_materia_movimentacoes(codigo) — Movimentaçõesget_materia_tramitacao(codigo) — Tramitaçãoget_materia_por_sigla(sigla, numero, ano) — Por sigla completaget_materia_situacao_atual(codigo) — Situação atualget_materia_textos(codigo) — Textosget_materia_emendas(codigo) — Emendasget_materia_relatorias(codigo) — Relatoriasget_materia_autoria(codigo) — Autoriaget_materias_tramitando() — Em tramitaçãoget_materias_atualizadas(dias?) — Atualizadas recentementePlenário:
get_agenda_plenario_dia(data?) — Agenda diáriaget_agenda_plenario_mes(ano, mes) — Agenda mensalget_votacoes_periodo(data_inicio, data_fim) — Votações em períodoget_resultado_plenario_dia(data) — Resultado do diaget_resultado_plenario_mes(ano, mes) — Resultado do mêsget_votacoes_nominais_ano(ano) — Votações nominaisget_discursos_plenario(data_inicio, data_fim) — Discursosget_encontro_plenario(codigo) — Detalhes de sessãoget_encontro_pauta(codigo) — Pauta de sessãoComissões:
get_lista_comissoes() — Lista de comissõesget_agenda_comissao_dia(data?) — Agenda do diaget_agenda_comissao_periodo(data_inicio, data_fim) — Agenda de períodoget_comissao_detalhe(codigo) — Detalhesget_comissao_reuniao(codigo_reuniao) — Reuniãoget_composicao_comissao(codigo) — Membrosget_lista_comissoes_mistas() — Comissões mistasVotação em Comissões:
get_votacao_comissao(sigla_comissao) — Votaçõesget_votacao_comissao_materia(sigla, numero, ano) — Por matériaget_votacao_comissao_parlamentar(codigo) — Por parlamentarComposição e Lideranças:
get_mesa_senado() — Mesa diretora do Senadoget_mesa_congresso() — Mesa do CNget_liderancas() — Lideranças partidáriasget_blocos_parlamentares() — Blocos parlamentaresProcesso:
get_processo(codigo) — Processo legislativo completoAutores, Legislação, Discurso:
get_autores_atuais() — Autores atuaispesquisar_legislacao(tipo?, ano?, numero?) — Pesquisa legislaçãoget_discurso_texto_integral(codigo_pronunciamento) — Texto integralVetos Presidenciais:
get_vetos_ano(ano) — Vetos de um anoget_vetos_apos_rcn() — Vetos pós-RCN 1/2013 em tramitaçãoget_vetos_antes_rcn() — Vetos pré-RCN 1/2013get_vetos_encerrados() — Vetos encerradosOrientação de Bancada:
get_orientacao_bancada_data(data) — Orientação por dataget_orientacao_bancada_periodo(data_inicio, data_fim) — Por períodoResultado Plenário CN e Vetos:
get_resultado_plenario_cn(data) — Resultado sessão CNget_resultado_veto(codigo) — Resultado voto de vetoget_resultado_veto_materia(codigo) — Resultado veto sobre PLOrçamento/Emendas:
get_orcamento_lotes_emendas() — Lotes de emendasget_orcamento_oficios() — Ofícios de emendasget_orcamento_oficio(numero_sedol) — Ofício específicoCPI:
get_cpi_requerimentos(comissao, pagina?, tamanho?) — Requerimentos de CPIProcesso Legislativo (API Avançada):
pesquisar_processos(sigla?, numero?, ano?, tramitando?, autor?, assunto?, data_inicio_apresentacao?, data_fim_apresentacao?) — Pesquisa avançadaDistribuição:
get_distribuicao_autoria_comissao(sigla_comissao?, cod_parlamentar?) — Distribuição de autoriaget_distribuicao_relatoria_comissao(sigla) — Distribuição de relatoriaget_materia_lista_tramitacao(sigla?, comissao?) — Total em tramitaçãoComposição Mista:
get_composicao_comissao_mista_atual(codigo) — Composição atual de comissão mistaUtilitários:
get_materias_recentes(dias?) — Matérias recentesget_votacoes_semana() — Votações da semanaget_agenda_semana() — Agenda da semanafrom senado_client import get_senado_adm_client
async def main():
adm = get_senado_adm_client()
# CEAP do ano
ceap = await adm.get_ceap(2026)
# CEAP de um senador específico
ceap_pontes = await adm.get_ceap_senador("Marcos Pontes", 2026)
# Remuneração de servidores
remuneracao = await adm.get_remuneracao_servidores(2026, 1)
# Contratos
contratos = await adm.get_contratos(objeto="limpeza")
await adm.close()
SenadoAdmClient)Senadores — CEAP e Benefícios:
get_ceap(ano) — Todas as despesas CEAP do anoget_ceap_senador(nome, ano) — CEAP filtrado por nome do senadorget_auxilio_moradia(nome?, estado?, partido?) — Auxílio moradia / imóvel funcionalget_escritorios_apoio() — Escritórios de apoio (endereço/telefone)get_senadores_aposentados() — Senadores aposentados e remuneraçãoServidores:
get_servidores(tipo_vinculo?, situacao?, lotacao?) — Lista com filtrosget_servidores_ativos() — Ativosget_servidores_comissionados() — Comissionadosget_remuneracao_servidores(ano, mes) — Remuneração mensalget_horas_extras(ano, mes) — Horas extrasget_estagiarios() — Estagiáriosget_pensionistas() — Pensionistasget_remuneracao_pensionistas(ano, mes) — Remuneração de pensionistasSupridos (Cartão Corporativo):
get_supridos(ano) — Supridos do anoget_supridos_transacoes(ano) — Transaçõesget_supridos_movimentacoes(ano) — Movimentaçõesget_supridos_empenhos(ano) — EmpenhosContratações:
get_contratos(fornecedor?, cnpj?, ano?, objeto?) — Contratosget_licitacoes(numero?, objeto?) — Licitaçõesget_notas_empenho(fornecedor?, ano?) — Notas de empenhoget_empresas_fornecedoras(nome?, cnpj?) — Empresas cadastradasget_terceirizados() — Terceirizados共 3 个版本