Parameters, response columns and types are generated from the SQL catalog and
render under Endpoints → Coverage & catalog in the sidebar. This page carries what a
schema cannot: the conventions, the nulls that are deliberate, and the traps.
Overview
coverage answers how far the data actually goes. Call it before reporting a “latest” figure, before reading an empty result as a fund that stopped filing, and before treating a series as up to date. No arguments; one row per dataset, plus one funds_<family> row per fund family (families file on different cadences, so one blended date misreads all of them).
The five columns
landed_at is “is the pipeline healthy”; as_of is “how far does the data go”. A days-old landed_at with a current as_of means ingest stopped but the data it left is fine. Diff landed_git_sha against a fix you are waiting on to know whether the newest rows were parsed before or after it.
Datasets
Not covered:
fund_holdings and fund_debentures have no row yet; read the newest period off the rows themselves.
notes carries a caveat the dates cannot and is null when there is none. Rows with one today: funds_fidc (the 2020-11 delinquency regime break), funds_fip (why newest_period runs ahead of the calendar), fund_nav (see catalog().applicability), the four FIDC concentration rows, the two FIDC structure rows, the five B3 lending / flow rows (the ratchet), the two inflation rows, company_events, and macro_series / ptax (units and cadences).
Example
Notes
- The dates are supposed to differ. B3 quotes arrive daily; CVM fund filings lag one to two months. A
fund_navdate two months behindquotesis normal. - Read the
funds_<family>rows before a window claim.complete_throughis what an omittedp_toclamps to.fundsandfund_navcarry the blended value, the most lagging family’s bound. derivativesandquotesare reported separately though they share a COTAHIST file: the segments can land independently. Checkderivativesbefore claiming an option chain is current.fund_nav.as_ofis a month key:2026-06-01means the June 2026 period.- These are dataset-wide maxima, not per-instrument. An individual fund can be months behind while still filing normally; use
fund_profile’slast_period. - A window past a dataset’s
as_ofis not an error. It returns nothing for the months that do not exist yet; the API never extends a series.
Regime boundaries
complete_through tells you where a series ends, not where it changes meaning. That is notes, and machine-readably catalog().regime_breaks (dataset, column, boundary, before, after, never). Today’s boundary is FIDC delinquency at 2020-11: filed from 2013-01, but null before 2020-11 for a fund with no tab VI row that month, and on every row from 2020-11. Counting reporting funds across it, or reading its nulls as zero, manufactures a move the funds never made. Check it before differencing any fund series.
metric_coverage
metric_coverage answers does this family file this metric at all, and since when?
Note: an absent pair is not-applicable, not late. Only pairs with at least one filed value appear (
("fip", "quotaholders") is missing because FIP never files it). Use metric_coverage rather than inferring a start date from nulls in a series, which is how a format change gets read as a credit event. It is measured off the warehouse on every refresh, so catalog().metrics.<m>.coverage points here rather than carrying a date.
Errors
No arguments to get wrong.401 means the key headers are missing; 404 (PGRST202) means you sent arguments to a function that takes none.