{
  "openapi": "3.0.1",
  "info": {
    "title": "Yahoo Finance Scraper - Stocks, Quotes, Financials & News",
    "description": "Scrape Yahoo Finance for stocks, ETFs, crypto, currencies, indices & futures: live quotes, company profiles, valuation, full financial statements, analyst ratings & price targets, holders, earnings, dividends, historical OHLCV prices, news & trending. Monitor mode, no login, no key, no browser.",
    "version": "0.1",
    "x-build-id": "yTsi8aDhXAaBcd0ya"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapesage~yahoo-finance-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapesage-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/scrapesage~yahoo-finance-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapesage-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/scrapesage~yahoo-finance-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapesage-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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "tickers",
              "historical",
              "news",
              "search",
              "trending"
            ],
            "type": "string",
            "description": "What to scrape. tickers = full record per symbol (quote + profile + valuation + financial statements + analyst ratings + holders + earnings). historical = OHLCV price history per symbol. news = recent news articles per symbol. search = resolve company names/keywords to ticker symbols. trending = today's trending tickers for a region.",
            "default": "tickers"
          },
          "tickers": {
            "title": "Ticker symbols",
            "type": "array",
            "description": "Yahoo Finance symbols to scrape — stocks (AAPL, MSFT, TSLA), ETFs (SPY, VOO), crypto (BTC-USD, ETH-USD), currencies (EURUSD=X), indices (^GSPC, ^IXIC) or futures (CL=F, GC=F). Used by every mode except search.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Company names / keywords",
            "type": "array",
            "description": "Company names or keywords resolved to ticker symbols automatically (e.g. \"Tesla\", \"Apple\", \"Coinbase\"). In tickers/historical/news mode the best match is scraped; in search mode every match is returned.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Yahoo Finance quote URLs",
            "type": "array",
            "description": "Paste Yahoo Finance quote URLs straight from your browser (e.g. https://finance.yahoo.com/quote/AAPL). The symbol is extracted automatically.",
            "items": {
              "type": "string"
            }
          },
          "includeProfile": {
            "title": "Include company profile",
            "type": "boolean",
            "description": "Tickers mode: include sector, industry, employees, website, address, business summary, officers and governance risk scores.",
            "default": true
          },
          "includeFinancials": {
            "title": "Include financial statements",
            "type": "boolean",
            "description": "Tickers mode: include condensed annual income statement, balance sheet and cash-flow statement (last 4 fiscal years) plus earnings history.",
            "default": true
          },
          "includeAnalystRatings": {
            "title": "Include analyst ratings",
            "type": "boolean",
            "description": "Tickers mode: include analyst price targets, recommendation key/mean, the buy/hold/sell trend and recent upgrade/downgrade history.",
            "default": true
          },
          "includeHolders": {
            "title": "Include institutional & insider holders",
            "type": "boolean",
            "description": "Tickers mode: include % held by institutions/insiders, the top institutional holders and recent insider holders.",
            "default": true
          },
          "includeNews": {
            "title": "Attach news to ticker records",
            "type": "boolean",
            "description": "Tickers mode: attach the latest headlines (title, publisher, link, date) to each ticker record.",
            "default": false
          },
          "newsPerTicker": {
            "title": "News articles per symbol",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Max news articles per symbol (used by news mode and by 'attach news').",
            "default": 10
          },
          "range": {
            "title": "Historical range",
            "enum": [
              "1d",
              "5d",
              "1mo",
              "3mo",
              "6mo",
              "1y",
              "2y",
              "5y",
              "10y",
              "ytd",
              "max"
            ],
            "type": "string",
            "description": "Historical mode: how far back to pull prices.",
            "default": "1mo"
          },
          "interval": {
            "title": "Historical interval",
            "enum": [
              "1m",
              "5m",
              "15m",
              "30m",
              "1h",
              "1d",
              "1wk",
              "1mo"
            ],
            "type": "string",
            "description": "Historical mode: candle size. Intraday intervals (1m–1h) only work with short ranges (≤ a few days).",
            "default": "1d"
          },
          "trendingRegion": {
            "title": "Trending region",
            "type": "string",
            "description": "Trending mode: 2-letter region for trending tickers (US, GB, DE, FR, IN, AU, CA, HK, BR, …).",
            "default": "US"
          },
          "enrichTrending": {
            "title": "Enrich trending into full records",
            "type": "boolean",
            "description": "Trending mode: pull the full ticker record (quote + financials + analyst + holders) for each trending symbol instead of a lightweight lookup.",
            "default": false
          },
          "maxLookupsPerQuery": {
            "title": "Max matches per query",
            "minimum": 1,
            "maximum": 25,
            "type": "integer",
            "description": "Search mode: how many matching symbols to return per query.",
            "default": 8
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "type": "integer",
            "description": "Global cap on the number of records pushed to the dataset across all inputs.",
            "default": 50
          },
          "monitorMode": {
            "title": "Monitor mode (only new / changed)",
            "type": "boolean",
            "description": "Remember what was returned in previous runs (in a named key-value store) and emit only NEW or CHANGED items next time: new news articles, new daily price bars, freshly trending symbols, or tickers whose analyst rating / earnings date changed. Pair with an Apify Schedule — the schedule decides WHEN to run, monitor mode decides WHAT is new. They compose without conflict.",
            "default": false
          },
          "monitorStoreName": {
            "title": "Monitor store name",
            "type": "string",
            "description": "Name of the key-value store that holds the monitor's memory. Use different names to track different watchlists independently. Lowercase letters, digits and hyphens only.",
            "default": "yahoo-finance-monitor"
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 12,
            "type": "integer",
            "description": "How many symbols to fetch in parallel.",
            "default": 5
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy settings. Apify Proxy (default) is recommended — Yahoo Finance binds a cookie + crumb to the egress IP, and the actor rotates a fresh sticky session automatically on any rate-limit. The automatic datacenter pool works well; switch to residential if you hit persistent rate-limits.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}