{
  "openapi": "3.0.1",
  "info": {
    "title": "Finance Yahoo Com Scraper [Just 💰$0.81]",
    "description": "Scrape Yahoo Finance screener lists into structured stock quotes: price, change, volume, market cap and valuation ratios per symbol, with optional company profile, dividends, splits and at-the-money option Greeks with open interest. Export as JSON or CSV.",
    "version": "0.1",
    "x-build-id": "9gjHytyK1EMP2zvqG"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/blackfalcondata~finance-yahoo-com-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-blackfalcondata-finance-yahoo-com-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/blackfalcondata~finance-yahoo-com-scraper/runs": {
      "post": {
        "operationId": "runs-sync-blackfalcondata-finance-yahoo-com-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/blackfalcondata~finance-yahoo-com-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-blackfalcondata-finance-yahoo-com-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": {
          "query": {
            "title": "🔍 Screener List",
            "type": "string",
            "description": "Which Yahoo Finance screener list to scrape, e.g. `most_actives`, `day_gainers`, `day_losers`, `growth_technology_stocks`, `undervalued_growth_stocks`, `aggressive_small_caps`, `small_cap_gainers`, `most_shorted_stocks`, `undervalued_large_caps`, `top_mutual_funds`, `high_yield_bond`. Use a JSON array for several lists in one run (e.g. `[\"day_gainers\",\"day_losers\"]`). Required if no tickers, search terms or startUrls provided."
          },
          "maxResults": {
            "title": "💯 Max Results",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum total quotes (0 = unlimited).",
            "default": 100
          },
          "startUrls": {
            "title": "🔗 Start URLs",
            "type": "array",
            "description": "Paste raw screener URLs from finance.yahoo.com. Each URL becomes its own task; results are merged and deduped by symbol across all URLs. When provided, startUrls REPLACE the screener list field (each supported URL becomes one task; unsupported URLs are skipped, and if none is supported the run stops with an input error).",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "tickers": {
            "title": "🎯 Tickers",
            "type": "array",
            "description": "Ticker symbols or Yahoo Finance quote URLs: `AAPL`, `SPY`, `BTC-USD`, `EURUSD=X`, `^GSPC`, `GC=F`. Overrides screeners when set; one quote per symbol, in the order given. Symbols Yahoo Finance does not know are skipped.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "searchTerms": {
            "title": "🔎 Search Terms",
            "type": "array",
            "description": "Company names, ISINs or other search terms (e.g. `Apple`, `US0378331005`). Each term is resolved to its top matching symbol and handled like a ticker.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "includeDetails": {
            "title": "📋 Include Company Profile & Statistics",
            "type": "boolean",
            "description": "Also fetch the company/fund profile and key statistics for each symbol (one extra request per symbol).",
            "default": true
          },
          "includeEvents": {
            "title": "💰 Include Dividends & Splits",
            "type": "boolean",
            "description": "Add each symbol's dividend payments and stock splits within the chosen period (one extra request per symbol).",
            "default": false
          },
          "eventsRange": {
            "title": "📅 Dividends & Splits Period",
            "enum": [
              "1y",
              "2y",
              "5y",
              "10y",
              "max"
            ],
            "type": "string",
            "description": "How far back to list dividends and splits. Only used with Include Dividends & Splits.",
            "default": "5y"
          },
          "includeGreeks": {
            "title": "📈 Include Option Greeks",
            "type": "boolean",
            "description": "Add the at-the-money call and put of the nearest expiration at least 7 days out (the nearest one if none is that far), with price, bid/ask, volume, open interest, implied volatility and Black-Scholes delta, gamma, theta (per day), vega (per 1 volatility point) and rho (per 1 percentage point of rate). Only for symbols that have listed options; others get empty values. One or two extra requests per symbol.",
            "default": false
          },
          "riskFreeRate": {
            "title": "🏦 Risk-Free Rate",
            "minimum": 0,
            "maximum": 0.2,
            "type": "number",
            "description": "Interest rate used for the Greeks, as a decimal (e.g. 0.043 for 4.3%). Leave empty to use the current 13-week US Treasury bill yield from Yahoo Finance. Only used with Include Option Greeks."
          },
          "includeHistory": {
            "title": "📉 Include Price History",
            "type": "boolean",
            "description": "Add OHLCV candles (open, high, low, close, adjusted close, volume) for each symbol in the field `history`, oldest first. One extra request per symbol.",
            "default": false
          },
          "historyRange": {
            "title": "📆 History Range",
            "enum": [
              "1d",
              "5d",
              "1mo",
              "3mo",
              "6mo",
              "1y",
              "2y",
              "5y",
              "10y",
              "ytd",
              "max"
            ],
            "type": "string",
            "description": "How far back the price history goes. Ignored when a History Start Date is set.",
            "default": "1mo"
          },
          "historyInterval": {
            "title": "⏱️ History Interval",
            "enum": [
              "1m",
              "2m",
              "5m",
              "15m",
              "30m",
              "60m",
              "90m",
              "1h",
              "1d",
              "5d",
              "1wk",
              "1mo",
              "3mo"
            ],
            "type": "string",
            "description": "Candle size. Intraday intervals (1m to 90m, 1h) only reach back a limited time on Yahoo Finance (1m about 7 days, others up to about 60 days) and carry ISO timestamps; daily and longer carry plain dates.",
            "default": "1d"
          },
          "historyStartDate": {
            "title": "📅 History Start Date",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Optional first day (YYYY-MM-DD). When set it replaces History Range."
          },
          "historyEndDate": {
            "title": "📅 History End Date",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Optional last day (YYYY-MM-DD). Defaults to today. Only used together with a History Start Date."
          },
          "includePrePost": {
            "title": "🌙 Include Pre/Post-Market",
            "type": "boolean",
            "description": "Include pre-market and after-hours candles in intraday history.",
            "default": false
          },
          "includeOptionChain": {
            "title": "⛓️ Include Option Chain",
            "type": "boolean",
            "description": "Add the full option chain (every call and put with price, bid/ask, volume, open interest, implied volatility and Greeks) for the next expirations, in the field `optionChain`. Greeks use the Risk-Free Rate setting. Only for symbols with listed options.",
            "default": false
          },
          "optionExpirations": {
            "title": "🗓️ Option Expirations",
            "minimum": 1,
            "maximum": 12,
            "type": "integer",
            "description": "How many upcoming expirations to include. Only used with Include Option Chain.",
            "default": 1
          },
          "includeFinancials": {
            "title": "🧾 Include Financial Statements",
            "type": "boolean",
            "description": "Add annual and quarterly income statement, balance sheet and cash flow lines (revenue, net income, EBITDA, EPS, total assets, debt, operating cash flow, free cash flow and more), newest first, in the field `financials`.",
            "default": false
          },
          "includeNews": {
            "title": "📰 Include News",
            "type": "boolean",
            "description": "Add the latest news headlines for each symbol (title, publisher, link, publish time, related tickers) in the field `news`.",
            "default": false
          },
          "newsCount": {
            "title": "📰 News Count",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Headlines per symbol. Only used with Include News.",
            "default": 10
          },
          "includeHolders": {
            "title": "🏛️ Include Holders",
            "type": "boolean",
            "description": "Add ownership breakdown plus top institutional and fund holders in the field `holders`.",
            "default": false
          },
          "includeInsiders": {
            "title": "🕴️ Include Insiders",
            "type": "boolean",
            "description": "Add insider roster and recent insider transactions in the field `insiders`.",
            "default": false
          },
          "includeCalendar": {
            "title": "🗓️ Include Calendar",
            "type": "boolean",
            "description": "Add upcoming earnings dates with EPS and revenue estimates, plus ex-dividend and dividend dates, in the field `calendar`.",
            "default": false
          },
          "includeEsg": {
            "title": "🌱 Include ESG Scores",
            "type": "boolean",
            "description": "Add ESG scores (total, environment, social, governance, controversy level) in the field `esg`. Only available for some companies; others get an empty value.",
            "default": false
          },
          "compact": {
            "title": "📦 Compact Output",
            "type": "boolean",
            "description": "Core fields only (for AI-agent/MCP workflows).",
            "default": false
          },
          "excludeEmptyFields": {
            "title": "Exclude empty fields from output",
            "type": "boolean",
            "description": "Drop null, empty-string, and empty-array fields from each record before push. Smaller payloads for AI agents and dashboards.",
            "default": false
          },
          "incrementalMode": {
            "title": "♻️ Incremental Mode",
            "type": "boolean",
            "description": "Compare against previous run state. stateKey is optional — defaults to a value derived from search inputs (queries, locations, startUrls, country) so different filter sets never share state.",
            "default": false
          },
          "stateKey": {
            "title": "🔑 State Key",
            "type": "string",
            "description": "Optional. Stable identifier for the tracked search universe. Leave empty to auto-generate from search inputs."
          },
          "skipReposts": {
            "title": "🚫 Skip Reposts",
            "type": "boolean",
            "description": "When incremental, skip quotes whose content matches an expired listing from a prior run (cross-run duplicate detection).",
            "default": false
          },
          "emitUnchanged": {
            "title": "🔄 Emit Unchanged Quotes",
            "type": "boolean",
            "description": "When incremental mode is on, also emit quotes whose content has not changed since the last run.",
            "default": false
          },
          "emitExpired": {
            "title": "⚰️ Emit Expired Quotes",
            "type": "boolean",
            "description": "When incremental mode is on, also emit quotes that were seen before but are no longer found.",
            "default": false
          },
          "notifyOnlyChanges": {
            "title": "🔄 Notify Only New/Updated",
            "type": "boolean",
            "description": "When Incremental Mode is on, only send notifications for NEW and UPDATED quotes. Has no effect outside incremental mode.",
            "default": false
          },
          "notificationLimit": {
            "title": "📊 Max Quotes Per Notification",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum number of quotes included in each notification message (1–20).",
            "default": 5
          },
          "telegramToken": {
            "title": "🔑 Telegram Bot Token",
            "type": "string",
            "description": "Telegram bot token (from @BotFather). Required for Telegram notifications."
          },
          "telegramChatId": {
            "title": "💬 Telegram Chat ID",
            "type": "string",
            "description": "Telegram chat or channel ID (e.g. \"-100123456789\"). Required when telegramToken is set."
          },
          "discordWebhookUrl": {
            "title": "🎮 Discord Webhook URL",
            "type": "string",
            "description": "Discord incoming webhook URL. Server Settings → Integrations → Webhooks → New Webhook."
          },
          "slackWebhookUrl": {
            "title": "💼 Slack Webhook URL",
            "type": "string",
            "description": "Slack incoming webhook URL. api.slack.com/messaging/webhooks."
          },
          "whatsappPhoneNumberId": {
            "title": "📞 WhatsApp Phone Number ID",
            "type": "string",
            "description": "Your WhatsApp Business phone-number ID (numeric, from Meta dashboard). Required when whatsappAccessToken is set."
          },
          "whatsappAccessToken": {
            "title": "📱 WhatsApp Access Token",
            "type": "string",
            "description": "WhatsApp Cloud API permanent access token (System User token from Meta Business). Recipient must have messaged the business number within the last 24h (service-conversation window — free since Nov 2024)."
          },
          "whatsappTo": {
            "title": "📲 WhatsApp Recipient",
            "type": "string",
            "description": "Recipient phone in E.164 format without + (e.g. \"436641234567\"). Recipient must have messaged your business number within last 24h."
          },
          "webhookUrl": {
            "title": "🪝 Generic Webhook URL",
            "type": "string",
            "description": "Receives a JSON POST with {metadata, items} after each run. Universal escape hatch for n8n / Make / Zapier / custom backends."
          },
          "webhookHeaders": {
            "title": "📋 Webhook Headers",
            "type": "object",
            "description": "Optional JSON object of custom headers (e.g. {\"Authorization\":\"Bearer ...\"})."
          },
          "appConnector": {
            "title": "Send results to a connected app",
            "type": "string",
            "description": "Optional. Pick a connected app under Settings → API & Integrations to receive your results (including any contact details). Best-effort across MCP connectors as Apify expands its catalog."
          },
          "mcpIssueTeam": {
            "title": "Issue tracker team",
            "type": "string",
            "description": "Only when the connected app is an issue tracker: the team (name or ID) the summary issue is created under, if that app requires one."
          },
          "descriptionFormat": {
            "title": "📝 Description Format",
            "enum": [
              "all",
              "text",
              "html",
              "markdown"
            ],
            "type": "string",
            "description": "Choose which representation of the listing description to include. `all` keeps every variant; the others keep only the selected one.",
            "default": "all"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}