{
  "openapi": "3.0.1",
  "info": {
    "title": "Yahoo Finance Scraper, API & MCP – History, Options, Financials",
    "description": "Yahoo Finance API alternative: stock quotes, historical prices, options chains with Greeks, financial statements, holders, insider trades, analyst ratings, earnings, SEC filings, news, screeners and symbol search, for stocks on 45 exchanges, ETFs, funds, indices, crypto, forex and futures.",
    "version": "0.3",
    "x-build-id": "NOaqr8eh6Ffqhe55m"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/akhil_rajesh~yahoo-finance-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-akhil_rajesh-yahoo-finance-scraper",
        "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/akhil_rajesh~yahoo-finance-scraper/runs": {
      "post": {
        "operationId": "runs-sync-akhil_rajesh-yahoo-finance-scraper",
        "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/akhil_rajesh~yahoo-finance-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-akhil_rajesh-yahoo-finance-scraper",
        "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",
        "properties": {
          "tickers": {
            "title": "Tickers, company names or ISINs",
            "type": "array",
            "description": "Yahoo Finance tickers, company names or ISINs, one per line (up to 1,000): stocks (AAPL, BRK.B), other exchanges with Yahoo's suffix (VOD.L London, SAP.DE Xetra, RELIANCE.NS India, 7203.T Tokyo, SHOP.TO Toronto), ETFs and funds (SPY, VFIAX), indices (^GSPC, ^FTSE), crypto (BTC-USD), currencies (EURUSD=X) and futures (GC=F). A company name in lower or mixed case ('Reliance Industries', 'nestle') is looked up on Yahoo's search, and an ISIN (US0378331005) gives its listing; a word in capitals is read as a ticker. An Indian ticker without its suffix (JIOFIN, TCS) is read on the NSE, then the BSE, when Yahoo has no US ticker of that name. An exchange code alone (7203) is Yahoo's first listing under it. An input Yahoo doesn't know, or lists without data, gets a free 'not found' row with Yahoo's suggestions.",
            "items": {
              "type": "string"
            }
          },
          "includeFundamentals": {
            "title": "Include fundamentals",
            "type": "boolean",
            "description": "Add each ticker's company profile (sector, industry, employees, description, officers), margins, revenue, cash and debt, valuation ratios, analyst price targets and ratings, next earnings date, insider and institution holdings, and for ETFs and funds their family, category, fees, assets, top holdings and sector weights.",
            "default": true
          },
          "includeOwnership": {
            "title": "Include holders and insider trades",
            "type": "boolean",
            "description": "Add a row per top holder (Yahoo's 10 largest institutions, 10 largest funds and the insiders: shares, value, % held, % change, date reported) and per insider transaction (who, role, date, sale, purchase or gift, shares, value), plus insiders' buying and selling over 6 months on the quote row. Mostly US-listed companies.",
            "default": false
          },
          "includeAnalysis": {
            "title": "Include analyst ratings, earnings and estimates",
            "type": "boolean",
            "description": "Add a row per analyst rating change (firm, upgrade, downgrade or maintain, grades, price target and the one before), per reported quarter (EPS against the estimate, surprise %, report date) and per estimate period (this and next quarter and year: EPS and revenue estimates, analysts, growth, EPS trend over 90 days, revisions up and down). Off unless switched on; an API call that changes one of its options (such as ratingChangesPerTicker) without it switches it on."
          },
          "ratingChangesPerTicker": {
            "title": "Rating changes per ticker",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "The newest analyst rating changes to read per ticker (up to 1,000; Yahoo has hundreds for large US companies).",
            "default": 25
          },
          "includeSecFilings": {
            "title": "Include SEC filings",
            "type": "boolean",
            "description": "Add a row per SEC filing (10-K, 10-Q, 8-K, proxy ...): date, type, title, Yahoo's page for it and the documents filed. US-listed companies and ADRs. Off unless switched on; an API call that changes one of its options (such as secFilingsPerTicker) without it switches it on."
          },
          "secFilingsPerTicker": {
            "title": "SEC filings per ticker",
            "minimum": 1,
            "maximum": 250,
            "type": "integer",
            "description": "The newest filings to read per ticker (up to 250).",
            "default": 20
          },
          "includeHistory": {
            "title": "Include price history",
            "type": "boolean",
            "description": "Add the price history: date, open, high, low, close, adjusted close, volume, and the dividends and splits. Off unless switched on; an API call that changes one of its options (such as historyRange) without it switches it on."
          },
          "historyRange": {
            "title": "Period",
            "enum": [
              "1d",
              "5d",
              "1mo",
              "3mo",
              "6mo",
              "ytd",
              "1y",
              "2y",
              "5y",
              "10y",
              "max"
            ],
            "type": "string",
            "description": "How far back the history goes. 'All available' reads every daily bar Yahoo has (AAPL since 1980), not the quarterly bars Yahoo's own 'max' gives. Start and end dates, when set, are used instead.",
            "default": "1mo"
          },
          "historyInterval": {
            "title": "Interval",
            "enum": [
              "1m",
              "2m",
              "5m",
              "15m",
              "30m",
              "60m",
              "90m",
              "1h",
              "1d",
              "5d",
              "1wk",
              "1mo",
              "3mo"
            ],
            "type": "string",
            "description": "One bar per interval. Yahoo keeps intraday bars only for a while: 1 minute for the last 7 days, 2 to 90 minutes for 60 days, hourly for 2 years; a longer period is cut to that, and the run says so.",
            "default": "1d"
          },
          "historyStartDate": {
            "title": "Start date",
            "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
            "type": "string",
            "description": "Optional: the first day of the history (YYYY-MM-DD), instead of the period."
          },
          "historyEndDate": {
            "title": "End date",
            "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
            "type": "string",
            "description": "Optional: the last day of the history (YYYY-MM-DD). Today when left empty; without a start date the period counts back from it."
          },
          "historyFormat": {
            "title": "Price history output",
            "enum": [
              "rows",
              "series"
            ],
            "type": "string",
            "description": "One row per bar (good for spreadsheets; each bar is a data point), or one row per ticker holding the whole series as lists, oldest first (charged as one result: 10 years of daily bars for 100 tickers costs about the same as 100 quotes).",
            "default": "rows"
          },
          "includePrePost": {
            "title": "Pre-market and after-hours bars",
            "type": "boolean",
            "description": "With an intraday interval, add the pre-market and after-hours bars; each bar says its session (pre, regular or post).",
            "default": false
          },
          "includeFinancials": {
            "title": "Include financial statements",
            "type": "boolean",
            "description": "Add a row per reported period with its income statement, balance sheet and cash flow: revenue, gross profit, operating income, net income, EBITDA, EPS, assets, liabilities, equity, cash, debt, operating and free cash flow, buybacks, dividends paid (about 4 years and 5 quarters). Companies only. Off unless switched on; an API call that changes one of its options (such as financialsPeriod) without it switches it on."
          },
          "financialsPeriod": {
            "title": "Statements",
            "enum": [
              "annual",
              "quarterly",
              "both"
            ],
            "type": "string",
            "description": "Annual, quarterly or both.",
            "default": "annual"
          },
          "includeNews": {
            "title": "Include news",
            "type": "boolean",
            "description": "Add Yahoo Finance's latest headlines tagged with each ticker: title, publisher, link, time, and the other tickers it names. Coverage is best for US companies. Off unless switched on; an API call that changes one of its options (such as newsPerTicker) without it switches it on."
          },
          "newsPerTicker": {
            "title": "News per ticker",
            "minimum": 1,
            "maximum": 40,
            "type": "integer",
            "description": "Headlines per ticker, newest first (up to 40).",
            "default": 10
          },
          "includeOptions": {
            "title": "Include options chains",
            "type": "boolean",
            "description": "Add the option contracts: call or put, expiration, strike, last price, bid, ask, volume, open interest, implied volatility, in the money, days to expiration and the Greeks. Yahoo lists options for US stocks, ETFs and indices. Off unless switched on; an API call that changes one of its options (such as optionExpirations) without it switches it on."
          },
          "optionExpirations": {
            "title": "Expirations",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "How many expiration dates to read, nearest first; 0 reads all of them (up to 100).",
            "default": 1
          },
          "optionExpirationDates": {
            "title": "Expiration dates",
            "type": "array",
            "description": "Optional: read these expirations (YYYY-MM-DD) instead of the nearest ones. A date with no expiration is named in the status message with the nearest one.",
            "items": {
              "type": "string"
            }
          },
          "optionType": {
            "title": "Calls or puts",
            "enum": [
              "both",
              "calls",
              "puts"
            ],
            "type": "string",
            "description": "Both, or only calls or only puts.",
            "default": "both"
          },
          "optionStrikeRangePercent": {
            "title": "Strike range (%)",
            "minimum": 0,
            "maximum": 1000,
            "type": "number",
            "description": "Only strikes within this percentage of the underlying's price (10 keeps strikes from 90% to 110% of it; 2.5 is allowed); 0 keeps every strike.",
            "default": 0
          },
          "optionMinVolume": {
            "title": "Minimum volume",
            "minimum": 0,
            "type": "integer",
            "description": "Only contracts traded at least this many times today; 0 keeps all.",
            "default": 0
          },
          "optionMinOpenInterest": {
            "title": "Minimum open interest",
            "minimum": 0,
            "type": "integer",
            "description": "Only contracts with at least this open interest; 0 keeps all. Filters apply before anything is stored or charged.",
            "default": 0
          },
          "includeGreeks": {
            "title": "Greeks",
            "type": "boolean",
            "description": "Delta, gamma, theta (per day), vega and rho (per percentage point) by the Black-Scholes-Merton model, with the 13-week T-bill rate, a carry (implied by put-call parity for an expiration a week or more away, else the dividend yield) and the volatility solved from each contract's price with them. Empty for a contract with no price.",
            "default": true
          },
          "optionsFormat": {
            "title": "Options output",
            "enum": [
              "rows",
              "chain"
            ],
            "type": "string",
            "description": "One row per contract (each a data point), or one row per expiration with its calls and puts as lists (charged as one result).",
            "default": "rows"
          },
          "screeners": {
            "title": "Screeners",
            "type": "array",
            "description": "Yahoo Finance's ranked lists, read as rows with each one's quote: day gainers, day losers, most actives, 52-week gainers and losers, trending and most watched tickers, ETFs, crypto, undervalued growth stocks, most shorted stocks, top mutual funds and more. Leave empty to read only your tickers; clear the tickers above to read only the lists.",
            "items": {
              "type": "string",
              "enum": [
                "day_gainers",
                "day_losers",
                "most_actives",
                "undervalued_growth_stocks",
                "growth_technology_stocks",
                "undervalued_large_caps",
                "aggressive_small_caps",
                "small_cap_gainers",
                "most_shorted_stocks",
                "top_mutual_funds",
                "portfolio_anchors",
                "solid_large_growth_funds",
                "solid_midcap_growth_funds",
                "conservative_foreign_funds",
                "high_yield_bond",
                "fifty_two_wk_gainers",
                "fifty_two_wk_losers",
                "most_watched_tickers",
                "trending_tickers",
                "most_actives_etfs",
                "top_etfs_us",
                "top_performing_etfs",
                "all_cryptocurrencies_us",
                "day_gainers_cryptocurrencies",
                "day_losers_cryptocurrencies",
                "most_actives_cryptocurrencies"
              ],
              "enumTitles": [
                "Day gainers",
                "Day losers",
                "Most actives",
                "Undervalued growth stocks",
                "Growth technology stocks",
                "Undervalued large caps",
                "Aggressive small caps",
                "Small cap gainers",
                "Most shorted stocks",
                "Top mutual funds",
                "Portfolio anchors",
                "Solid large growth funds",
                "Solid mid-cap growth funds",
                "Conservative foreign funds",
                "High yield bond funds",
                "52-week gainers",
                "52-week losers",
                "Most watched (added to watchlists)",
                "Trending tickers (US)",
                "Most active ETFs",
                "Top ETFs",
                "Top performing ETFs",
                "Cryptocurrencies by market cap",
                "Crypto gainers",
                "Crypto losers",
                "Most active crypto"
              ]
            }
          },
          "screenerRegion": {
            "title": "Screener market",
            "enum": [
              "US",
              "IN",
              "GB",
              "CA",
              "AU",
              "DE",
              "FR",
              "IT",
              "ES",
              "NL",
              "CH",
              "SE",
              "HK",
              "JP",
              "KR",
              "TW",
              "SG",
              "BR",
              "MX",
              "ZA",
              "SA"
            ],
            "type": "string",
            "description": "The market of the day gainers, day losers and most actives: India, the UK, Canada, Japan and more, by Yahoo's own criteria for its US lists (price change, company size, volume). A company listed on both the NSE and the BSE comes once. The other screeners are Yahoo's US lists.",
            "default": "US"
          },
          "screenerResults": {
            "title": "Results per screener",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "How many of each screener's list to read, in its order (up to 1,000; trending tickers up to 100).",
            "default": 25
          },
          "searchQueries": {
            "title": "Symbol search",
            "type": "array",
            "description": "Optional: words to find tickers by (up to 50), such as 'lithium', 'semiconductor' or 'vanguard': a row per matching stock, ETF, fund, index, future, currency or coin, with its exchange, industry, price and change, in Yahoo's order.",
            "items": {
              "type": "string"
            }
          },
          "searchType": {
            "title": "Search type",
            "enum": [
              "all",
              "equity",
              "etf",
              "mutualfund",
              "index",
              "future",
              "currency",
              "cryptocurrency"
            ],
            "type": "string",
            "description": "What the symbol search returns.",
            "default": "all"
          },
          "searchResults": {
            "title": "Results per search",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "How many symbols to read per search (up to 1,000).",
            "default": 25
          },
          "compactOutput": {
            "title": "Compact rows",
            "type": "boolean",
            "description": "Keep only the main fields of quote and screener rows (about 35 of 140): smaller results for AI agents, chat tools and quick looks.",
            "default": false
          },
          "proxy": {
            "title": "Proxy",
            "type": "object",
            "description": "Not needed: Yahoo Finance answers Apify's servers directly. Apify's datacenter proxy or your own proxies can be used; residential and other per-GB proxies aren't available."
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}