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.