---
title: "Past bars for one option contract by its OCC symbol, active or expired, newest first: open, high, low, close, volume, VWAP and trade count. A period without trades has no bar, so a gap means no trades. `timeframe` is day (default, last 90 days), hour (last 7 days) or minute (last 4 days); `startDate` and `endDate` set another window. History begins in early 2024. Plus receives bars 15 minutes after they end; Pro receives them as they form, with `final: false` on a bar read before its period ended. The Free plan covers end-of-day data only and receives 403. Open interest, greeks and bid/ask have no history here; implied volatility history is `/options/volatility`. US listings only."
method: GET
path: "/v1/securities/{ticker}/options/contract/bars"
tags: ["Options"]
---

# Past bars for one option contract by its OCC symbol, active or expired, newest first: open, high, low, close, volume, VWAP and trade count. A period without trades has no bar, so a gap means no trades. \`timeframe\` is day (default, last 90 days), hour (last 7 days) or minute (last 4 days); \`startDate\` and \`endDate\` set another window. History begins in early 2024. Plus receives bars 15 minutes after they end; Pro receives them as they form, with \`final: false\` on a bar read before its period ended. The Free plan covers end-of-day data only and receives 403. Open interest, greeks and bid/ask have no history here; implied volatility history is \`/options/volatility\`. US listings only.

`GET /v1/securities/{ticker}/options/contract/bars`

## Request

- Base URL: `https://api.equibles.com`
- URL: `https://api.equibles.com/v1/securities/{ticker}/options/contract/bars`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/equibles/apis/equibles-api/docs/v1/securities/:ticker/options/contract/bars/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `ticker` string, required

## Query parameters

- `symbol` string
- `timeframe` string
- `startDate` string
- `endDate` string
- `limit` integer

## Response `200`

OK

- OptionBarsResponse
  - `ticker` string, nullable
  - `timeframe` string, nullable
  - `startDate` string, date
  - `endDate` string, date
  - `returned` integer
  - `truncated` boolean: True when older bars exist in the window; pass the oldest bar's `session` as `endDate`, or raise `limit` when it already is your `endDate`.
  - `delayed` boolean: True on Plus, where bars younger than 15 minutes are withheld.
  - `contract` OptionContractReferenceDto
    - `occTicker` string, nullable
    - `contractType` string, nullable
    - `exerciseStyle` string, nullable
    - `strikePrice` number, double
    - `expirationDate` string, date
    - `sharesPerContract` integer
    - `active` boolean: False once the contract has expired or been retired.
    - `openInterest` integer, nullable
    - `openInterestDate` string, date, nullable
    - `lastClose` number, double, nullable
    - `lastCloseDate` string, date, nullable
  - `bars` OptionBarDto[], nullable
    - `time` string, date-time: Bar start in UTC.
    - `session` string, date: The New York trading date the bar belongs to.
    - `open` number, double, nullable
    - `high` number, double, nullable
    - `low` number, double, nullable
    - `close` number, double, nullable
    - `volume` integer, nullable
    - `vwap` number, double, nullable
    - `tradeCount` integer, nullable
    - `final` boolean: False when this read began before the bar's period ended, so its figures can still change.

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `404`: Not Found
- `503`: Service Unavailable

---

[API](https://skmtc.dev/equibles/apis/equibles-api.md) - [All operations](https://skmtc.dev/equibles/apis/equibles-api/llms.txt) - [OpenAPI document](https://skmtc.dev/equibles/apis/equibles-api/revisions/666e06778588?raw)
