Tradytics Options contracts API

The Options contracts API from Tradytics — 6 operation(s) for options contracts.

GitHub OpenAPI

Operations 6

GET /options/chain Option chain #
GET /options/expirations Expirations #
GET /options/contracts Contracts #
GET /options/contracts/{contract} Contract #
GET /options/contracts/{contract}/bars Contract bars #
GET /options/open-interest Open interest #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/tradytics:tradytics-options-contracts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

tradytics-options-contracts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Tradytics Options contracts API
  version: '1.0'
  description: 'Operations tagged Options contracts across 2 of this provider''s published API definitions: tradytics-openapi.json, tradytics-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: /api/public/v1
security:
- apiKey: []
tags:
- name: Options contracts
paths:
  /options/chain:
    get:
      tags:
      - Options contracts
      summary: Option chain
      operationId: chain_options_chain_get
      parameters:
      - name: symbol
        in: query
        required: true
        schema:
          description: Underlying, e.g. `AAPL`.
          title: Symbol
          type: string
        description: Underlying, e.g. `AAPL`.
      - name: expiry
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: One expiry, `YYYY-MM-DD`.
          title: Expiry
        description: One expiry, `YYYY-MM-DD`.
      - name: type
        in: query
        required: false
        schema:
          anyOf:
          - enum:
            - call
            - put
            type: string
          - type: 'null'
          description: '`call` or `put`.'
          title: Type
        description: '`call` or `put`.'
      - name: min_dte
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 0
          - type: 'null'
          description: Fewest days to expiry.
          title: Min Dte
        description: Fewest days to expiry.
      - name: max_dte
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 0
          - type: 'null'
          description: Most days to expiry.
          title: Max Dte
        description: Most days to expiry.
      - name: min_strike
        in: query
        required: false
        schema:
          anyOf:
          - type: number
            exclusiveMinimum: 0
          - type: 'null'
          description: Lowest strike.
          title: Min Strike
        description: Lowest strike.
      - name: max_strike
        in: query
        required: false
        schema:
          anyOf:
          - type: number
            exclusiveMinimum: 0
          - type: 'null'
          description: Highest strike.
          title: Max Strike
        description: Highest strike.
      - name: min_otm_pct
        in: query
        required: false
        schema:
          anyOf:
          - type: number
          - type: 'null'
          description: 'Least out of the money, % (negative: in the money).'
          title: Min Otm Pct
        description: 'Least out of the money, % (negative: in the money).'
      - name: max_otm_pct
        in: query
        required: false
        schema:
          anyOf:
          - type: number
          - type: 'null'
          description: Most out of the money, %.
          title: Max Otm Pct
        description: Most out of the money, %.
      - name: min_delta
        in: query
        required: false
        schema:
          anyOf:
          - type: number
            maximum: 1
            minimum: 0
          - type: 'null'
          description: Lowest absolute delta.
          title: Min Delta
        description: Lowest absolute delta.
      - name: max_delta
        in: query
        required: false
        schema:
          anyOf:
          - type: number
            maximum: 1
            minimum: 0
          - type: 'null'
          description: Highest absolute delta.
          title: Max Delta
        description: Highest absolute delta.
      - name: date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: One session, `YYYY-MM-DD` (New York).
          title: Date
        description: One session, `YYYY-MM-DD` (New York).
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 1000
          minimum: 1
          default: 100
          title: Limit
      - name: cursor
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: '`next_cursor` from the previous page.'
          title: Cursor
        description: '`next_cursor` from the previous page.'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '400':
          description: Invalid or missing request parameters
    servers:
    - url: /api/public/v1
  /options/expirations:
    get:
      tags:
      - Options contracts
      summary: Expirations
      operationId: expirations_options_expirations_get
      parameters:
      - name: symbol
        in: query
        required: true
        schema:
          description: Underlying, e.g. `AAPL`.
          title: Symbol
          type: string
        description: Underlying, e.g. `AAPL`.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '400':
          description: Invalid or missing request parameters
    servers:
    - url: /api/public/v1
  /options/contracts:
    get:
      tags:
      - Options contracts
      summary: Contracts
      operationId: contracts_options_contracts_get
      parameters:
      - name: symbol
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: One or more underlyings, comma separated. Default the whole market.
          title: Symbol
        description: One or more underlyings, comma separated. Default the whole market.
      - name: sort
        in: query
        required: false
        schema:
          enum:
          - volume
          - premium
          - iv
          - iv_change
          - open_interest
          - open_interest_change
          type: string
          default: volume
          title: Sort
      - name: order
        in: query
        required: false
        schema:
          enum:
          - desc
          - asc
          type: string
          default: desc
          title: Order
      - name: type
        in: query
        required: false
        schema:
          anyOf:
          - enum:
            - call
            - put
            type: string
          - type: 'null'
          description: '`call` or `put`.'
          title: Type
        description: '`call` or `put`.'
      - name: expiry
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: One expiry, `YYYY-MM-DD`.
          title: Expiry
        description: One expiry, `YYYY-MM-DD`.
      - name: min_dte
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 0
          - type: 'null'
          description: Fewest days to expiry.
          title: Min Dte
        description: Fewest days to expiry.
      - name: max_dte
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 0
          - type: 'null'
          description: Most days to expiry.
          title: Max Dte
        description: Most days to expiry.
      - name: min_otm_pct
        in: query
        required: false
        schema:
          anyOf:
          - type: number
          - type: 'null'
          description: 'Least out of the money, % (negative: in the money).'
          title: Min Otm Pct
        description: 'Least out of the money, % (negative: in the money).'
      - name: max_otm_pct
        in: query
        required: false
        schema:
          anyOf:
          - type: number
          - type: 'null'
          description: Most out of the money, %.
          title: Max Otm Pct
        description: Most out of the money, %.
      - name: min_delta
        in: query
        required: false
        schema:
          anyOf:
          - type: number
            maximum: 1
            minimum: 0
          - type: 'null'
          description: Lowest absolute delta.
          title: Min Delta
        description: Lowest absolute delta.
      - name: max_delta
        in: query
        required: false
        schema:
          anyOf:
          - type: number
            maximum: 1
            minimum: 0
          - type: 'null'
          description: Highest absolute delta.
          title: Max Delta
        description: Highest absolute delta.
      - name: min_volume
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 0
          - type: 'null'
          title: Min Volume
      - name: min_open_interest
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 0
          - type: 'null'
          title: Min Open Interest
      - name: min_price
        in: query
        required: false
        schema:
          anyOf:
          - type: number
            minimum: 0
          - type: 'null'
          title: Min Price
      - name: max_price
        in: query
        required: false
        schema:
          anyOf:
          - type: number
            minimum: 0
          - type: 'null'
          title: Max Price
      - name: date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: One session, `YYYY-MM-DD` (New York).
          title: Date
        description: One session, `YYYY-MM-DD` (New York).
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 1000
          minimum: 1
          default: 100
          title: Limit
      - name: cursor
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: '`next_cursor` from the previous page.'
          title: Cursor
        description: '`next_cursor` from the previous page.'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '400':
          description: Invalid or missing request parameters
    servers:
    - url: /api/public/v1
  /options/contracts/{contract}:
    get:
      tags:
      - Options contracts
      summary: Contract
      operationId: one_options_contracts__contract__get
      parameters:
      - name: contract
        in: path
        required: true
        schema:
          type: string
          description: OCC symbol, e.g. `NVDA261218C00150000` (`O:` prefix optional).
          title: Contract
        description: OCC symbol, e.g. `NVDA261218C00150000` (`O:` prefix optional).
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '400':
          description: Invalid or missing request parameters
    servers:
    - url: /api/public/v1
  /options/contracts/{contract}/bars:
    get:
      tags:
      - Options contracts
      summary: Contract bars
      operationId: contract_bars_options_contracts__contract__bars_get
      parameters:
      - name: contract
        in: path
        required: true
        schema:
          type: string
          description: OCC symbol, e.g. `NVDA261218C00150000` (`O:` prefix optional).
          title: Contract
        description: OCC symbol, e.g. `NVDA261218C00150000` (`O:` prefix optional).
      - name: timeframe
        in: query
        required: false
        schema:
          enum:
          - 1m
          - 5m
          - 15m
          - 1h
          - 1d
          type: string
          default: 1d
          title: Timeframe
      - name: from
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Start: `YYYY-MM-DD` or an RFC 3339 time.'
          title: From
        description: 'Start: `YYYY-MM-DD` or an RFC 3339 time.'
      - name: to
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'End: `YYYY-MM-DD` or an RFC 3339 time. Default now.'
          title: To
        description: 'End: `YYYY-MM-DD` or an RFC 3339 time. Default now.'
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 5000
          minimum: 1
          default: 500
          title: Limit
      - name: cursor
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: '`next_cursor` from the previous page.'
          title: Cursor
        description: '`next_cursor` from the previous page.'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '400':
          description: Invalid or missing request parameters
    servers:
    - url: /api/public/v1
  /options/open-interest:
    get:
      tags:
      - Options contracts
      summary: Open interest
      operationId: open_interest_options_open_interest_get
      parameters:
      - name: symbol
        in: query
        required: true
        schema:
          description: Underlying, e.g. `AAPL`.
          title: Symbol
          type: string
        description: Underlying, e.g. `AAPL`.
      - name: by
        in: query
        required: false
        schema:
          enum:
          - strike
          - expiry
          type: string
          default: strike
          title: By
      - name: expiry
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: One expiry, `YYYY-MM-DD`.
          title: Expiry
        description: One expiry, `YYYY-MM-DD`.
      - name: date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: One session, `YYYY-MM-DD` (New York).
          title: Date
        description: One session, `YYYY-MM-DD` (New York).
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 1000
          minimum: 1
          default: 1000
          title: Limit
      - name: cursor
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: '`next_cursor` from the previous page.'
          title: Cursor
        description: '`next_cursor` from the previous page.'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '400':
          description: Invalid or missing request parameters
    servers:
    - url: /api/public/v1
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: query
      name: apiKey
x-refined-from:
- tradytics-openapi.json
- tradytics-openapi.json
x-provenance:
  method: harvested
  publisher: Tradytics
  source: https://tradytics.com/api/public/v1/openapi.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)