Brazil CVM Filings for Law Firm Research
Litigation, capital-markets, and M&A counsel often need Brazil filings law firm source packs: FRE risk factors, contingencies, related parties, and audited DFP packages. apicvm returns those documents over HTTP with stable IDs for matter folders. It is not a legal research database or opinion tool.
The persona
- Associates assembling public-company disclosure packs
- Diligence teams reviewing FRE contingencies beside data-room files
- Knowledge teams that archive PDFs with reproducible URLs
The problem
| Legal question | Typical CVM source |
|---|---|
| Disclosed proceedings / contingencies | FRE sections (name= filters) |
| Related-party and governance context | FRE |
| Audited financial statements | DFP |
| Recent quarterly updates | ITR |
Hand-clicking the CVM portal for every opposing party or target does not leave an audit trail.
Solution flow
Party tickers / CNPJs
→ GET /v1/companies/resolve
→ GET /v1/documents (FRE + name filters; DFP/ITR as needed)
→ GET /v1/documents/:id/file → matter DMS
→ optional POST /v1/document-text-extractions for full-text search
export APICVM_KEY='apicvm_...'
export APICVM_URL='https://apicvm.dev'
curl -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/documents?ticker=VALE3&type=FRE&year=2024&name=Risco&perPage=20"
Section filtering patterns: FRE risk factors via section filter.
Matter pack checklist
- Resolve by ticker or CNPJ
- Archive latest FRE (and prior year if the dispute spans periods)
- Pull DFP for the fiscal years at issue
- Store
document.idin the matter index — not only filenames
For deal-side framing, see M&A research and due diligence.
Example: contingency-oriented FRE pull
import os, requests
BASE = os.environ["APICVM_URL"]
H = {"Authorization": f"Bearer {os.environ['APICVM_KEY']}"}
docs = requests.get(
f"{BASE}/v1/documents",
headers=H,
params={
"ticker": "PETR4",
"type": "FRE",
"year": 2024,
"name": "Conting",
"perPage": 20,
},
timeout=30,
).json()["data"]
for d in docs:
print(d["id"], d["name"])
name is a substring filter on section/document names — refine iteratively; do not assume a single Portuguese label covers every issuer.
Current limitations
- apicvm does not interpret Brazilian law or summarize claims.
- Coverage is the ingested corpus, not a guarantee of every portal filing.
- Extraction is async via callback; plan DMS ingest accordingly.
Next steps
Ready to integrate?
Get an API key and start querying Brazilian CVM filings programmatically.