brFinance / CVM Scrapers vs apicvm API
Open-source Python projects (brFinance-style backends, community scrapers, XML helpers) make it possible to search CVM documents without a vendor. Teams comparing brFinance vs CVM API options usually want the same outcome: reliable DFP/ITR/FRE access from code.
This page compares self-hosted scrapers/libraries with apicvm as a hosted product API — trade-offs, not a ranking.
What scrapers and OSS libraries provide
Typical capabilities:
- Search CVM / Empresas.Net style document indexes
- Download filings to disk
- Sometimes parse tables from specific report HTML/XML
Strengths: free to run, full control, good for experiments and one-off research.
Where scrapers hurt product teams
| Issue | Impact |
|---|---|
| Portal / HTML drift | Parsers break without warning |
| Auth & session quirks | Fragile automation |
| No stable document UUID for your app | Hard to cache and cite |
| You operate the crawler | Proxies, retries, monitoring |
| Text extraction | Separate PDF/OCR pipeline |
OSS is excellent when you want to own that surface area. It is costly when filings are a dependency inside a SaaS feature or agent.
What apicvm provides
resolve company → list documents → download file → optional async text extraction
export APICVM_KEY='apicvm_...'
export APICVM_URL='https://apicvm.dev'
curl -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/documents?ticker=PETR4&type=DFP&year=2024&perPage=20"
| Capability | Typical scraper | apicvm |
|---|---|---|
| Ticker-first list | Varies | Yes |
Stable document.id |
Rare | Yes (UUID) |
| Original PDF download | Often | GET /v1/documents/:id/file |
| Page markdown extraction | DIY | Async callback job |
| Ops burden | Yours | Hosted |
When to use each
| Use scraper / OSS | Use apicvm |
|---|---|
| One-off notebook, full control required | Product feature or agent tool |
| You already maintain CVM ETL | You want HTTP + API key |
| Need categories outside apicvm corpus (e.g. IPE) | DFP / ITR / FRE workflow |
| Zero vendor dependency | Prefer SLA-style integration |
Many teams prototype with scrapers, then move hot paths to an API once uptime matters.
Current limitations (apicvm)
- Corpus is ingested DFP/ITR/FRE — not every scraper category.
- Extraction is async via callback; no job-status polling endpoint.
- You still handle your own rate-limit backoff.
Next steps
Ready to integrate?
Get an API key and start querying Brazilian CVM filings programmatically.