Batch fetch multiple option quotes
GET/v1/options/quotes

Batch fetch multiple option quotes

Retrieves quotes for up to 20 comma-separated OCC option symbols in a single request. A batch counts as one request however many symbols it names; duplicate symbols are queried and returned once. Unknown symbols are returned in the missing array. Result order of quotes is unspecified.

Endpoint Usage & Plan Rules

Plan Access
Included in Basic
Active subscription
Rate Limit
One request per call; no daily quota
Result Clamping
Not Clamped
Full response returned

Parameters

Required Parameters

NameTypeLocationDescription
symbolsstringqueryComma-separated list of up to 20 OCC option symbols. Exceeding 20 returns 400 too_many_symbols.

Request Examples

curl -s -H "Authorization: Bearer $WSO_API_KEY" \
  "https://api.wheelstrategyoptions.com/v1/options/quotes?symbols=SPY270917C00800000,SPY270917P00750000"

Try it

GET/v1/options/quotes
Included in Basic

Requests run against the live API with your key and count against its rate limits. The key is sent only to this site. Sign in to get a key

Add your API key to send.
Response

Send a request to see the live response, its status, timing, and rate-limit headers.

Response Attributes (200 OK)

FieldTypeNullableDescription
quotesobject[]NoArray of returned option contract quotes.
missingstring[]NoArray of requested option symbols that were not found in the database.

Response Example

json
{
  "quotes": [
    {
      "optionSymbol": "AAPL261009C00110000",
      "underlying": "AAPL",
      "expiration": "2026-10-09",
      "strike": 110,
      "side": "call",
      "bid": 228.75,
      "ask": 231.55,
      "mid": 230.15,
      "last": 224.9,
      "volume": 0,
      "openInterest": 1,
      "iv": 383.07,
      "delta": 1,
      "gamma": 0,
      "theta": 0,
      "vega": 0,
      "rho": 0.003015,
      "underlyingPrice": 340.6,
      "spreadPercent": 1.22,
      "dte": 0,
      "asOf": "2026-10-09T00:15:46.697984Z"
    },
    {
      "optionSymbol": "AAPL261009P00110000",
      "underlying": "AAPL",
      "expiration": "2026-10-09",
      "strike": 110,
      "side": "put",
      "bid": 0,
      "ask": 0.01,
      "mid": 0.005,
      "last": 0.01,
      "volume": 0,
      "openInterest": 1100,
      "iv": 204.49,
      "delta": 0,
      "gamma": 0,
      "theta": 0,
      "vega": 0,
      "rho": 0,
      "underlyingPrice": 340.6,
      "spreadPercent": 200,
      "dte": 0,
      "asOf": "2026-10-09T00:15:46.697984Z"
    }
  ],
  "missing": []
}

Error Responses

StatusDescription
400Bad Request. The request body, query parameters, or path values violated validation constraints.
401Unauthorized. Missing, malformed, or invalid API key credential.
403Forbidden. Rejection reasons: `subscription_required` (no subscription record), `subscription_inactive` (subscription not active), `trial_ended` (trial has expired), `wrong_credential_type`, `origin_forbidden` (origin authentication failed).
404Not Found. Requested resource, ticker symbol, or option contract does not exist.
405Method Not Allowed. Returned with an `Allow` header when an unsupported HTTP method is used. Error code: `method_not_allowed`. (HEAD is served on all GET routes and counts against the rate limit like GET.)
429Too Many Requests. Rejection reasons: `rate_limited` (per-minute limit), `too_many_concurrent_requests` (in-flight cap), `too_many_auth_failures`.
500Internal Server Error. Unhandled internal server or database error.
503Service Unavailable. Backing database, cache, or external provider connection unavailable.
Get single option contract quoteGet option expiration schedule