---
title: "Screener"
method: GET
path: "/screener"
---

# Screener

`GET /screener`

## Request

- Base URL: `https://dadosb3.com` (the document declares no server; this is the origin it was published from)
- URL: `https://dadosb3.com/screener`
- Auth: none declared

Filtra empresas por faixas de indicadores. Cada indicador aceita
`<nome>_min` e/ou `<nome>_max` (ex.: ?roic_min=0.15&dl_ebitda_max=2).
Sem `ano`, usa o último ano com dados de cada empresa. Só considera
valores SEM flag (número que passou limpo pela bateria). Requer chave
(é sobre todo o universo); parâmetros inválidos são recusados, não
ignorados.

P/L: `pl_min`/`pl_max` (anual, da DFP) e `pl_ttm_min`/`pl_ttm_max` (12
meses, do ITR ou DFP mais recente). Com `as_of`, vale o documento mais
recente já recebido na data (e com preço já negociado nela); sem `as_of`, o
mais recente. P/L de lucro zero/negativo (flag `pl_negativo`), acima de 200
(`pl_extremo`) ou nulo nunca passa. Cada linha traz `multiplos` com
`dt_receb` e `data_preco` do valor usado.

`rigor` (só para P/L): `padrao` aceita o P/L com ajuste já feito ou ressalva
leve (listada em `multiplos.<pl>.ressalvas`) e recusa ressalva impeditiva e
flag desconhecida; `estrito` só aceita P/L sem nenhuma flag. Com filtro de
P/L a resposta traz `fora_do_filtro`: quantas companhias ficaram de fora e
por quê, com `resumo` em português simples.

## Query parameters

- `ano` integer, nullable
- `as_of` string, nullable
- `limite` integer
- `recibo` boolean
- `rigor` string

## Headers

- `x-api-key` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/dadosb3/apis/dados-b3.md) · [All operations](https://skmtc.dev/dadosb3/apis/dados-b3/llms.txt) · [OpenAPI document](https://skmtc.dev/dadosb3/apis/dados-b3/revisions/42d0dc587552?raw)
