# Legislação de qualquer estado ou município

> Playbook 05 · v0.1 · atualizado em 2026-08-18
> Como consultar a legislação de qualquer ente da federação — o padrão SAPL (uma API igual em centenas de câmaras), portais estaduais e o que fazer quando não há dado estruturado.
>
> Fonte: https://legisla.bsb.br/metodologia/05-qualquer-ente/
> Impressão digital: b615420a · histórico em https://legisla.bsb.br/metodologia.json
> Método aberto de projeto independente, sem vínculo com GDF
> ou CLDF. Descreve o que as normas dizem; não substitui orientação jurídica.

---
Os playbooks anteriores cobrem o Distrito Federal e a esfera federal. Este
cobre **o resto do país**: 26 estados e 5.568 municípios, cada um com sua
fonte. Não há um portal único — mas há **padrões**, e um deles resolve
centenas de casos com uma única API.

Consulte o **[catálogo de fontes](/fontes.json)** para saber a que categoria
cada ente pertence antes de começar.

## A ordem de tentativa

1. **SAPL** — se o ente usa, você tem API REST estruturada. Comece por aqui.
2. **Portal oficial** da assembleia/câmara — busca em HTML.
3. **Diário oficial** do ente — quando não há portal de legislação consolidada.
4. **Recuse** — se nenhuma fonte confiável existir, diga isso. Não recorra a
   sites não oficiais nem à sua memória.

## Padrão 1 — SAPL (Interlegis): a API que se repete

O **SAPL** é o sistema de processo legislativo mantido pelo Interlegis (Senado)
e adotado por mais de mil casas legislativas. Todas as instâncias expõem **a
mesma API REST**, sem chave. É o que torna a cobertura nacional viável: um
único contrato de API serve centenas de municípios.

### Descubra as instâncias pelo registro oficial (não adivinhe o host)

O Interlegis publica um **registro aberto** de todas as casas e serviços — o
**SIGI**:

```
GET https://sigi.interlegis.leg.br/api/servicos/?tipo_servico=SAPL&format=json&page_size=100
```

Devolve **1.163 instâncias SAPL** (verificado em 18/08/2026), cada uma com:

```json
{
  "url": "https://sapl.barracao.pr.leg.br/",
  "casa_legislativa": {
    "nome": "Câmara Municipal de Barracão", "sigla": "CMB",
    "cnpj": "02.021.151/0001-51", "municipio": "Barracão", "uf": "PR"
  },
  "hospedagem_interlegis": true,
  "data_ativacao": "..."
}
```

Filtros úteis: `uf=PR`, `search=<termo>`, `page=N`, `page_size` (máx. 100).
Outros recursos do SIGI: `/api/casas/orgaoatendido/` (3.113 casas legislativas
com endereço e todos os serviços) e `/api/servicos/resumoprodutos/` (contagem
por produto).

Documentação: <https://sigi.interlegis.leg.br/api/> (Swagger).

Padrão de host, para conferência (o prefixo `sapl.` é obrigatório na prática):

```
https://sapl.<municipio>.<uf>.leg.br/          (câmaras municipais)
https://sapl.al.<uf>.leg.br/                   (assembleias estaduais)
```

O domínio `.leg.br` é controlado pelo Interlegis — se o host responde, é
oficial.

**O registro subnotifica.** Foram encontradas assembleias vivas que não constam
no SIGI (PB, RR, TO). Use o SIGI como semente e confirme o host direto quando
o ente procurado não estiver na lista.

Listar normas:

```
GET https://sapl.<ente>.<uf>.leg.br/api/norma/normajuridica/?format=json&page=1
```

Resposta:

```json
{
  "pagination": { "total_entries": 7415, "total_pages": 742, "page": 1,
                  "links": { "next": "...?format=json&page=2" } },
  "results": [{
    "id": 13408, "numero": "36", "ano": 2026,
    "esfera_federacao": "M",
    "data": "2026-08-17", "data_publicacao": "2026-08-14",
    "ementa": "...",
    "texto_integral": "https://.../media/sapl/public/normajuridica/2026/13408/....pdf"
  }]
}
```

Campos que importam:

| Campo | Uso |
|---|---|
| `esfera_federacao` | `M` municipal · `E` estadual · `F` federal — confirme a esfera antes de citar |
| `texto_integral` | URL do PDF oficial, sem autenticação — é a fonte a citar |
| `ementa` | resumo oficial; use para triar antes de baixar o PDF |
| `data_publicacao` | a data que importa para vigência |

Filtros **testados e funcionando**:

| Parâmetro | Efeito |
|---|---|
| `page_size=100` | 100 resultados por página (padrão: 10) — reduz muito o número de requisições |
| `page=N` | paginação |
| `ano=2024` | filtra por ano |
| `ano__gte=2023` | ano a partir de |
| `data__gte=2020-01-01` / `data__lte=` | intervalo de datas |
| `numero=N` | número da norma (combine com `ano`) |
| `esfera_federacao=M` | M municipal · E estadual · F federal |
| `ementa__icontains=agua` | busca na ementa (**sem** normalizar acento) |

Não funcionam (ignorados silenciosamente): `limit`, `search`,
`data_inicial`/`data_final`. Use os da tabela.

O payload também traz `data_ultima_atualizacao`, útil para sincronização
incremental.

### Limites honestos desta cobertura

Diga isso ao usuário quando a busca não achar o que ele espera:

- **~31% das instâncias têm base vazia.** Estar no registro não significa ter
  acervo publicado.
- **As grandes capitais em geral NÃO usam SAPL** — São Paulo, Rio, Belo
  Horizonte, Porto Alegre, Curitiba e Salvador operam sistemas próprios. O SAPL
  cobre bem o interior e mal os grandes centros. Para capitais, vá ao portal
  próprio (Padrão 2).
- **Apenas 9 assembleias estaduais** usam SAPL (AC, AL, AM, MT, PB, PI, RO, RR,
  TO). Nos demais estados, use o portal da assembleia.
- O SAPL registra **o que a casa cadastrou**: acervo raso em período antigo
  significa digitalização parcial, **não** que a norma não existe.

## Padrão 2 — Portal estadual

A maioria das assembleias tem portal próprio, quase sempre **sem API**. O que
fazer:

1. Localize o sistema de legislação no site da assembleia (procure por
   "legislação", "normas", "leis estaduais").
2. Prefira a **busca por URL parametrizada** quando existir — permite chegar
   direto ao resultado.
3. Leia a página da norma e extraia: número, ano, ementa, data, situação e o
   **link permanente**.
4. Cite o link do portal oficial, nunca um agregador de terceiros.

## Padrão 3 — Diário oficial

Quando não há legislação consolidada, o diário oficial do ente é a fonte
primária do texto publicado. Limitação séria: o diário traz o texto **como
publicado**, sem consolidar alterações posteriores. Avise o usuário de que a
norma pode ter sido alterada depois.

## LexML: identidade sim, descoberta não

O LexML **resolve URNs estaduais** — mas há duas armadilhas que derrubam quem
tenta usá-lo como buscador:

1. **Use o resolvedor certo.** `lexml.gov.br/urn/<urn>` resolve estadual;
   `normas.leg.br` é **federal apenas** (devolve 200 com a página federal).
2. **A data tem que ser exata.** A URN inclui a data de promulgação. Com data
   chutada, a resposta é 200 com *"urn não encontrada"* e a mensagem reveladora:
   *"O documento solicitado não pôde ser encontrado, embora a urn informada
   possa ser válida"*. Ou seja: **não dá para montar a URN só com tipo, número
   e ano** — é preciso descobrir a data na fonte do ente primeiro.

Verificado:
`lexml.gov.br/urn/urn:lex:br;minas.gerais:estadual:lei:2018-03-28;23000`
→ 200, "Lei nº 23000, de 28 de março de 2018 (Estadual - Minas Gerais)".

Padrão: `urn:lex:br;<localidade.com.pontos>:estadual:<tipo>:<AAAA-MM-DD>;<numero>`

**O fluxo correto é:** descobrir na fonte do ente (API/portal) → extrair a data
exata → montar a URN → usar o LexML como **identificador estável e link de
verificação**.

A **busca SRU do LexML continua bloqueada** por anti-bot do Senado — não serve
como via de descoberta.

## O que NÃO usar como fonte
- **Agregadores comerciais** de legislação municipal: úteis para achar, mas a
  citação deve apontar para a fonte oficial do ente.
- **Sua memória**. Número de lei municipal é exatamente o tipo de dado que um
  modelo alucina com confiança. Sem fonte aberta na hora, recuse.

## Reconhecer a esfera correta

Antes de responder, confirme **de quem é a competência** — citar lei municipal
para uma questão de competência estadual é erro grave:

| Assunto típico | Competência usual |
|---|---|
| Uso do solo, zoneamento, IPTU, transporte urbano | Municipal |
| ICMS, IPVA, polícia civil/militar, educação básica (rede estadual) | Estadual |
| Direito penal, civil, trabalhista, normas gerais | Federal |
| Saúde, educação, meio ambiente, consumidor | **Concorrente** — pode haver norma nas três esferas |

Em competência concorrente, a União edita normas **gerais** e os entes
suplementam. A resposta completa muitas vezes precisa das duas camadas.

## Citar

Inclua sempre a esfera e o ente:

> (Art. 12 — Lei **municipal** nº 16.050/2014, São Paulo/SP)
> Fonte: <link do portal oficial ou PDF do SAPL>

Aplicam-se integralmente as regras do
[Playbook 03](/metodologia/03-regras-de-citacao/).

---

## Histórico de versões

- **v0.1** (2026-08-18) — Publicação inicial: o padrão SAPL via registro do SIGI, portais estaduais e o resolvedor de URN do LexML.
