Brazil CVM Filings for Credit Analysis

Credit analysts covering Brazilian issuers need primary Brazil filings credit analysis inputs: annual and quarterly financial statements plus FRE disclosures on liquidity, covenants, and contingencies. apicvm delivers those documents over HTTP. It is not a credit rating, scoring model, or substitute for your internal risk framework.

The persona

  • Bank / buy-side credit teams screening B3 issuers
  • Risk officers archiving source PDFs with stable IDs
  • Quant credit researchers building feature pipelines from filing text

The problem

Credit work on Brazilian public companies repeatedly needs:

Need Typical CVM source
Audited annual statements DFP
Intra-year updates ITR
Liquidity, debt, covenants, contingencies FRE sections

Portal downloads do not give you a ticker-first API or durable document.id for refresh. Bulk CSV dumps help accounting panels but not “download this FRE liquidity section PDF.”

Solution flow

Issuer ticker
  → GET /v1/companies/resolve
  → GET /v1/documents (DFP + ITR for statements; FRE with name filters)
  → GET /v1/documents/:id/file (audit trail)
  → optional POST /v1/document-text-extractions (searchable text, Pro)

Resolve and list financials

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

curl -H "Authorization: Bearer $APICVM_KEY" \
  "$APICVM_URL/v1/companies/resolve?query=ELET3&by=ticker"

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

curl -H "Authorization: Bearer $APICVM_KEY" \
  "$APICVM_URL/v1/documents?ticker=ELET3&type=ITR&year=2025&perPage=20"

FRE sections for credit themes

curl -H "Authorization: Bearer $APICVM_KEY" \
  "$APICVM_URL/v1/documents?ticker=ELET3&type=FRE&year=2024&name=Liquidez&perPage=20"

curl -H "Authorization: Bearer $APICVM_KEY" \
  "$APICVM_URL/v1/documents?ticker=ELET3&type=FRE&year=2024&name=Conting&perPage=20"

Section naming varies by issuer and year — iterate with broader name filters. See filter by section name.

Python: short credit document pack

import os, requests

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

for typ, year, name in [
    ("DFP", 2024, None),
    ("ITR", 2025, None),
    ("FRE", 2024, "Divida"),
    ("FRE", 2024, "Conting"),
]:
    params = {"ticker": TICKER, "type": typ, "year": year, "perPage": 15}
    if name:
        params["name"] = name
    data = requests.get(f"{BASE}/v1/documents", headers=H, params=params).json()["data"]
    print(typ, year, name, "→", len(data), "docs")
    for d in data[:3]:
        print(" ", d["id"], d["name"])

What apicvm does not provide

  • Credit ratings, PD/LGD models, or covenant breach alerts
  • Market prices, CDS, or bond termsheets
  • Private-company or bank-internal data
  • Legal opinions on contingencies

Current limitations

  • Ingestion lag vs the live CVM portal
  • Async extraction only (Pro + credits)
  • Not every FRE section name is consistent across issuers

Next steps

Ready to integrate?

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