Brazil CVM Filings for Due Diligence
M&A analysts, legal teams, and corporate finance professionals conducting Brazil filings due diligence on B3-listed targets need the same CVM PDFs a human reviewer would open — at scale, with stable document IDs. apicvm provides programmatic access to DFP, ITR, and FRE for that evidence layer. It is a data access API, not a due diligence platform or legal advisor.
The persona
Typical users:
- M&A / corp dev — screen acquisition targets for litigation, contingencies, and governance red flags
- Legal / compliance — archive original filings with citation-ready metadata
- Investment professionals — compare risk disclosures across a short list before deeper work
The job is document retrieval and search, not pass/fail legal conclusions.
The problem
Brazilian due diligence on public issuers pulls from multiple CVM filing types:
- FRE — risk factors, legal contingencies, related parties, governance
- DFP — annual audited financials and footnotes
- ITR — quarterly updates between annual cycles
The CVM portal works for one company and one section. A deal screen across five tickers becomes a folder of inconsistently named PDFs with no API id to refresh next quarter. Bulk open-data dumps lack a clean "give me this FRE contingencies section" call.
Solution: due diligence flow
Target ticker(s)
→ GET /v1/companies/resolve — confirm issuer (name, CNPJ)
→ GET /v1/documents — FRE for risks/governance; DFP/ITR for financials
→ GET /v1/documents/:id/file — store original PDF for audit trail
→ optional POST /v1/document-text-extractions — searchable text (Pro plan)
Step 1 — Resolve the target
export APICVM_KEY='apicvm_...'
export APICVM_URL='https://apicvm.dev'
curl -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/companies/resolve?query=VALE3&by=ticker"
Step 2 — List FRE for risk and contingency sections
curl -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/documents?ticker=VALE3&type=FRE&year=2024&name=Conting&perPage=20"
Use name filters or document prefixes to narrow FRE sections. See Analyze Brazil FRE governance and risks for section-level patterns.
Step 3 — Pull financial statements
curl -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/documents?ticker=VALE3&type=DFP&year=2024&perPage=20"
curl -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/documents?ticker=VALE3&type=ITR&year=2025&perPage=10"
Step 4 — Download the audit file
curl -OJ -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/documents/<document-id>/file"
Downloads do not consume extraction credits.
Python: multi-ticker FRE screen
Screen a short list for litigation and contingency mentions before deeper review:
import os, requests
BASE = os.environ["APICVM_URL"]
H = {"Authorization": f"Bearer {os.environ['APICVM_KEY']}"}
TARGETS = ["PETR4", "VALE3", "PRIO3"]
for ticker in TARGETS:
company = requests.get(
f"{BASE}/v1/companies/resolve",
headers=H,
params={"query": ticker, "by": "ticker"},
).json()
fre = requests.get(
f"{BASE}/v1/documents",
headers=H,
params={"ticker": ticker, "type": "FRE", "year": 2024, "name": "Conting", "perPage": 20},
).json()
print(f"{ticker} — {company.get('name', '?')}: {len(fre['data'])} FRE contingency docs")
for doc in fre["data"][:3]:
print(f" {doc['id']}: {doc['name']}")
For searchable text across long FRE files, enqueue async extraction with a callback URL. Extraction requires a Pro plan and consumes credits per page.
What apicvm does not provide
- Not legal advice — apicvm delivers documents; interpretation is your team's responsibility.
- Not real-time material facts — IPE / fatos relevantes are outside MVP scope; see IPE.
- Not private company registry — public issuers only.
- Not market prices or news — regulatory filings, not trading data.
- Not a complete due diligence platform — no workflow engine, scoring, or policy rules.
Current limitations
- Corpus coverage lags the live CVM portal — not every category on the portal is filterable via API.
- Text extraction is async via callback; not instant full-text search.
- Extraction costs credits (1 per page) on Pro; Student plan cannot extract.
- Not all CVM document types are ingested — CAD, FCA, and others are educational-only today.
Next steps
Ready to integrate?
Get an API key and start querying Brazilian CVM filings programmatically.