Build Observable Data Apps on Brazil CVM Filings

Need Observable CVM filings data loaders? Treat apicvm as an HTTPS JSON source. Observable renders; apicvm supplies regulatory document metadata.

The problem

Static data apps that monitor Brazilian issuers need scheduled JSON pulls with filterable ticker / type / year — not brittle HTML scrapes.

Solution flow

data loader → GET /v1/documents → JSON → Observable chart / table

Loader sketch (Node)

const base = process.env.APICVM_URL
const key = process.env.APICVM_KEY
const url = new URL('/v1/documents', base)
url.searchParams.set('ticker', 'VALE3')
url.searchParams.set('type', 'DFP')
url.searchParams.set('year', '2024')
url.searchParams.set('perPage', '20')
const res = await fetch(url, { headers: { Authorization: `Bearer ${key}` } })
const { data } = await res.json()
process.stdout.write(JSON.stringify(data))

Current limitations

  • Browser-only keys are a bad idea — call apicvm from a server/data loader
  • No WebSocket push for new filings; re-fetch on build/schedule
  • Demo routes are VALE3-only and public; production keys use full /v1

Next steps

Ready to integrate?

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