# Tempest freshness, coverage and market state (free)

`GET https://api.skylit.ai/v1/vol/status`

API: Heatseeker.

When Tempest last computed (`asOf`), the session it belongs to
(`sessionDate`), whether it is serving the frozen close state
(`frozen`: outside regular hours nothing is recomputed, because
after-hours option quotes are too wide to read), the market state now,
how many symbols are published and coverage counts. Free.

## Authentication

Send your Skylit API key as a bearer token: `Authorization: Bearer <key>`. No other header is accepted.

## Example request

```bash
curl "https://api.skylit.ai/v1/vol/status" \
  -H "Authorization: Bearer $SKYLIT_API_KEY"
```

## Responses

### 200

OK.

Shape (placeholder values):

```json
{
  "data": {},
  "meta": {
    "module": "string",
    "asOf": "string",
    "sessionDate": "string",
    "marketState": "pre_open",
    "frozen": false,
    "publishedAt": "string",
    "cached": false
  }
}
```

### 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.

Headers: `Retry-After`.

### 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.
