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:
- DFP — audited statements, footnotes, segment notes for model inputs
- ITR — quarterly results between annual cycles
- 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.