---
title: "Screen the whole Tempest universe (Radar)"
method: GET
path: "/v1/vol/screener"
tags: ["Tempest"]
---

# Screen the whole Tempest universe (Radar)

`GET /v1/vol/screener`

## Request

- Base URL: `https://api.skylit.ai`
- URL: `https://api.skylit.ai/v1/vol/screener`
- Auth: HTTP bearer

Rows can include `earnings_overlap_9d` and `earnings_overlap_30d`, with
`none`, `partial`, `full`, or null as documented on `/v1/vol/term`.
These are optional calendar-day exposure labels, not forecast signals.
Tempest Radar: one row per covered symbol with its headline readings
(SVX term and percentiles, IV rank, ratio to VIX, term slope, skew,
tilt, expected move, running sigma and odds, next event and VRP,
options volume, sector, `quality`). Thin chains are not ranked.
Filter with `min_<field>` / `max_<field>` on any sortable field, and
`curve`, `sector`, `quality` (exact match). Unknown parameters are a
`400`. Rows missing the sort field sort last. **Cost:** 5 credits per
call (up to 500 rows).

## Query parameters

- `sort` string
- `order` 'asc' | 'desc'
- `limit` integer
- `offset` integer
- `min_iv_rank` number
- `curve` string

## Response `200`

OK.

- VolScreenerResponse
  - `data` object, required
    - `limit` integer, required
    - `offset` integer, required
    - `rows` object[], required
    - `sort` string, required
    - `total` integer, required: Rows matching the filters, before offset/limit.
  - `meta` VolMeta, required
    - `asOf` string, date-time: When Tempest computed the newest value in this response.
    - `attribution` Attribution: Whether and how this response's data may be published. See `/legal/api#sharing`. An Agent or MCP client should never publish data where `shareable` is false, regardless of `shareClass`. `required`, `license`, `shareable` and `shareClass` are always sent on `/v1/options/*` and absent from the short form.
      - `license` 'personal' | 'commercial' | 'connected_app'
      - `required` boolean
      - `shareClass` 'derived' | 'derived_levels_only' | 'raw': "raw" (e.g. option quotes, greeks) must never be auto-published.
      - `shareable` boolean
      - `terms` string, uri
      - `text` string, required
      - `url` string, uri, required
    - `cached` boolean, required
    - `frozen` boolean, required: True while Tempest serves the previous close (outside regular hours).
    - `marketState` 'pre_open' | 'open' | 'post_close' | 'closed', required: US equity session at request time.
    - `module` string, required: Which endpoint answered (iv, cones, screener, ...).
    - `publishedAt` string, date-time: When Tempest last published to the API.
    - `sessionDate` string, date: The trading session (ET) that asOf belongs to. The close state is stamped 15:59 ET and always belongs to its own session.

## Other responses

- `400`: Request validation failed.
- `401`: Missing API key (`unauthorized`), sent by the gateway.
- `402`: Out of credits (`insufficient_credits`).
- `403`: As `Forbidden`, or `not_entitled`: Tempest data is not enabled for this account (it is in preview). Refunded.
- `404`: Unknown symbol, no data available, or none of the requested `expirations` exist for the symbol (`code: expiration_not_found`).
- `429`: Per-minute rate limit exceeded.
- `503`: Tempest data is loading (`warming_up`, with `Retry-After`) or not configured (`unavailable`). Refunded.
- `504`: The request did not finish in time (`gateway_timeout`). Refunded; retry, or narrow the request.

---

[API](https://skmtc.dev/skylit/apis/skylit-public-api.md) · [All operations](https://skmtc.dev/skylit/apis/skylit-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/skylit/apis/skylit-public-api/revisions/890b0ea4e6f5?raw)
