Brazil Regulatory Data API for Quant and Policy Research
Policy analysts and quant researchers working on Brazilian markets need a Brazil regulatory data API — not anecdotal news, but primary CVM documents with reproducible retrieval. Whether you study disclosure quality, governance changes, or sector risk narratives, the source of truth is what companies filed with the regulator.
apicvm provides programmatic access to issuer filings (DFP, ITR, FRE) so research can be cited, replicated, and automated.
The persona
- Academic researchers studying corporate disclosure in Brazil
- Policy teams tracking governance and risk reporting across sectors
- Quant funds adding regulatory text features alongside market data
- Journalists and analysts who need auditable document links
The problem
Regulatory research fails when document access is manual:
| Pain point | Research impact |
|---|---|
| Portal downloads | Cannot reproduce results six months later |
| Unstructured PDFs | Hard to diff year-over-year FRE risk sections |
| No ticker API | Joining CNPJ tables wastes researcher time |
| Missing provenance | Citations point to "a PDF on my laptop" |
You need stable identifiers (document.id), typed filters (DFP / ITR / FRE), and downloadable originals.
Research workflows with apicvm
Financial disclosure studies (DFP / ITR)
export APICVM_KEY='apicvm_...'
export APICVM_URL='https://apicvm.dev'
curl -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/documents?ticker=PETR4&type=DFP&year=2023&perPage=20"
curl -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/documents?ticker=PETR4&type=DFP&year=2024&perPage=20"
Download both years, parse or extract text, diff sections. apicvm gives you the same GET /v1/documents/:id/file path for every issuer in the corpus.
Governance and risk studies (FRE)
FRE is the primary source for risk factors, board structure, and related-party transactions:
curl -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/documents?ticker=WEGE3&type=FRE&year=2024&perPage=50"
FRE returns many files per year — filter by name for risk or governance sections. For NLP pipelines, enqueue extraction and build a corpus. See FRE filing type and Build a RAG pipeline.
Cross-sector panels
import os, requests
BASE = os.environ["APICVM_URL"]
H = {"Authorization": f"Bearer {os.environ['APICVM_KEY']}"}
SECTOR_TICKERS = ["PETR4", "VALE3", "WEGE3"] # example panel
for ticker in SECTOR_TICKERS:
docs = requests.get(
f"{BASE}/v1/documents",
headers=H,
params={"ticker": ticker, "type": "FRE", "year": 2024, "perPage": 10},
).json()
print(ticker, "FRE 2024 files:", docs["meta"]["total"])
Use meta.total for coverage checks before running analysis.
Reproducibility checklist
- Record
document.id,type,year,dateRef, and download timestamp - Store raw PDFs in versioned storage keyed by
document.id - Document apicvm API version (
/v1) in research appendix - Note corpus limitation — availability depends on ingestion, not live CVM mirrors
Complementary data sources
- CVM open data — bulk historical panels; see CVM Open Data vs apicvm
- Market data — prices and volumes (apicvm does not provide these)
- US comparisons — SEC EDGAR for cross-listed studies; see Brazil CVM vs SEC EDGAR
Current limitations
- Coverage is the ingested corpus — verify tickers and years before publishing research.
- No material facts (Fato Relevante) or IPE in MVP — event studies may need other sources.
- Portuguese originals — translation is your responsibility.
- Async text extraction — no synchronous full-document text endpoint.
Next steps
Ready to integrate?
Get an API key and start querying Brazilian CVM filings programmatically.