Manual CVM Portal Downloads vs apicvm API

Analysts and developers often download Brazilian filings manually from the CVM portal — search company, pick document type, click PDF. It works for one-off research. It breaks down when you need repeatable CVM portal download API behavior: same query tomorrow, same result shape, callable from code or an agent.

apicvm automates the lookup and download steps. This page compares manual portal workflows with the API — without claiming manual access is always wrong.

Manual portal workflow

Typical steps on sistemas.cvm.gov.br or related CVM interfaces:

  1. Search by company name or CNPJ
  2. Navigate filing categories (DFP, ITR, FRE)
  3. Identify the correct year and document
  4. Download PDF to local disk
  5. Repeat for each company and period

Works well when:

  • You need one or two filings for ad-hoc review
  • A human verifies the correct file before analysis
  • No automation or audit trail is required

Pain points at scale:

Issue At scale
No batch mode 50 tickers × 3 types × 5 years = hundreds of clicks
Inconsistent file names Hard to organize in a data lake
No stable IDs "the PDF I downloaded Tuesday" is not reproducible
Language/UI friction Non-Portuguese speakers slow down
Agent incompatibility LLM tools cannot click portals

apicvm programmatic workflow

Replace clicks with HTTP calls:

export APICVM_KEY='apicvm_...'
export APICVM_URL='https://apicvm.dev'

# 1. Resolve
curl -H "Authorization: Bearer $APICVM_KEY" \
  "$APICVM_URL/v1/companies/resolve?query=WEGE3&by=ticker"

# 2. List
curl -H "Authorization: Bearer $APICVM_KEY" \
  "$APICVM_URL/v1/documents?ticker=WEGE3&type=DFP&year=2024&perPage=20"

# 3. Download
curl -OJ -H "Authorization: Bearer $APICVM_KEY" \
  "$APICVM_URL/v1/documents/<document-id>/file"

Every filing has a stable document.id (UUID). Re-run the same query months later for auditability.

Comparison table

Dimension Manual portal apicvm API
Setup time Zero API key + HTTP client
Cost Free $9/month (see landing)
Reproducibility Low High (versioned /v1)
Batch / scheduled jobs Impractical Natural fit
Agent / LLM tools Not callable Designed for automation
Human file verification Easy Inspect name + dateRef in JSON first
Coverage Live portal Ingested corpus
Text extraction Manual OCR Async page markdown callbacks

When manual still wins

  • Spot-checking a single ambiguous filing before a board presentation
  • Verifying apicvm list results match your expectation (good practice either way)
  • Documents outside corpus not yet ingested by apicvm

Use manual download as validation, not as your production data plane.

When the API wins

  • Research pipelines refreshing filings on a schedule
  • Product features ("Download source filing" button)
  • AI agents resolving tickers and fetching documents in a tool loop
  • Cross-border teams building on HTTP contracts instead of Portuguese UI flows

See Download DFP and ITR filings for a step-by-step API guide.

Current limitations

  • apicvm does not mirror every CVM portal screen — only DFP/ITR/FRE in the ingested corpus.
  • Not real-time — filings appear after ingestion processing.
  • Manual portal may show filings before they reach apicvm.
  • API requires HTTPS callbacks for text extraction in production.

Next steps

Ready to integrate?

Get an API key and start querying Brazilian CVM filings programmatically.