{
  "openapi": "3.0.1",
  "info": {
    "title": "Yahoo Finance Options & Volatility Intelligence",
    "description": "Full option chains from Yahoo Finance plus derived signals: put/call ratios, ATM implied volatility, IV skew, max pain and unusual-activity flags. Keyless, any US-listed ticker.",
    "version": "0.1",
    "x-build-id": "ShxjaMTXQ4a5icnhI"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/straightforward_hydra~yahoo-finance-options-volatility-intelligence/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-straightforward_hydra-yahoo-finance-options-volatility-intelligence",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/straightforward_hydra~yahoo-finance-options-volatility-intelligence/runs": {
      "post": {
        "operationId": "runs-sync-straightforward_hydra-yahoo-finance-options-volatility-intelligence",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/straightforward_hydra~yahoo-finance-options-volatility-intelligence/run-sync": {
      "post": {
        "operationId": "run-sync-straightforward_hydra-yahoo-finance-options-volatility-intelligence",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "symbols"
        ],
        "properties": {
          "symbols": {
            "title": "Tickers",
            "type": "array",
            "description": "One or more underlying symbols, e.g. AAPL, SPY, NVDA, TSLA. Index options use their Yahoo symbol (^SPX, ^VIX).",
            "default": [
              "AAPL"
            ],
            "items": {
              "type": "string"
            }
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "metrics",
              "chain",
              "unusual"
            ],
            "type": "string",
            "description": "chain = one row per contract. metrics = one summary row per expiration (put/call ratio, ATM IV, skew, max pain). unusual = only contracts whose volume outruns open interest.",
            "default": "metrics"
          },
          "maxExpirations": {
            "title": "Expirations to fetch",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "How many of the nearest expirations to pull per ticker. Ignored if you set explicit expiration dates below.",
            "default": 3
          },
          "expirationDates": {
            "title": "Specific expirations (optional)",
            "type": "array",
            "description": "Exact expiration dates as YYYY-MM-DD. Overrides \"Expirations to fetch\". Dates that aren't listed for a ticker are reported and skipped.",
            "items": {
              "type": "string"
            }
          },
          "optionType": {
            "title": "Calls / puts",
            "enum": [
              "all",
              "calls",
              "puts"
            ],
            "type": "string",
            "description": "Restrict to one side of the chain. Metrics mode needs both sides to compute ratios and skew — leave on \"All\" for it.",
            "default": "all"
          },
          "strikeRangePct": {
            "title": "Strike range around spot (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Keep only strikes within this percentage of the underlying price — the usual way to cut a 1,500-contract chain down to the strikes that trade. 0 = keep every strike.",
            "default": 25
          },
          "skewPct": {
            "title": "Skew distance (%)",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Moneyness used for the IV skew measure: IV of the put this far below spot minus IV of the call this far above it. Yahoo publishes no greeks, so skew is measured by distance from spot, not by delta.",
            "default": 10
          },
          "minVolume": {
            "title": "Min volume (unusual mode)",
            "minimum": 0,
            "type": "integer",
            "description": "Ignore contracts trading fewer than this many times today.",
            "default": 100
          },
          "minVolOiRatio": {
            "title": "Min volume / open interest (unusual mode)",
            "minimum": 0,
            "type": "integer",
            "description": "Flag contracts whose volume is at least this multiple of open interest. 1 = today's trading exceeded every standing contract, the classic new-position tell.",
            "default": 1
          },
          "proxyConfiguration": {
            "title": "Proxy (recommended)",
            "type": "object",
            "description": "Yahoo rate-limits its cookie/crumb handshake per IP. Leave the proxy on if you see handshake or 401 warnings.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}