EOD Historical Data Options API

Options contracts and pricing data

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/eod-historical-options-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

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

OpenAPI Specification

eod-historical-options-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: EODHD Financial Data Calendar Options API
  description: Comprehensive API for retrieving financial data including stock prices, fundamentals, calendar events, news, and more from EOD Historical Data (eodhd.com)
  version: 2.0.0
  contact:
    name: EODHD Support
    url: https://eodhd.com
    email: supportlevel1@eodhistoricaldata.com
  termsOfService: https://eodhd.com/financial-apis/terms-conditions
  license:
    name: Proprietary
    url: https://eodhd.com/financial-apis/terms-conditions
servers:
- url: https://eodhd.com/api
  description: Primary API path
- url: https://eodhistoricaldata.com/api
  description: Alternative API path
security:
- EODHDQueryKey: []
tags:
- name: Options
  description: Options contracts and pricing data
paths:
  /mp/unicornbay/options/contracts:
    get:
      summary: Get options contracts
      description: Fetch options contracts filtered by underlying symbol, expiration, strike, type, or contract name. Supports sorting, pagination, and field selection.
      operationId: getOptionsContracts
      parameters:
      - name: filter[contract]
        in: query
        schema:
          type: string
        description: Exact contract name, e.g., AAPL270115P00450000
      - name: filter[underlying_symbol]
        in: query
        schema:
          type: string
        description: Underlying symbol, e.g., AAPL
      - name: filter[exp_date_eq]
        in: query
        schema:
          type: string
        description: Expiration equals (YYYY-MM-DD)
      - name: filter[exp_date_from]
        in: query
        schema:
          type: string
        description: Expiration from (YYYY-MM-DD)
      - name: filter[exp_date_to]
        in: query
        schema:
          type: string
        description: Expiration to (YYYY-MM-DD)
      - name: filter[tradetime_eq]
        in: query
        schema:
          type: string
        description: Trade time equals (YYYY-MM-DD)
      - name: filter[tradetime_from]
        in: query
        schema:
          type: string
        description: Trade time from (YYYY-MM-DD)
      - name: filter[tradetime_to]
        in: query
        schema:
          type: string
        description: Trade time to (YYYY-MM-DD)
      - name: filter[type]
        in: query
        schema:
          type: string
          enum:
          - put
          - call
        description: Option type
      - name: filter[strike_eq]
        in: query
        schema:
          type: number
        description: Strike equals
      - name: filter[strike_from]
        in: query
        schema:
          type: number
        description: Strike from
      - name: filter[strike_to]
        in: query
        schema:
          type: number
        description: Strike to
      - name: sort
        in: query
        schema:
          type: string
          enum:
          - exp_date
          - strike
          - -exp_date
          - -strike
        description: Sort by expiration date or strike (asc/desc).
      - name: page[offset]
        in: query
        schema:
          type: integer
          minimum: 0
          maximum: 10000
          default: 0
        description: Pagination offset (records to skip). Max 10000.
      - name: page[limit]
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 1000
          default: 1000
        description: Pagination limit. Default & max 1000.
      - name: fields[options-contracts]
        in: query
        schema:
          type: string
        description: CSV of fields to include (e.g., contract,exp_date,strike).
      - name: fmt
        in: query
        schema:
          type: string
          enum:
          - json
          - xml
          default: json
        description: Response format.
      - name: api_token
        in: query
        required: true
        description: API token for authentication.
        schema:
          type: string
      responses:
        '200':
          description: Contracts list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OptionsContractsResponse'
              examples:
                sample:
                  summary: AAPL, 5 newest expirations
                  value:
                    meta:
                      offset: 0
                      limit: 5
                      total: 14394
                      fields:
                      - contract
                      - underlying_symbol
                      - exp_date
                      - expiration_type
                      - type
                      - strike
                      - exchange
                      - currency
                      - open
                      - high
                      - low
                      - last
                      - last_size
                      - change
                      - pctchange
                      - previous
                      - previous_date
                      - bid
                      - bid_date
                      - bid_size
                      - ask
                      - ask_date
                      - ask_size
                      - moneyness
                      - volume
                      - volume_change
                      - volume_pctchange
                      - open_interest
                      - open_interest_change
                      - open_interest_pctchange
                      - volatility
                      - volatility_change
                      - volatility_pctchange
                      - theoretical
                      - delta
                      - gamma
                      - theta
                      - vega
                      - rho
                      - tradetime
                      - vol_oi_ratio
                      - dte
                      - midpoint
                    data:
                    - id: AAPL271217C00420000
                      type: options-contracts
                      attributes:
                        contract: AAPL271217C00420000
                        underlying_symbol: AAPL
                        exp_date: '2027-12-17'
                        expiration_type: monthly
                        type: call
                        strike: 420
                        exchange: NASDAQ
                        currency: USD
                        open: 3.35
                        high: 3.35
                        low: 3.29
                        last: 3.29
                        last_size: 1
                        change: 0.09
                        pctchange: 2.81
                        previous: 3.2
                        previous_date: '2025-08-11'
                        bid: 2.85
                        bid_date: '2025-08-12 20:00:00'
                        bid_size: 58
                        ask: 4.4
                        ask_date: '2025-08-12 20:00:00'
                        ask_size: 173
                        moneyness: -0.83
                        volume: 4
                        volume_change: -5
                        volume_pctchange: -55.56
                        open_interest: 299
                        open_interest_change: 7
                        open_interest_pctchange: 2.4
                        volatility: 0.2337
                        volatility_change: -0.0023
                        volatility_pctchange: -0.99
                        theoretical: 3.29
                        delta: 0.097466
                        gamma: 0.002088
                        theta: -0.00993
                        vega: 0.604392
                        rho: 0.448547
                        tradetime: '2025-08-12'
                        vol_oi_ratio: 0.01
                        dte: 857
                        midpoint: 3.63
                    links:
                      next: https://eodhd.com/api/mp/unicornbay/options/contracts?sort=-exp_date&filter[underlying_symbol]=AAPL&page[offset]=5&page[limit]=5
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Options
  /mp/unicornbay/options/eod:
    get:
      summary: Get end-of-day options data
      description: Returns EOD trades/bid data for options, with the same filter set as contracts. Supports compact mode (`compact=1`) to return arrays instead of objects.
      operationId: getOptionsEOD
      parameters:
      - name: filter[contract]
        in: query
        schema:
          type: string
        description: Exact contract name, e.g., AAPL270115P00450000
      - name: filter[underlying_symbol]
        in: query
        schema:
          type: string
        description: Underlying symbol, e.g., AAPL
      - name: filter[exp_date_eq]
        in: query
        schema:
          type: string
        description: Expiration equals (YYYY-MM-DD)
      - name: filter[exp_date_from]
        in: query
        schema:
          type: string
        description: Expiration from (YYYY-MM-DD)
      - name: filter[exp_date_to]
        in: query
        schema:
          type: string
        description: Expiration to (YYYY-MM-DD)
      - name: filter[tradetime_eq]
        in: query
        schema:
          type: string
        description: Trade time equals (YYYY-MM-DD)
      - name: filter[tradetime_from]
        in: query
        schema:
          type: string
        description: Trade time from (YYYY-MM-DD)
      - name: filter[tradetime_to]
        in: query
        schema:
          type: string
        description: Trade time to (YYYY-MM-DD)
      - name: filter[type]
        in: query
        schema:
          type: string
          enum:
          - put
          - call
        description: Option type
      - name: filter[strike_eq]
        in: query
        schema:
          type: number
        description: Strike equals
      - name: filter[strike_from]
        in: query
        schema:
          type: number
        description: Strike from
      - name: filter[strike_to]
        in: query
        schema:
          type: number
        description: Strike to
      - name: sort
        in: query
        schema:
          type: string
          enum:
          - exp_date
          - strike
          - -exp_date
          - -strike
        description: Sort by expiration date or strike (asc/desc).
      - name: page[offset]
        in: query
        schema:
          type: integer
          minimum: 0
          maximum: 10000
          default: 0
        description: Pagination offset (records to skip). Max 10000.
      - name: page[limit]
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 1000
          default: 1000
        description: Pagination limit. Default & max 1000.
      - name: fields[options-eod]
        in: query
        schema:
          type: string
        description: CSV of fields to include (e.g., contract,exp_date,strike).
      - name: compact
        in: query
        schema:
          type: integer
          enum:
          - 0
          - 1
          default: 0
        description: Set 1 for compact mode (rows as arrays in `data`, columns = `meta.fields`).
      - name: fmt
        in: query
        schema:
          type: string
          enum:
          - json
          - xml
          default: json
        description: Response format.
      - name: api_token
        in: query
        required: true
        description: API token for authentication.
        schema:
          type: string
      responses:
        '200':
          description: EOD options data (standard or compact).
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/OptionsEODResponse'
                - $ref: '#/components/schemas/OptionsEODCompactResponse'
              examples:
                standard:
                  summary: Standard JSON (objects)
                  value:
                    meta:
                      offset: 0
                      limit: 5
                      total: 227
                      fields:
                      - contract
                      - underlying_symbol
                      - exp_date
                      - expiration_type
                      - type
                      - strike
                      - exchange
                      - currency
                      - open
                      - high
                      - low
                      - last
                      - last_size
                      - change
                      - pctchange
                      - previous
                      - previous_date
                      - bid
                      - bid_date
                      - bid_size
                      - ask
                      - ask_date
                      - ask_size
                      - moneyness
                      - volume
                      - volume_change
                      - volume_pctchange
                      - open_interest
                      - open_interest_change
                      - open_interest_pctchange
                      - volatility
                      - volatility_change
                      - volatility_pctchange
                      - theoretical
                      - delta
                      - gamma
                      - theta
                      - vega
                      - rho
                      - tradetime
                      - vol_oi_ratio
                      - dte
                      - midpoint
                    data:
                    - id: AAPL270115P00450000-2025-08-12
                      type: options-eod
                      attributes:
                        contract: AAPL270115P00450000
                        underlying_symbol: AAPL
                        exp_date: '2027-01-15'
                        expiration_type: monthly
                        type: put
                        strike: 450
                        exchange: NASDAQ
                        currency: USD
                        open: 0
                        high: 0
                        low: 0
                        last: 245.9
                        last_size: 0
                        change: 0
                        pctchange: 0
                        previous: 0
                        previous_date: ''
                        bid: 218.4
                        bid_date: '2025-08-12 19:59:59'
                        bid_size: 115
                        ask: 222.2
                        ask_date: '2025-08-12 19:59:59'
                        ask_size: 17
                        moneyness: 0.96
                        volume: 0
                        volume_change: 0
                        volume_pctchange: 0
                        open_interest: 0
                        open_interest_change: 0
                        open_interest_pctchange: 0
                        volatility: 0.4863
                        volatility_change: 0
                        volatility_pctchange: 0
                        theoretical: 222.2
                        delta: -0.877218
                        gamma: 0.001594
                        theta: -0.012408
                        vega: 0.482281
                        rho: -1
                        tradetime: '2025-06-08'
                        vol_oi_ratio: 0
                        dte: 521
                        midpoint: 220.3
                    links:
                      next: https://eodhd.com/api/mp/unicornbay/options/eod?sort=-exp_date&filter[contract]=AAPL270115P00450000&page[offset]=5&page[limit]=5
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Options
  /mp/unicornbay/options/underlying-symbols:
    get:
      summary: List underlying symbols with options
      description: Returns the list of all supported stock symbols for which option contracts are available. May be paginated.
      operationId: listUnderlyingSymbols
      parameters:
      - name: page[offset]
        in: query
        schema:
          type: integer
          minimum: 0
          maximum: 10000
          default: 0
        description: Pagination offset (records to skip).
      - name: page[limit]
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 1000
          default: 1000
        description: Pagination limit. Default & max 1000.
      - name: fmt
        in: query
        schema:
          type: string
          enum:
          - json
          - xml
          default: json
        description: Response format.
      - name: api_token
        in: query
        required: true
        description: API token for authentication.
        schema:
          type: string
      responses:
        '200':
          description: Supported underlying symbols.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnderlyingSymbolsResponse'
              examples:
                sample:
                  summary: First page (truncated)
                  value:
                    meta:
                      total: 5972
                      fields:
                      - underlying_symbol
                      compact: true
                    data:
                    - A
                    - AA
                    - AAAU
                    - AACT
                    - AADI
                    - AAL
                    - AAMI
                    - AAN
                    - AAOI
                    - AAON
                    - AAP
                    - AAPL
                    links:
                      next: ''
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Options
components:
  schemas:
    Links:
      type: object
      required:
      - next
      properties:
        next:
          type:
          - string
          - 'null'
          description: URL to fetch the next page, or null if last page.
      additionalProperties: false
    OptionsEODCompactResponse:
      type: object
      required:
      - meta
      - data
      - links
      properties:
        meta:
          $ref: '#/components/schemas/MetaPagination'
        data:
          type: array
          items:
            type: array
            items:
              type:
              - string
              - number
              - integer
              - 'null'
            description: Row aligned to columns listed in meta.fields.
        links:
          $ref: '#/components/schemas/Links'
      additionalProperties: false
    UnderlyingSymbolsResponse:
      type: object
      required:
      - meta
      - data
      properties:
        meta:
          $ref: '#/components/schemas/MetaPagination'
        data:
          type: array
          items:
            type: string
        links:
          $ref: '#/components/schemas/Links'
      additionalProperties: false
    OptionsEODItem:
      type: object
      required:
      - id
      - type
      - attributes
      properties:
        id:
          type: string
        type:
          type: string
          const: options-eod
        attributes:
          $ref: '#/components/schemas/OptionsCommonAttributes'
      additionalProperties: false
    Error:
      type: object
      properties:
        status:
          type: integer
        error:
          type: string
        message:
          type: string
    OptionsContractsItem:
      type: object
      required:
      - id
      - type
      - attributes
      properties:
        id:
          type: string
        type:
          type: string
          const: options-contracts
        attributes:
          $ref: '#/components/schemas/OptionsCommonAttributes'
      additionalProperties: false
    OptionsContractsResponse:
      type: object
      required:
      - meta
      - data
      - links
      properties:
        meta:
          $ref: '#/components/schemas/MetaPagination'
        data:
          type: array
          items:
            $ref: '#/components/schemas/OptionsContractsItem'
        links:
          $ref: '#/components/schemas/Links'
      additionalProperties: false
    MetaPagination:
      type: object
      description: Pagination and field metadata.
      required:
      - total
      - fields
      properties:
        offset:
          type: integer
          minimum: 0
        limit:
          type: integer
          minimum: 1
        total:
          type: integer
          minimum: 0
        fields:
          type: array
          items:
            type: string
        compact:
          type:
          - boolean
          - 'null'
      additionalProperties: false
    OptionsEODResponse:
      type: object
      required:
      - meta
      - data
      - links
      properties:
        meta:
          $ref: '#/components/schemas/MetaPagination'
        data:
          type: array
          items:
            $ref: '#/components/schemas/OptionsEODItem'
        links:
          $ref: '#/components/schemas/Links'
      additionalProperties: false
    OptionsCommonAttributes:
      type: object
      description: Common fields for options contract/EOD records. Values may be null.
      properties:
        contract:
          type: string
        underlying_symbol:
          type: string
        exp_date:
          type: string
          description: YYYY-MM-DD
        expiration_type:
          type:
          - string
          - 'null'
        type:
          type: string
          enum:
          - call
          - put
        strike:
          type:
          - number
          - 'null'
        exchange:
          type:
          - string
          - 'null'
        currency:
          type:
          - string
          - 'null'
        open:
          type:
          - number
          - 'null'
        high:
          type:
          - number
          - 'null'
        low:
          type:
          - number
          - 'null'
        last:
          type:
          - number
          - 'null'
        last_size:
          type:
          - integer
          - 'null'
        change:
          type:
          - number
          - 'null'
        pctchange:
          type:
          - number
          - 'null'
        previous:
          type:
          - number
          - 'null'
        previous_date:
          type:
          - string
          - 'null'
        bid:
          type:
          - number
          - 'null'
        bid_date:
          type:
          - string
          - 'null'
        bid_size:
          type:
          - integer
          - 'null'
        ask:
          type:
          - number
          - 'null'
        ask_date:
          type:
          - string
          - 'null'
        ask_size:
          type:
          - integer
          - 'null'
        moneyness:
          type:
          - number
          - 'null'
        volume:
          type:
          - integer
          - 'null'
        volume_change:
          type:
          - integer
          - 'null'
        volume_pctchange:
          type:
          - number
          - 'null'
        open_interest:
          type:
          - integer
          - 'null'
        open_interest_change:
          type:
          - integer
          - 'null'
        open_interest_pctchange:
          type:
          - number
          - 'null'
        volatility:
          type:
          - number
          - 'null'
        volatility_change:
          type:
          - number
          - 'null'
        volatility_pctchange:
          type:
          - number
          - 'null'
        theoretical:
          type:
          - number
          - 'null'
        delta:
          type:
          - number
          - 'null'
        gamma:
          type:
          - number
          - 'null'
        theta:
          type:
          - number
          - 'null'
        vega:
          type:
          - number
          - 'null'
        rho:
          type:
          - number
          - 'null'
        tradetime:
          type:
          - string
          - 'null'
          description: YYYY-MM-DD (last trade or last market update; see docs)
        vol_oi_ratio:
          type:
          - number
          - 'null'
        dte:
          type:
          - integer
          - 'null'
          description: Days to expiration
        midpoint:
          type:
          - number
          - 'null'
      additionalProperties: false
  securitySchemes:
    EODHDQueryKey:
      type: apiKey
      in: query
      name: api_token
      description: EODHD API key (stored as a secret in ChatGPT).