Polygon · Capability

Polygon Options REST API — Snapshots

Options — Snapshots. 2 operations. Lead operation: Get Option Contract Snapshot. Self-contained Naftiko capability covering one Polygon business surface.

Run with Naftiko PolygonOptionsSnapshots

What You Can Do

GET
Getoptioncontractsnapshot — Get Option Contract Snapshot
/v1/v3/snapshot/options/{underlying-asset}/{option-contract}
GET
Getoptionschainsnapshot — Get Options Chain Snapshot
/v1/v3/snapshot/options/{underlying-asset}

MCP Tools

get-option-contract-snapshot

Get Option Contract Snapshot

read-only idempotent
get-options-chain-snapshot

Get Options Chain Snapshot

read-only idempotent

Capability Spec

options-snapshots.yaml Raw ↑
naftiko: "1.0.0-alpha2"

info:
  label: "Polygon Options REST API — Snapshots"
  description: >-
    Options — Snapshots. 2 operations. Lead operation: Get Option Contract Snapshot.
    Self-contained Naftiko capability covering one Polygon business surface.
  tags:
    - Polygon
    - Options
    - Snapshots
  created: "2026-05-29"
  modified: "2026-05-29"

binds:
  - namespace: env
    keys:
      POLYGON_API_KEY: POLYGON_API_KEY

capability:

  consumes:
    - type: http
      namespace: "options-snapshots"
      baseUri: "https://api.polygon.io"
      description: "Polygon Options REST API — Snapshots business capability."
      authentication:
        type: bearer
        token: "{{env.POLYGON_API_KEY}}"
      resources:
        - name: "snapshot-options-underlyingasset-optioncontract"
          path: "/v3/snapshot/options/{underlyingAsset}/{optionContract}"
          operations:
            - name: "getOptionContractSnapshot"
              method: GET
              description: "Get Option Contract Snapshot"
              inputParameters:
                - name: "underlyingAsset"
                  in: path
                  type: string
                  required: true
                - name: "optionContract"
                  in: path
                  type: string
                  required: true
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "snapshot-options-underlyingasset"
          path: "/v3/snapshot/options/{underlyingAsset}"
          operations:
            - name: "getOptionsChainSnapshot"
              method: GET
              description: "Get Options Chain Snapshot"
              inputParameters:
                - name: "underlyingAsset"
                  in: path
                  type: string
                  required: true
                - name: "strike_price"
                  in: query
                  type: number
                  required: false
                - name: "expiration_date"
                  in: query
                  type: string
                  required: false
                - name: "contract_type"
                  in: query
                  type: string
                  required: false
                - name: "limit"
                  in: query
                  type: integer
                  required: false
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."

  exposes:
    - type: rest
      namespace: "options-snapshots-rest"
      port: 8080
      description: "REST adapter for Polygon Options REST API — Snapshots."
      resources:
        - path: "/v1/v3/snapshot/options/{underlying-asset}/{option-contract}"
          name: "snapshot-options-underlyingasset-optioncontract"
          description: "REST surface for snapshot-options-underlyingasset-optioncontract."
          operations:
            - method: GET
              name: "getOptionContractSnapshot"
              description: "Get Option Contract Snapshot"
              call: "options-snapshots.getOptionContractSnapshot"
              with:
                underlyingAsset: "rest.underlyingAsset"
                optionContract: "rest.optionContract"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/v3/snapshot/options/{underlying-asset}"
          name: "snapshot-options-underlyingasset"
          description: "REST surface for snapshot-options-underlyingasset."
          operations:
            - method: GET
              name: "getOptionsChainSnapshot"
              description: "Get Options Chain Snapshot"
              call: "options-snapshots.getOptionsChainSnapshot"
              with:
                underlyingAsset: "rest.underlyingAsset"
                strike_price: "rest.strike_price"
                expiration_date: "rest.expiration_date"
                contract_type: "rest.contract_type"
                limit: "rest.limit"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      namespace: "options-snapshots-mcp"
      port: 9090
      transport: http
      description: "MCP adapter for Polygon Options REST API — Snapshots."
      tools:
        - name: "get-option-contract-snapshot"
          description: "Get Option Contract Snapshot"
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "options-snapshots.getOptionContractSnapshot"
          with:
            underlyingAsset: "tools.underlyingAsset"
            optionContract: "tools.optionContract"
          outputParameters:
            - type: object
              mapping: "$."
        - name: "get-options-chain-snapshot"
          description: "Get Options Chain Snapshot"
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "options-snapshots.getOptionsChainSnapshot"
          with:
            underlyingAsset: "tools.underlyingAsset"
            strike_price: "tools.strike_price"
            expiration_date: "tools.expiration_date"
            contract_type: "tools.contract_type"
            limit: "tools.limit"
          outputParameters:
            - type: object
              mapping: "$."