{
  "openapi": "3.0.1",
  "info": {
    "title": "Finviz Stock Screener",
    "description": "Scrape Finviz stock screener results (presets or custom filters) and return structured rows. Supports top gainers, new highs, volume, etc. Output is a clean dataset for automation workflows.",
    "version": "1.0",
    "x-build-id": "HN2cgcjgntvZbMwLw"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/purple_submarine~finviz-stock-screener/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-purple_submarine-finviz-stock-screener",
        "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/purple_submarine~finviz-stock-screener/runs": {
      "post": {
        "operationId": "runs-sync-purple_submarine-finviz-stock-screener",
        "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/purple_submarine~finviz-stock-screener/run-sync": {
      "post": {
        "operationId": "run-sync-purple_submarine-finviz-stock-screener",
        "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": {
          "screenerUrl": {
            "title": "Screener URL",
            "type": "string",
            "description": "Paste a full Finviz screener URL directly (overrides all filter settings below). Use this if you've configured filters on finviz.com and want to scrape those exact results."
          },
          "signal": {
            "title": "Signal",
            "enum": [
              "",
              "ta_topgainers",
              "ta_toplosers",
              "ta_newhigh",
              "ta_newlow",
              "ta_mostvolatile",
              "ta_mostactive",
              "ta_unusualvolume",
              "ta_overbought",
              "ta_oversold",
              "n_downgrades",
              "n_upgrades",
              "n_earningsbefore",
              "n_earningsafter",
              "it_latestbuys",
              "it_latestsales",
              "n_majornews"
            ],
            "type": "string",
            "description": "Pre-built signal filter",
            "default": ""
          },
          "exchange": {
            "title": "Exchange",
            "enum": [
              "",
              "exch_amex",
              "exch_nasd",
              "exch_nyse"
            ],
            "type": "string",
            "description": "Stock exchange filter",
            "default": ""
          },
          "index": {
            "title": "Index",
            "enum": [
              "",
              "idx_sp500",
              "idx_dji",
              "idx_ndx"
            ],
            "type": "string",
            "description": "Index membership filter",
            "default": ""
          },
          "sector": {
            "title": "Sector",
            "enum": [
              "",
              "sec_basicmaterials",
              "sec_communicationservices",
              "sec_consumercyclical",
              "sec_consumerdefensive",
              "sec_energy",
              "sec_financial",
              "sec_healthcare",
              "sec_industrials",
              "sec_realestate",
              "sec_technology",
              "sec_utilities"
            ],
            "type": "string",
            "description": "Sector filter",
            "default": ""
          },
          "industry": {
            "title": "Industry",
            "type": "string",
            "description": "Industry filter (Finviz filter code, e.g., 'ind_stocksonly' for stocks only)",
            "default": ""
          },
          "country": {
            "title": "Country",
            "enum": [
              "",
              "geo_usa",
              "geo_china",
              "geo_uk",
              "geo_canada",
              "geo_israel",
              "geo_ireland",
              "geo_bermuda",
              "geo_netherlands",
              "geo_japan",
              "geo_switzerland"
            ],
            "type": "string",
            "description": "Country filter",
            "default": ""
          },
          "marketCap": {
            "title": "Market Cap",
            "enum": [
              "",
              "cap_mega",
              "cap_largeover",
              "cap_large",
              "cap_midover",
              "cap_mid",
              "cap_smallover",
              "cap_small",
              "cap_microover",
              "cap_micro",
              "cap_nano"
            ],
            "type": "string",
            "description": "Market capitalization filter",
            "default": ""
          },
          "pe": {
            "title": "P/E Ratio",
            "enum": [
              "",
              "pe_low",
              "pe_profitable",
              "pe_high",
              "pe_u5",
              "pe_u10",
              "pe_u15",
              "pe_u20",
              "pe_u25",
              "pe_u30",
              "pe_u35",
              "pe_u40",
              "pe_u45",
              "pe_u50",
              "pe_o5",
              "pe_o10",
              "pe_o15",
              "pe_o20",
              "pe_o25",
              "pe_o30",
              "pe_o35",
              "pe_o40",
              "pe_o45",
              "pe_o50"
            ],
            "type": "string",
            "description": "Price-to-Earnings ratio filter",
            "default": ""
          },
          "forwardPe": {
            "title": "Forward P/E",
            "enum": [
              "",
              "forwardpe_u5",
              "forwardpe_u10",
              "forwardpe_u15",
              "forwardpe_u20",
              "forwardpe_u25",
              "forwardpe_u30",
              "forwardpe_o5",
              "forwardpe_o10",
              "forwardpe_o15",
              "forwardpe_o20",
              "forwardpe_o25",
              "forwardpe_o30"
            ],
            "type": "string",
            "description": "Forward Price-to-Earnings ratio filter",
            "default": ""
          },
          "dividendYield": {
            "title": "Dividend Yield",
            "enum": [
              "",
              "dividendyield_pos",
              "dividendyield_high",
              "dividendyield_vhigh",
              "dividendyield_o1",
              "dividendyield_o2",
              "dividendyield_o3",
              "dividendyield_o4",
              "dividendyield_o5",
              "dividendyield_o6",
              "dividendyield_o7",
              "dividendyield_o8",
              "dividendyield_o9",
              "dividendyield_o10"
            ],
            "type": "string",
            "description": "Dividend yield filter",
            "default": ""
          },
          "price": {
            "title": "Price",
            "enum": [
              "",
              "sh_price_u1",
              "sh_price_u2",
              "sh_price_u3",
              "sh_price_u4",
              "sh_price_u5",
              "sh_price_u10",
              "sh_price_u15",
              "sh_price_u20",
              "sh_price_u30",
              "sh_price_u40",
              "sh_price_u50",
              "sh_price_o1",
              "sh_price_o2",
              "sh_price_o3",
              "sh_price_o5",
              "sh_price_o10",
              "sh_price_o20",
              "sh_price_o30",
              "sh_price_o40",
              "sh_price_o50",
              "sh_price_o60",
              "sh_price_o70",
              "sh_price_o80",
              "sh_price_o90",
              "sh_price_o100"
            ],
            "type": "string",
            "description": "Current price filter",
            "default": ""
          },
          "volume": {
            "title": "Average Volume",
            "enum": [
              "",
              "sh_avgvol_o50",
              "sh_avgvol_o100",
              "sh_avgvol_o200",
              "sh_avgvol_o300",
              "sh_avgvol_o400",
              "sh_avgvol_o500",
              "sh_avgvol_o750",
              "sh_avgvol_o1000",
              "sh_avgvol_o2000"
            ],
            "type": "string",
            "description": "Average daily volume filter",
            "default": ""
          },
          "analystRecommendation": {
            "title": "Analyst Recommendation",
            "enum": [
              "",
              "an_recom_strongbuy",
              "an_recom_buybetter",
              "an_recom_buy",
              "an_recom_holdbetter",
              "an_recom_hold",
              "an_recom_sellworse",
              "an_recom_sell",
              "an_recom_strongsell"
            ],
            "type": "string",
            "description": "Analyst consensus recommendation filter",
            "default": ""
          },
          "earningsDate": {
            "title": "Earnings Date",
            "enum": [
              "",
              "earningsdate_today",
              "earningsdate_todaybefore",
              "earningsdate_todayafter",
              "earningsdate_tomorrow",
              "earningsdate_tomorrowbefore",
              "earningsdate_tomorrowafter",
              "earningsdate_thisweek",
              "earningsdate_nextweek",
              "earningsdate_thismonth",
              "earningsdate_nextmonth"
            ],
            "type": "string",
            "description": "Filter by upcoming earnings date",
            "default": ""
          },
          "performance": {
            "title": "Performance",
            "enum": [
              "",
              "ta_perf_dup",
              "ta_perf_ddown",
              "ta_perf_d15u",
              "ta_perf_d15o",
              "ta_perf_wup",
              "ta_perf_wdown",
              "ta_perf_w15u",
              "ta_perf_w15o",
              "ta_perf_mup",
              "ta_perf_mdown",
              "ta_perf_qup",
              "ta_perf_qdown",
              "ta_perf_hup",
              "ta_perf_hdown",
              "ta_perf_yup",
              "ta_perf_ydown"
            ],
            "type": "string",
            "description": "Stock performance filter",
            "default": ""
          },
          "rsi": {
            "title": "RSI (14)",
            "enum": [
              "",
              "ta_rsi_ob90",
              "ta_rsi_ob80",
              "ta_rsi_ob70",
              "ta_rsi_ob60",
              "ta_rsi_os40",
              "ta_rsi_os30",
              "ta_rsi_os20",
              "ta_rsi_os10",
              "ta_rsi_nob70",
              "ta_rsi_nob60",
              "ta_rsi_nos40",
              "ta_rsi_nos30"
            ],
            "type": "string",
            "description": "Relative Strength Index filter",
            "default": ""
          },
          "sma20": {
            "title": "20-Day SMA",
            "enum": [
              "",
              "ta_sma20_pa",
              "ta_sma20_pb",
              "ta_sma20_pa10",
              "ta_sma20_pb10",
              "ta_sma20_cross",
              "ta_sma20_crossb"
            ],
            "type": "string",
            "description": "Price relative to 20-Day Simple Moving Average",
            "default": ""
          },
          "sma50": {
            "title": "50-Day SMA",
            "enum": [
              "",
              "ta_sma50_pa",
              "ta_sma50_pb",
              "ta_sma50_pa10",
              "ta_sma50_pb10",
              "ta_sma50_cross",
              "ta_sma50_crossb"
            ],
            "type": "string",
            "description": "Price relative to 50-Day Simple Moving Average",
            "default": ""
          },
          "sma200": {
            "title": "200-Day SMA",
            "enum": [
              "",
              "ta_sma200_pa",
              "ta_sma200_pb",
              "ta_sma200_pa10",
              "ta_sma200_pb10",
              "ta_sma200_cross",
              "ta_sma200_crossb"
            ],
            "type": "string",
            "description": "Price relative to 200-Day Simple Moving Average",
            "default": ""
          },
          "customFilters": {
            "title": "Custom Filters",
            "type": "string",
            "description": "Additional Finviz filter codes separated by commas (e.g., 'cap_largeover,fa_pe_u20,ta_sma50_pa'). Use this for any filter not covered above. Full list at https://finviz.com/screener.ashx",
            "default": ""
          },
          "tickers": {
            "title": "Specific Tickers",
            "type": "string",
            "description": "Comma-separated list of specific ticker symbols to look up (e.g., 'AAPL,MSFT,GOOGL'). If provided, filters are ignored.",
            "default": ""
          },
          "orderBy": {
            "title": "Order By",
            "enum": [
              "",
              "ticker",
              "company",
              "sector",
              "industry",
              "country",
              "marketcap",
              "pe",
              "forwardpe",
              "peg",
              "ps",
              "pb",
              "pc",
              "pfcf",
              "dividendyield",
              "payoutratio",
              "eps",
              "epsyoy",
              "epsnextq",
              "epsthisy",
              "epsnexty",
              "epspast5y",
              "epsnext5y",
              "salespast5y",
              "salesqoq",
              "salesyoy",
              "epssurprise",
              "revsurprise",
              "sharesoutstanding",
              "sharesfloat",
              "insiderown",
              "insidertrans",
              "instown",
              "insttrans",
              "shortinterestshare",
              "shortinterestratio",
              "earningsdate",
              "roa",
              "roe",
              "roi",
              "currentratio",
              "quickratio",
              "ltdebteq",
              "debteq",
              "grossmargin",
              "opermargin",
              "netmargin",
              "recom",
              "perfweek",
              "perfmonth",
              "perfquart",
              "perfhalf",
              "perfytd",
              "perfyear",
              "perf3y",
              "perf5y",
              "perf10y",
              "beta",
              "atr",
              "volatilityw",
              "volatilitym",
              "sma20",
              "sma50",
              "sma200",
              "high50d",
              "low50d",
              "high52w",
              "low52w",
              "rsi",
              "avgvolume",
              "relvolume",
              "change",
              "changeopen",
              "gap",
              "volume",
              "price",
              "targetprice",
              "ipodate"
            ],
            "type": "string",
            "description": "Sort results by column",
            "default": ""
          },
          "orderDirection": {
            "title": "Order Direction",
            "enum": [
              "asc",
              "desc"
            ],
            "type": "string",
            "description": "Sort direction",
            "default": "asc"
          },
          "scrapeDetails": {
            "title": "Scrape Detailed Stock Pages",
            "type": "boolean",
            "description": "For each stock in results, also scrape its individual Finviz page for full fundamental data (60+ metrics), news headlines, and insider trading info. This is slower but gives much more data per stock.",
            "default": false
          },
          "maxResults": {
            "title": "Maximum Results",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum number of stocks to return. Set to 0 for all results. Finviz free tier limits to ~8,000 stocks total.",
            "default": 100
          },
          "requestDelay": {
            "title": "Request Delay (ms)",
            "minimum": 200,
            "maximum": 10000,
            "type": "integer",
            "description": "Delay between requests in milliseconds. Increase if getting rate limited. Recommended: 500-2000ms.",
            "default": 1000
          },
          "proxyConfig": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Proxy settings for avoiding blocks. Apify proxy recommended for cloud runs.",
            "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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}