EODHD Options API

Options contracts and pricing data

Operations 3

GET /mp/unicornbay/options/contracts Get options contracts #
GET /mp/unicornbay/options/eod Get end-of-day options data #
GET /mp/unicornbay/options/underlying-symbols List underlying symbols with options #

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/eodhd-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 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

eodhd-options-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: EODHD Financial Data 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.
      responses:
        '200':
          description: Contracts list.
          content:
            application/json:
              schema:
                type: object
                required:
                - meta
                - data
                - links
                properties:
                  meta:
                    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
                  data:
                    type: array
                    items:
                      type: object
                      required:
                      - id
                      - type
                      - attributes
                      properties:
                        id:
                          type: string
                        type:
                          type: string
                          const: options-contracts
                        attributes:
                          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
                      additionalProperties: false
                  links:
                    type: object
                    required:
                    - next
                    properties:
                      next:
                        type:
                        - string
                        - 'null'
                        description: URL to fetch the next page, or null if last page.
                    additionalProperties: false
                additionalProperties: false
              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:
                type: object
                properties:
                  status:
                    type: integer
                  error:
                    type: string
                  message:
                    type: string
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                  error:
                    type: string
                  message:
                    type: string
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                  error:
                    type: string
                  message:
                    type: string
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                  error:
                    type: string
                  message:
                    type: string
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                  error:
                    type: string
                  message:
                    type: string
      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.
      responses:
        '200':
          description: EOD options data (standard or compact).
          content:
            application/json:
              schema:
                oneOf:
                - type: object
                  required:
                  - meta
                  - data
                  - links
                  properties:
                    meta:
                      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
                    data:
                      type: array
                      items:
                        type: object
                        required:
                        - id
                        - type
                        - attributes
                        properties:
                          id:
                            type: string
                          type:
                            type: string
                            const: options-eod
                          attributes:
                            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
                        additionalProperties: false
                    links:
                      type: object
                      required:
                      - next
                      properties:
                        next:
                          type:
                          - string
                          - 'null'
                          description: URL to fetch the next page, or null if last page.
                      additionalProperties: false
                  additionalProperties: false
                - type: object
                  required:
                  - meta
                  - data
                  - links
                  properties:
                    meta:
                      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
                    data:
                      type: array
                      items:
                        type: array
                        items:
                          type:
                          - string
                          - number
                          - integer
                          - 'null'
                        description: Row aligned to

# --- truncated at 32 KB (43 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/eodhd/refs/heads/main/openapi/eodhd-options-api-openapi.yml