Orchestrate Brazil CVM Filings with Windmill

Need Windmill CVM filings jobs for Brazilian issuers? Treat apicvm as an HTTP source: resolve → list → download. This is not a managed Windmill integration.

The problem

Internal ops scripts that refresh DFP/ITR inventories need secrets, schedules, and retries — not ad-hoc curl. Windmill fits; portal HTML does not.

Solution flow

schedule → resolve ticker → list documents → download PDFs → optional extract callback

Script sketch (Python)

import os, requests

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

def list_dfp(ticker: str, year: int = 2024):
    r = requests.get(
        f"{BASE}/v1/documents",
        headers=H,
        params={"ticker": ticker, "type": "DFP", "year": year, "perPage": 20},
        timeout=60,
    )
    r.raise_for_status()
    return r.json()["data"]

Wire list_dfp as a Windmill script; pass document id values to a downloader step.

Current limitations

  • Text extraction is async via HTTPS callback (Pro) — do not poll a status URL that does not exist
  • perPage max 50; paginate with page
  • Empty lists can be corpus gaps

Next steps

Ready to integrate?

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