Brazil CVM Filings for Antitrust and Competition Research
Brazil filings antitrust competition teams covering B3 issuers need durable document IDs for memos and workpapers. apicvm delivers DFP/ITR/FRE over HTTP. It is not a portfolio, CRM, or market-data system.
The persona
Antitrust counsel and competition economists
- Pull annual DFP packs and quarterly ITR updates
- Ground narratives on FRE sections with citable UUIDs
- Automate multi-issuer archives without portal clicks
The problem
| Task | Typical filing |
|---|---|
| Market structure context | FRE |
| Financial capacity / deals | DFP / ITR |
Manual CVM portal downloads do not scale across a coverage list.
Solution flow
Watchlist → resolve → list DFP/ITR/FRE → download → cite UUID
export APICVM_URL='https://apicvm.dev'
export APICVM_KEY='apicvm_...'
curl -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/documents?ticker=ABEV3&type=DFP&year=2024&perPage=20"
Example: coverage pull
import os, requests
BASE = os.environ["APICVM_URL"]
H = {"Authorization": f"Bearer {os.environ['APICVM_KEY']}"}
tickers = ["ABEV3", "ASAI3", "MGLU3", "LREN3"]
for t in tickers:
docs = requests.get(
f"{BASE}/v1/documents",
headers=H,
params={"ticker": t, "type": "DFP", "year": 2024, "perPage": 20},
).json()["data"]
print(t, [d["id"] for d in docs[:2]])
Current limitations
- No real-time material-fact push in v1 MVP scope — re-list on a schedule
- Extraction is async via callback (Pro); downloads do not consume credits
- Empty lists can mean corpus gaps, not "issuer never filed"
Next steps
Ready to integrate?
Get an API key and start querying Brazilian CVM filings programmatically.