> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arrays.org/llms.txt
> Use this file to discover all available pages before exploring further.

# List Options Contracts

> [OpenAPI JSON Spec](/docs/output/v1_options_contracts_get.json)
Query options contracts by underlying symbol with optional filters.
Returns contract metadata (no Greeks/pricing). Supports cursor pagination.

**Filters:**
- `is_expired`: `false` (default shows active), `true` (expired only), or `all`
- `options_ticker`: exact match for a specific contract
- `contract_type`: `call` or `put`
- `expiration_date_min`/`max`: YYYY-MM-DD format
- `strike_price_min`/`max`: numeric
- `exercise_style`: `american` or `european`

**Response fields:**
- `options_ticker`: OCC-format ticker (e.g. O:SPY260620C00570000)
- `underlying_symbol`, `contract_type`, `exercise_style`
- `expiration_date` (YYYY-MM-DD), `strike_price`, `shares_per_contract`
- `primary_exchange`, `cfi`, `is_expired`



## OpenAPI

````yaml /api-reference/openapi.json get /v1/options/contracts
openapi: 3.0.0
info:
  contact: {}
  description: >-
    Welcome to Arrays!


    Arrays is a unified financial data layer for both financial institutions and
    retail users, delivering comprehensive market data across crypto and equity
    markets. Our datasets cover fundamentals, ETFs, options, crypto, and more.


    Visit [arrays.org](https://arrays.org) to request an API key and start your
    free trial. You can explore our full API offerings in the documentation
    below.


    For any questions regarding APIs or pricing, please contact
    support@arrays.org.
  title: Arrays API
  version: '1.0'
servers:
  - url: https://data-tools.prd.arrays.org/api
security: []
paths:
  /v1/options/contracts:
    get:
      tags:
        - Options
      summary: List Options Contracts
      description: >-
        [OpenAPI JSON Spec](/docs/output/v1_options_contracts_get.json)

        Query options contracts by underlying symbol with optional filters.

        Returns contract metadata (no Greeks/pricing). Supports cursor
        pagination.


        **Filters:**

        - `is_expired`: `false` (default shows active), `true` (expired only),
        or `all`

        - `options_ticker`: exact match for a specific contract

        - `contract_type`: `call` or `put`

        - `expiration_date_min`/`max`: YYYY-MM-DD format

        - `strike_price_min`/`max`: numeric

        - `exercise_style`: `american` or `european`


        **Response fields:**

        - `options_ticker`: OCC-format ticker (e.g. O:SPY260620C00570000)

        - `underlying_symbol`, `contract_type`, `exercise_style`

        - `expiration_date` (YYYY-MM-DD), `strike_price`, `shares_per_contract`

        - `primary_exchange`, `cfi`, `is_expired`
      parameters:
        - description: Underlying symbol (e.g. SPY, AAPL)
          in: query
          name: symbol
          required: true
          schema:
            type: string
        - description: Exact options contract ticker
          in: query
          name: options_ticker
          schema:
            type: string
        - description: 'Expired filter: false (default), true, or all'
          in: query
          name: is_expired
          schema:
            type: string
            enum:
              - 'true'
              - 'false'
              - all
        - description: Contract type
          in: query
          name: contract_type
          schema:
            type: string
            enum:
              - call
              - put
        - description: Min expiration date (YYYY-MM-DD)
          in: query
          name: expiration_date_min
          schema:
            type: string
        - description: Max expiration date (YYYY-MM-DD)
          in: query
          name: expiration_date_max
          schema:
            type: string
        - description: Min strike price
          in: query
          name: strike_price_min
          schema:
            type: number
        - description: Max strike price
          in: query
          name: strike_price_max
          schema:
            type: number
        - description: Exercise style
          in: query
          name: exercise_style
          schema:
            type: string
            enum:
              - american
              - european
        - description: Sort field
          in: query
          name: sort_by
          schema:
            type: string
            enum:
              - expiration_date
              - strike_price
              - options_ticker
        - description: Sort direction
          in: query
          name: sort_order
          schema:
            type: string
            enum:
              - asc
              - desc
        - description: Pagination cursor from previous response
          in: query
          name: cursor
          schema:
            type: string
        - description: Results per page (default 100, max 1000)
          in: query
          name: limit
          schema:
            type: integer
      responses:
        '200':
          description: Contract list
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/model.APIResponse'
                  - properties:
                      data:
                        items:
                          $ref: '#/components/schemas/model.OptionsContractData'
                        type: array
                      pagination:
                        $ref: '#/components/schemas/model.CursorPagination'
                    type: object
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/model.APIResponse'
                  - properties:
                      error:
                        $ref: '#/components/schemas/model.APIError'
                    type: object
        '500':
          description: Server error
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/model.APIResponse'
                  - properties:
                      error:
                        $ref: '#/components/schemas/model.APIError'
                    type: object
      security:
        - ApiKeyAuth: []
components:
  schemas:
    model.APIResponse:
      properties:
        data: {}
        error:
          $ref: '#/components/schemas/model.APIError'
        metadata: {}
        pagination: {}
        request_id:
          type: string
        success:
          type: boolean
      type: object
    model.OptionsContractData:
      properties:
        cfi:
          type: string
        contract_type:
          type: string
        exercise_style:
          type: string
        expiration_date:
          type: string
        is_expired:
          type: boolean
        options_ticker:
          type: string
        primary_exchange:
          type: string
        shares_per_contract:
          type: integer
        strike_price:
          type: number
        underlying_symbol:
          type: string
      type: object
    model.CursorPagination:
      properties:
        cursor:
          type: string
        has_more:
          type: boolean
        limit:
          type: integer
      type: object
    model.APIError:
      properties:
        code:
          example: RESOURCE_NOT_FOUND
          type: string
        details:
          items:
            $ref: '#/components/schemas/model.APIErrorDetail'
          type: array
        docs_url:
          type: string
        examples:
          items:
            type: string
          type: array
        hint:
          type: string
        message:
          example: The requested resource was not found.
          type: string
        suggestions:
          items:
            type: string
          type: array
      type: object
    model.APIErrorDetail:
      properties:
        field:
          type: string
        got:
          type: string
        reason:
          type: string
      type: object
  securitySchemes:
    ApiKeyAuth:
      description: 'API Key authentication. Example: "your-api-key-here"'
      in: header
      name: X-API-Key
      type: apiKey

````