Brazil CVM Filings for Academic Research
Labs and graduate courses need reproducible Brazil filings academic inputs — primary CVM documents with stable IDs, not screenshots from the portal. apicvm provides resolve → list → download (and optional async extract on Pro). It is not a pre-built panel dataset for every listed firm.
The persona
- PhD / MSc students building Brazil disclosure samples
- Faculty labs that need citable document UUIDs in replication packages
- Methods courses teaching HTTP access to regulatory filings
The problem
| Academic need | Why portal downloads hurt |
|---|---|
| Replication | Filenames alone are hard to cite years later |
| Cohort builds | Manual clicks do not scale across tickers/years |
| Teaching | Students need a single auth pattern, not scrapers |
CVM is Brazil's securities regulator. If your lab already uses SEC EDGAR programmatically, apicvm offers a similar workflow shape for Brazilian filings — without claiming official EDGAR equivalence.
Solution flow
Study ticker × year matrix
→ GET /v1/companies/resolve
→ GET /v1/documents (filters)
→ persist id + meta in your research DB
→ GET /v1/documents/:id/file (on demand)
export APICVM_KEY='apicvm_...'
export APICVM_URL='https://apicvm.dev'
curl -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/documents?ticker=BRFS3&type=DFP&year=2024&perPage=20"
Company landing: BRFS3 CVM filings.
Teaching sketch (Python)
import os, csv, requests
BASE = os.environ["APICVM_URL"]
H = {"Authorization": f"Bearer {os.environ['APICVM_KEY']}"}
SAMPLE = ["PETR4", "VALE3", "BRFS3"]
with open("dfp_ids.csv", "w", newline="") as f:
w = csv.writer(f)
w.writerow(["ticker", "document_id", "name", "year"])
for t in SAMPLE:
data = requests.get(
f"{BASE}/v1/documents",
headers=H,
params={"ticker": t, "type": "DFP", "year": 2024, "perPage": 20},
timeout=30,
).json()["data"]
for d in data:
w.writerow([t, d["id"], d["name"], d.get("year")])
Store UUIDs in the replication package; re-download files when reviewers ask.
Plans that matter for labs
| Need | Note |
|---|---|
| List + download PDFs | Available on paid keys with rate limits |
| Page-level markdown extract | Pro credits; Student returns 403 for extract |
| Full-market panel | Only companies in the ingested corpus — not "all Brazilian issuers" |
Quant-style pipelines: Brazil filings for quant research. Policy angle: Regulatory data research.
Current limitations
- Ingestion lag — not real-time with the CVM portal.
perPagemax 50; paginate for large pulls.- Extraction is async via HTTPS callback (no sync extract endpoint).
- Do not publish API keys in student repos; use env vars / secrets.
Next steps
Ready to integrate?
Get an API key and start querying Brazilian CVM filings programmatically.