CVM Dados Abertos CSV Dumps vs Per-Filing API
Official dados abertos publishes large CSV/ZIP packages. Developers searching for a CVM CSV dump API often mean: “I have tables — how do I also get the PDF for one company?” That is the gap between bulk ETL and a per-filing product API like apicvm.
This page focuses on the CSV/ZIP workflow specifically (complementing the broader open data vs API comparison).
The CSV / ZIP workflow
Typical research ETL:
- Download a yearly ZIP from dados.cvm.gov.br
- Unzip dozens of CSVs
- Join company codes to tickers
- Filter rows for your universe
- Separately hunt PDFs if you need the filing narrative
This shines for cross-sectional panels and academic reproducibility.
Friction for application code
| CSV/ZIP strength | Application friction |
|---|---|
| Millions of rows offline | Slow path to “one PDF now” |
| Free, official | Schema and file layout drift |
| Great for Spark/dbt | Weak as a request/response API |
| Full-history batches | Poor fit for agent tool calls |
If your feature is GET filing(ticker, type, year), CSV dumps force you to build that API yourself.
Per-filing API workflow (apicvm)
export APICVM_KEY='apicvm_...'
export APICVM_URL='https://apicvm.dev'
curl -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/companies/resolve?query=ABEV3&by=ticker"
curl -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/documents?ticker=ABEV3&type=DFP&year=2024&perPage=20"
Then GET /v1/documents/:id/file for the PDF, or enqueue text extraction when you need markdown pages.
When to use each
| Prefer CSV/ZIP dumps | Prefer per-filing API |
|---|---|
| Universe-wide econometrics | Single-issuer product paths |
| You already run batch ETL | Agents / microservices |
| Tabular line items only | Original PDF + citations |
| Zero API cost required | Stable document UUIDs |
Hybrid is common: CSV for panels, apicvm for document retrieval and extraction.
Current limitations
- apicvm covers ingested DFP/ITR/FRE, not every open-data dataset.
- Dumps may include series apicvm does not expose (funds, etc.).
- Neither path is “real-time CVM” by default.
Next steps
Ready to integrate?
Get an API key and start querying Brazilian CVM filings programmatically.