Skip to main content
A successful schema-2 data tool returns three top-level blocks. Schema 2 is the default; omit schema for schema 2 and send { "schema": 1 } only for the frozen legacy wire.
stock_financials (trimmed to the wrapper)
  • subject — the resolved entity (cik, name, entity_type) and security (security_id, ticker).
  • data — the tool-specific payload.
  • meta — provenance and clocks (below).
Some discovery/catalog calls may not need a rich subject, but the schema-2 envelope still carries data and meta.

meta fields

Numeric cells

Branch on the cell shape before doing math. Compact exact value - headline fields in stock_overview use v for the exact decimal string and optional d for display:
Columnar exact value - stock_financials aligns field arrays with data.periods; exact cells are decimal strings:
Computed ratio - ratios can be plain JSON numbers:
Refusal - the value could not be proven:
Read exact magnitudes as decimal strings. Display twins (d) are approximate and display-only. Price-derived fields carry provenance such as computed_from_prices or licensed_market_data; sources and hashes appear at higher detail levels. See Units and fields.

Refusals

Whenever a value cannot be proven — a single field or a whole tool result — you get the same flat envelope, never a null, a 0, or an empty 200:
Parse defensively: before doing math on a field, check for unavailable. When it is present, keep the token if you display the field; do not retry to “get the number” because it will not appear without new source data or parameters. Resolve any token and recovery.action in the refusal_tokens catalog served by stock_reference.

Request errors

A request error is a non-2xx HTTP status — a bad key (401), a malformed body (422), or a limit (429) — and is distinct from a refused value inside a 200. See Error codes.