Overview
POST /v1/screen checks compliance for up to 50 symbols in one request. It’s the fastest way to screen a portfolio, validate a watchlist, or power a compliance dashboard without making one call per stock.
Each result carries a compliance_status you can read directly. Need the underlying ratios? Enrich any symbol with a follow-up call to /compliance (see Enrich with per-stock screens below).
Screen a list of symbols
Pass asymbols array. The sandbox key works against the 12 pre-analysed sandbox instruments.
Response
data is a flat array — every entry includes a compliance_status of compliant, non-compliant, or pending.
/screen screens stocks. Unknown tickers — and ETF tickers, which belong to GET /etfs/{symbol} — are returned in meta.not_found rather than as fabricated rows. On a sandbox key, any requested symbol outside the sandbox universe is returned in meta.sandbox_restricted (present only when non-empty) instead of being silently dropped.
Read the status straight off each result:
A
compliance_status of pending means the instrument hasn’t been analysed
yet — its screens aren’t available. See
Handle Pending Analysis for how to treat
these gracefully.Enrich with per-stock screens
POST /screen gives you the verdict per symbol. To show why a stock passed or failed, fetch the three financial screens from GET /instruments/{symbol}/compliance for the symbols you want to drill into.
result of "pass" or "fail" — there is no boolean passes field. Check screens.debt_to_market_cap.result === "pass", not screens.debt_to_market_cap.passes.
The three financial screen keys are always:
value and threshold are decimals (0.30 = 30%) and buffer is in percentage points.
Limits
Filter mode is a Plus capability. On Plus you can screen the analysed universe by attributes (status, sector, and similar) instead of listing symbols. On the sandbox and free tiers, always pass an explicitsymbols array.
