Overview
Four calls: find out what exists, resolve an identifier, pull a series, then put two different things on one axis. Everything here runs anonymously with the shared testing key.apikey only. See Quickstart.
1. Find out what is actually there
as_of (newest elapsed period landed) and complete_through (newest complete period, what default windows serve). A complete_through trailing today by a month or two for a fund dataset is CVM’s filing calendar, not an outage. Market coverage explains all four date columns.
2. Resolve an identifier
id, id_type, asset_class, name, isin, cnpj and any B3 tickers — the last from CVM’s published FCA map, never a guessed ticker↔CNPJ join.
Note: an unknown identifier returns an empty array, not an error and never a substitute. If lookup gives you nothing, stop there rather than assuming the next call will work.
3. Pull a series
22023 rather than handing you the oldest 1,000 — page it with p_after. See the pagination guide before you write a loop.
Note: prices are unadjusted (adjusted: false on every row). A return computed across a split date will be wrong unless you handle it yourself.
4. Put two different things on one axis
panel returns a long (id, date, metric, value) frame, so a listed company’s price and a fund’s NAV line up without a join.
p_ids array. The fourteen metrics are close, volume, close_unit, close_return, nav, quota, delinquency, yield, inflows, redemptions, quotaholders, receivables, sacado_top1 and sacado_top25.
Note: anonymously panel takes at most 3 ids per call — a fourth raises 22023 rather than quietly dropping one. Signing in raises it to 50.
Reading a null correctly
On this API a null is information, with three distinct meanings:
None is ever filled with a guess. No forward-fill, no last known close, no interpolation.
catalog().applicability lists which columns each family files; metric_coverage() gives the filed span per metric.
Next
Paging without losing rows
Two cursors, one silent ceiling, and how to tell which cut you.
Reading a fundamental
A company’s financial statements end to end.
Market coverage
How far back each domain goes — and the one that is a ratchet.
For agents
The machine-readable contract, for tool-using models.