CVM Open Data vs apicvm API: When to Use Each
Brazil's securities regulator publishes free datasets through the CVM open data portal (dados.cvm.gov.br). Developers also look for a CVM open data API that works like EDGAR or a modern fintech API. In practice, official open data and product APIs solve different problems.
This page compares CVM open data with apicvm — without dismissing either — so you can pick the right tool for your pipeline.
What CVM open data provides
The official portal publishes bulk datasets:
- CSV/ZIP downloads — company registries, financial statements, fund data
- Periodic updates — refreshed on CVM's schedule
- Free access — no API key required for public datasets
- Academic scale — suitable for cross-sectional studies across many companies
Researchers and data engineers often start here for historical panels and econometric work.
Limitations for product workflows
Open data is powerful for batch analysis but awkward for application development:
| Gap | Impact |
|---|---|
| No ticker-first REST API | You join CSVs to map tickers → CNPJ → filings |
| Bulk orientation | Fetching one company's latest DFP means finding the right ZIP slice |
| No single-file download | PDFs are not served as GET /documents/:id/file |
| No text extraction | You parse PDFs yourself or build OCR pipelines |
| Schema drift | Portal layout and file names change; ETL breaks |
If you are building an agent, SaaS feature, or microservice that answers "get PETR4's 2024 DFP", open data alone means significant glue code.
What apicvm adds
apicvm is a product API over the same underlying CVM corpus (ingested via Hold):
GET /v1/companies/resolve?query=PETR4&by=ticker
GET /v1/documents?ticker=PETR4&type=DFP&year=2024
GET /v1/documents/:id/file
POST /v1/document-text-extractions
| Capability | apicvm |
|---|---|
| Resolve by ticker, CNPJ, or name | Yes |
| Filter filings by type, year, date | Yes |
| Download original PDF | Yes |
| Async page-level markdown extraction | Yes (via callback) |
| API key auth + rate limits | Yes |
Trade-off: apicvm covers the ingested corpus, not necessarily every dataset on the open data portal. It is optimized for B3 public company filings (DFP, ITR, FRE), not every CVM dataset category.
When to use each
| Scenario | Best choice |
|---|---|
| PhD thesis on 500 companies × 10 years | CVM open data bulk CSV |
| One-time historical panel import | CVM open data |
| Agent tool: "fetch PETR4 latest DFP" | apicvm |
| Production microservice with ticker queries | apicvm |
| RAG pipeline needing page markdown | apicvm |
| Need every CVM dataset type (funds, penalties, etc.) | CVM open data (apicvm focuses on issuer filings) |
| Zero budget, batch-only | CVM open data |
| $9/month API with support for dev workflows | apicvm |
Many teams use both: open data for historical research, apicvm for production lookups and agent tools.
Example: same task, two paths
Task: Get Petrobras annual financial filings for 2024.
CVM open data path:
- Download relevant ZIP/CSV from dados.cvm.gov.br
- Filter by CNPJ
33000167000101 - Locate PDF references in metadata
- Download and parse files manually
apicvm path:
curl -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/documents?ticker=PETR4&type=DFP&year=2024&perPage=20"
# pick document.id → download or extract
How apicvm relates to scraping
Some developers scrape the CVM website instead of using open data. Scraping is fragile (HTML changes, rate blocks) and lacks structured metadata. apicvm replaces scraping for the common case — programmatic access to known filing types — with a versioned /v1 contract.
Current limitations
- apicvm is not a mirror of the entire CVM open data catalog.
- Paid API ($9/month) with rate limits — open data remains free.
- Corpus sync depends on ingestion — not real-time CVM publication.
- For US filings, use SEC EDGAR — apicvm is Brazil-only. See Brazil CVM vs SEC EDGAR.
Next steps
Ready to integrate?
Get an API key and start querying Brazilian CVM filings programmatically.