Dados B3 Fiis API
The Fiis API from Dados B3 — 7 operation(s) for fiis.
The Fiis API from Dados B3 — 7 operation(s) for fiis.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/dadosb3-com:dadosb3-com-fiis-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Dados B3 Fiis API
description: 'Dados fundamentalistas de companhias abertas brasileiras com metodologia 100% pública e invariantes de dado publicados. Fontes: CVM (dados abertos, ODbL) e B3 (COTAHIST fim-de-dia). Todo número carrega a conta CVM de origem; valor duvidoso carrega flag, nunca estimativa escondida.'
version: 0.1.0
tags:
- name: Fiis
paths:
/fiis/{ticker}/dividendos:
get:
summary: Fii Dividendos
description: 'Assistentes de IA pedem /fiis/KNRI11/dividendos (a das ações existe). Os rendimentos do fundo já estão na seção
`#rendimentos` da página do fundo, com a tabela e o aviso de que a B3 entrega só o último ano: uma segunda página com
a mesma tabela seria duplicata. 301 para ela (19/10/2026); fundo que não existe segue 404.'
operationId: fii_dividendos_fiis__ticker__dividendos_get
parameters:
- name: ticker
in: path
required: true
schema:
type: string
title: Ticker
- name: lang
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Lang
- name: accept-language
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Accept-Language
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Fiis
/fiis/{ticker}/reapresentacoes:
get:
summary: Pagina Reapresentacoes Fii
description: '"O fundo já reapresentou informe? Em que competências?" — a versão
vigente de cada informe reenviado e, quando o build viu o reenvio, o antes
e depois campo a campo. ABERTA. Ver dados_b3/pagina_reapresentacoes_fii.py.'
operationId: pagina_reapresentacoes_fii_fiis__ticker__reapresentacoes_get
parameters:
- name: ticker
in: path
required: true
schema:
type: string
title: Ticker
- name: lang
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Lang
- name: accept-language
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Accept-Language
responses:
'200':
description: Successful Response
content:
text/html:
schema:
type: string
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Fiis
/fiis:
get:
summary: Fiis Hub
description: 'Hub dos FIIs: fundos mais descontados (menor P/VP), maiores pagadores
(DY 12m) e a mediana por segmento. Tudo ponto-no-tempo e auditável, do
informe mensal da CVM + COTAHIST. Não é recomendação.
★ JSON PELA MESMA URL, REGRA DA CHAVE (16/09/2026). O conector público
consome o ranking por HTTP; o ranking de FII exige chave no MCP interno
(`fiis_ranking`), então aqui é o mesmo: com chave, ou com `Accept:
application/json` explícito, devolve o dicionário da ferramenta — e sem
chave válida devolve 401 em JSON com `como_resolver`, nunca a página.'
operationId: fiis_hub_fiis_get
parameters:
- name: lang
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Lang
- name: accept-language
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Accept-Language
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
text/html:
schema:
type: string
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Fiis
/fiis/screener:
get:
summary: Fiis Screener
description: 'Filtra FIIs por faixas de P/VP e DY 12m. Params (todos opcionais):
`pvp_min`/`pvp_max`, `dy_min`/`dy_max` (frações, ex.: dy_min=0.10 = 10%),
`segmento` (casa exato, sem caixa, no segmento CVM), `cotistas_min` (piso de
liquidez; padrão 5000), `limite` (padrão 50, teto 200). Requer chave (é sobre
todo o universo). Só entra número LIMPO: um P/VP ou DY com flag não é tratado
como valor filtrável — o fundo simplesmente não casa o filtro daquele campo.
Parâmetros inválidos são recusados, não ignorados. Não é recomendação.'
operationId: fiis_screener_fiis_screener_get
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Fiis
/fiis/{ticker}/precos:
get:
summary: Fii Precos
description: 'Série DIÁRIA de um FII: abertura, máxima, mínima, fechamento, volume, negócios e quantidade (COTAHIST), sem
ajuste, com os saltos de preço sinalizados em `saltos_sem_explicacao`. `formato=csv`.'
operationId: fii_precos_fiis__ticker__precos_get
parameters:
- name: ticker
in: path
required: true
schema:
type: string
title: Ticker
- name: de
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: De
- name: ate
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Ate
- name: formato
in: query
required: false
schema:
type: string
default: json
title: Formato
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Fiis
/fiis/{ticker}/desempenho:
get:
summary: Fii Desempenho
description: 'Desempenho de um FII num período em poucos números (retorno, drawdown máximo, volatilidade; comprar e manter e
cruzamento de médias 21×100), calculado aqui. ABERTO, sem chave. Só preço: os rendimentos NÃO entram. Se o
preço tiver salto diário acima de 35% (desdobramento/grupamento que não registramos), vem `confiavel: false`.'
operationId: fii_desempenho_fiis__ticker__desempenho_get
parameters:
- name: ticker
in: path
required: true
schema:
type: string
title: Ticker
- name: de
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: De
- name: ate
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Ate
- name: media_curta
in: query
required: false
schema:
type: integer
default: 21
title: Media Curta
- name: media_longa
in: query
required: false
schema:
type: integer
default: 100
title: Media Longa
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Fiis
/fiis/{ticker}:
get:
summary: Fii Detalhe
description: 'Um FII, em dois formatos pela MESMA URL.
Sem chave, o padrão é a PÁGINA. Quem manda chave (ou pede
`application/json` explicitamente) recebe o JSON de sempre; o FII de
degustação (MXRF11) continua aberto também no JSON.
★ A REGRA É A CHAVE, NÃO O ACCEPT — e isto é conserto de um defeito que eu
mesmo introduzi horas antes (04/09/2026). A primeira versão desta rota
negociava por `_quer_html`, que exige `text/html` EXPLÍCITO:
Googlebot (manda text/html) -> 200, a página
Accept: */* -> 401 401
Medido em produção. O Search Console recusou a solicitação de indexação
desta URL, e o motivo estava aqui. A página existe para ser LIDA por
buscador e por IA, e eu a servi só para quem já sabia o formato de bater —
exatamente a porta que ela vinha derrubar.
É a QUARTA vez nesta família: o /mcp respondendo 406 no navegador, o
/auditoria sem placa no llms.txt, o /reapresentacoes com `*/*`, e agora
esta. A lição já estava escrita no I-N19 e eu repeti o erro assim mesmo:
quem manda chave quer o feed (integração existente não pode quebrar), e
quem não manda não tem acesso ao JSON de qualquer jeito — servir 401 em
vez da página só esconde conteúdo público.'
operationId: fii_detalhe_fiis__ticker__get
parameters:
- name: ticker
in: path
required: true
schema:
type: string
title: Ticker
- name: lang
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Lang
- name: accept-language
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Accept-Language
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Fiis
components:
schemas:
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
securitySchemes:
ChaveApiNaUrl:
type: apiKey
in: query
name: chave
description: Alternativa ao cabeçalho para clientes que só abrem URL (navegação de IA). Fica no histórico e nos logs de quem a usa.
ChaveApi:
type: apiKey
in: header
name: X-API-Key
description: 'Chave grátis (200 consultas/dia) ou Pro em /assinar. Abertos sem chave (limite por IP): fatos, indicadores, múltiplos e dividendos de qualquer ticker, ficha e ranking de FII. WEGE3, MXRF11, /hoje, /saude e a metodologia são abertos. Exigem chave: as_of, versões, preços, screener, /dump.'