Brazil Regulatory Data API for Quant and Policy Research

Policy analysts and quant researchers working on Brazilian markets need a Brazil regulatory data API — not anecdotal news, but primary CVM documents with reproducible retrieval. Whether you study disclosure quality, governance changes, or sector risk narratives, the source of truth is what companies filed with the regulator.

apicvm provides programmatic access to issuer filings (DFP, ITR, FRE) so research can be cited, replicated, and automated.

The persona

  • Academic researchers studying corporate disclosure in Brazil
  • Policy teams tracking governance and risk reporting across sectors
  • Quant funds adding regulatory text features alongside market data
  • Journalists and analysts who need auditable document links

The problem

Regulatory research fails when document access is manual:

Pain point Research impact
Portal downloads Cannot reproduce results six months later
Unstructured PDFs Hard to diff year-over-year FRE risk sections
No ticker API Joining CNPJ tables wastes researcher time
Missing provenance Citations point to "a PDF on my laptop"

You need stable identifiers (document.id), typed filters (DFP / ITR / FRE), and downloadable originals.

Research workflows with apicvm

Financial disclosure studies (DFP / ITR)

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=2023&perPage=20"

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

Download both years, parse or extract text, diff sections. apicvm gives you the same GET /v1/documents/:id/file path for every issuer in the corpus.

Governance and risk studies (FRE)

FRE is the primary source for risk factors, board structure, and related-party transactions:

curl -H "Authorization: Bearer $APICVM_KEY" \
  "$APICVM_URL/v1/documents?ticker=WEGE3&type=FRE&year=2024&perPage=50"

FRE returns many files per year — filter by name for risk or governance sections. For NLP pipelines, enqueue extraction and build a corpus. See FRE filing type and Build a RAG pipeline.

Cross-sector panels

import os, requests

BASE = os.environ["APICVM_URL"]
H = {"Authorization": f"Bearer {os.environ['APICVM_KEY']}"}

SECTOR_TICKERS = ["PETR4", "VALE3", "WEGE3"]  # example panel

for ticker in SECTOR_TICKERS:
    docs = requests.get(
        f"{BASE}/v1/documents",
        headers=H,
        params={"ticker": ticker, "type": "FRE", "year": 2024, "perPage": 10},
    ).json()
    print(ticker, "FRE 2024 files:", docs["meta"]["total"])

Use meta.total for coverage checks before running analysis.

Reproducibility checklist

  1. Record document.id, type, year, dateRef, and download timestamp
  2. Store raw PDFs in versioned storage keyed by document.id
  3. Document apicvm API version (/v1) in research appendix
  4. Note corpus limitation — availability depends on ingestion, not live CVM mirrors

Complementary data sources

Current limitations

  • Coverage is the ingested corpus — verify tickers and years before publishing research.
  • No material facts (Fato Relevante) or IPE in MVP — event studies may need other sources.
  • Portuguese originals — translation is your responsibility.
  • Async text extraction — no synchronous full-document text endpoint.

Next steps

Ready to integrate?

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