Brazil Equity Research with CVM Filings API

Equity analysts — buy-side, sell-side, and independent — building models and research notes on B3-listed companies need a Brazil equity research API for regulatory filings, not another price feed. apicvm resolves issuers and delivers DFP, ITR, and FRE documents programmatically: the source PDFs behind footnotes, quarterly updates, and risk disclosures.

Pair apicvm with a quotes provider for prices. apicvm covers the CVM document layer only.

The persona

Typical users:

  • Equity research analysts drafting initiation notes and earnings updates
  • Independent research shops covering Brazil alongside US EDGAR workflows
  • Research engineers wiring LLM-assisted note generation with cited sources

You already have prices from Brapi, brokers, or Bloomberg terminals. The gap is programmatic access to CVM PDFs — annual DFP footnotes, quarterly ITR, FRE strategy and risk sections.

The problem

The CVM portal is manual and Portuguese-heavy for international desks. Open-data bulk files are awkward for "fetch SUZB3 DFP 2024 financial statements, then latest ITR." Scrapers break. Multi-market APIs may bundle Brazil with data you do not need.

Equity research workflows need:

  1. DFP — audited statements, footnotes, segment notes for model inputs
  2. ITR — quarterly results between annual cycles
  3. FRE — business description, capex plans, risk factors for thesis work

Solution: research infrastructure flow

Ticker universe
  → GET /v1/companies/resolve
  → GET /v1/documents?type=DFP|ITR|FRE
  → GET /v1/documents/:id/file — original PDF for citation
  → optional POST /v1/document-text-extractions — page markdown for LLM notes

List DFP for model building

export APICVM_KEY='apicvm_...'
export APICVM_URL='https://apicvm.dev'

curl -H "Authorization: Bearer $APICVM_KEY" \
  "$APICVM_URL/v1/documents?ticker=SUZB3&type=DFP&year=2024&perPage=20"

Pull latest quarterly ITR

curl -H "Authorization: Bearer $APICVM_KEY" \
  "$APICVM_URL/v1/documents?ticker=SUZB3&type=ITR&year=2025&perPage=10"

FRE sections for investment thesis

curl -H "Authorization: Bearer $APICVM_KEY" \
  "$APICVM_URL/v1/documents?ticker=PRIO3&type=FRE&year=2024&name=Risco&perPage=20"

Use document prefixes to discover FRE section names. See What is FRE for structure context.

Python: sector panel — DFP index

Compare annual filings across energy peers:

import os, requests

BASE = os.environ["APICVM_URL"]
H = {"Authorization": f"Bearer {os.environ['APICVM_KEY']}"}
PEERS = ["PRIO3", "PETR4", "SUZB3"]

for ticker in PEERS:
    r = requests.get(
        f"{BASE}/v1/documents",
        headers=H,
        params={"ticker": ticker, "type": "DFP", "year": 2024, "perPage": 10},
    )
    r.raise_for_status()
    docs = r.json()["data"]
    print(f"{ticker}: {len(docs)} DFP 2024 docs")
    if docs:
        print(f"  latest: {docs[0]['dateRef']} — {docs[0]['name']}")

For footnote extraction workflows, see Extract CVM financial footnotes from DFP.

Quotes vs filings — complementary stack

Layer Source apicvm?
Stock prices, volumes, dividends Brapi, Yahoo, broker feeds No
DFP / ITR / FRE regulatory PDFs apicvm Yes
Consensus estimates, ratings Terminal / data vendors No

Read Stock quotes APIs vs CVM filings for positioning. Quant teams building fundamental panels should also see Brazil filings quant pipelines.

What apicvm does not provide

  • Not stock quotes or price history
  • Not consensus EPS or analyst ratings
  • Not a Bloomberg or Economatica replacement — regulatory filings only
  • Not real-time earnings release access — corpus follows ingestion, not live portal

Current limitations

  • Corpus counts reflect ingested data, not the full live CVM portal.
  • Text extraction is async, Pro-only, and costs credits (1 per page).
  • Large FRE files may require paginated extraction callbacks.
  • Material facts (IPE) are outside MVP scope.

Next steps

Ready to integrate?

Get an API key and start querying Brazilian CVM filings programmatically.