Explore Brazil CVM Filings Metadata in Lightdash

Want Lightdash CVM filings dashboards on coverage? Stage apicvm document metadata in your warehouse, then explore in Lightdash. apicvm is the filings API — not a native Lightdash PDF connector.

The problem

BI tools excel at metrics tables. CVM work needs document UUIDs, filing types (DFP/ITR/FRE), and downloadable PDFs. Scrape-derived tables drift; HTTP metadata stays citable.

Pull metadata

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

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

Python loader sketch

import os, requests

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

docs = requests.get(
    f"{BASE}/v1/documents",
    headers=H,
    params={"ticker": "VALE3", "type": "ITR", "year": 2024, "perPage": 50},
).json()["data"]

rows = [{"id": d["id"], "name": d["name"], "type": d.get("type"), "year": d.get("year")} for d in docs]
print(len(rows))

Load rows into Postgres/BigQuery, model with dbt, explore coverage by ticker/type/year in Lightdash.

Download when needed

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

Keep PDFs in object storage; keep Lightdash on metadata + links.

Current limitations

  • No OHLCV or "fundamentals cube" endpoints — filings metadata and files only.
  • Async text extraction is separate from BI explores.
  • Empty inventory ≠ "issuer never filed"; check ingestion coverage.

Next steps

Ready to integrate?

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