{
  "openapi": "3.0.1",
  "info": {
    "title": "TradingView Screener Scraper & API - Stocks, Crypto, FX Monitor",
    "description": "For stock screens, crypto scans and trading signals: the TradingView Screener as an API, one row per symbol with ticker, close, change %, volume, market cap, RSI and any indicator you pick, for stocks, crypto and forex. Monitoring returns only symbols that entered or left your screen. No API key.",
    "version": "0.1",
    "x-build-id": "ltKO9ZwrkQIUaBtil"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neverempty~tradingview-screener-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neverempty-tradingview-screener-monitor",
        "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/neverempty~tradingview-screener-monitor/runs": {
      "post": {
        "operationId": "runs-sync-neverempty-tradingview-screener-monitor",
        "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/neverempty~tradingview-screener-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-neverempty-tradingview-screener-monitor",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "markets"
        ],
        "properties": {
          "markets": {
            "title": "Markets",
            "type": "array",
            "description": "TradingView market names, one per line. Examples: america (US stocks), crypto (pairs on exchanges), coin (coins by market cap), forex, japan, uk, germany, india, canada, australia, hongkong, korea, brazil, france, futures, cfd. Required. A name TradingView does not know comes back as a free row that says so.",
            "items": {
              "type": "string"
            }
          },
          "primaryListingOnly": {
            "title": "Primary listing only",
            "type": "boolean",
            "description": "Keep one row per company: only the primary listing, not the same stock on other exchanges or the share classes that TradingView marks as secondary."
          },
          "minMarketCap": {
            "title": "Minimum market cap",
            "minimum": 0,
            "type": "integer",
            "description": "Only symbols whose market capitalization is at least this number, in the unit TradingView reports (US dollars for US stocks and for crypto). Leave empty for no minimum."
          },
          "maxMarketCap": {
            "title": "Maximum market cap",
            "minimum": 0,
            "type": "integer",
            "description": "Only symbols whose market capitalization is at most this number. Leave empty for no maximum."
          },
          "minVolume": {
            "title": "Minimum volume",
            "minimum": 0,
            "type": "integer",
            "description": "Only symbols whose volume in the current daily bar is at least this many units (shares for stocks). Leave empty for no minimum."
          },
          "minPrice": {
            "title": "Minimum price",
            "type": "string",
            "description": "Only symbols whose last price is at least this number, in the currency of the symbol. Leave empty for no minimum."
          },
          "maxPrice": {
            "title": "Maximum price",
            "type": "string",
            "description": "Only symbols whose last price is at most this number. Leave empty for no maximum."
          },
          "minChangePct": {
            "title": "Minimum change (%)",
            "type": "string",
            "description": "Only symbols whose change since the previous close is at least this percent. 3 means up 3% or more. Leave empty for no minimum."
          },
          "maxChangePct": {
            "title": "Maximum change (%)",
            "type": "string",
            "description": "Only symbols whose change since the previous close is at most this percent. -3 means down 3% or more. Leave empty for no maximum."
          },
          "minRsi": {
            "title": "Minimum RSI (14, daily)",
            "type": "string",
            "description": "Only symbols whose 14-period daily RSI is at least this number (0 to 100). Leave empty for no minimum."
          },
          "maxRsi": {
            "title": "Maximum RSI (14, daily)",
            "type": "string",
            "description": "Only symbols whose 14-period daily RSI is at most this number (0 to 100). 30 is the usual oversold line. Leave empty for no maximum."
          },
          "minRelativeVolume": {
            "title": "Minimum relative volume",
            "type": "string",
            "description": "Only symbols whose volume is at least this many times their 10-day average (2 means twice the usual). Leave empty for no minimum."
          },
          "filters": {
            "title": "More filters (advanced)",
            "type": "array",
            "description": "Extra conditions, all of which must hold. Each is an object with field (a column name from the README list, such as Perf.W, SMA200, sector, exchange, type), operation (greater, egreater, less, eless, equal, nequal, in_range, not_in_range) and value (a number, a text, true or false, or [low, high] for the range operations). Example: [{\"field\":\"sector\",\"operation\":\"equal\",\"value\":\"Finance\"},{\"field\":\"Perf.W\",\"operation\":\"greater\",\"value\":5}]. Text values are case-sensitive (Finance, not finance). A field the Actor does not know is refused before anything is read."
          },
          "extraColumns": {
            "title": "Extra indicators",
            "type": "array",
            "description": "More TradingView columns to return for every symbol, one per line, from the README list. Examples: MACD.macd, SMA50, SMA200, EMA20, ATR, ADX, Perf.W, Perf.1M, Perf.YTD, Volatility.D, price_earnings_ttm, price_52_week_high, Recommend.All. They come back in the indicators column.",
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "volume",
              "market_cap_basic",
              "market_cap_calc",
              "change",
              "close",
              "RSI",
              "relative_volume_10d_calc",
              "Perf.W",
              "Perf.1M",
              "Volatility.D",
              "24h_vol|5",
              "name"
            ],
            "type": "string",
            "description": "Column the list is ordered by, and which symbols come first when more match than the maximum.",
            "default": "volume"
          },
          "sortOrder": {
            "title": "Sort order",
            "enum": [
              "desc",
              "asc"
            ],
            "type": "string",
            "description": "Highest first or lowest first.",
            "default": "desc"
          },
          "maxResults": {
            "title": "Maximum symbol rows",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "The most symbol rows this run returns (and charges for). In monitoring mode it limits the changed symbols returned in one run; the rest come at the next run.",
            "default": 100
          },
          "monitoringMode": {
            "title": "Monitoring mode",
            "type": "boolean",
            "description": "Run the same screen on a schedule. The first run only remembers the matching symbols and their prices (no rows, no charge). Every later run returns only symbols that entered the screen, symbols that left it, and symbols whose price moved by the threshold or more since it was last returned. The screen may match at most 10,000 symbols.",
            "default": false
          },
          "priceMovePct": {
            "title": "Price move threshold (%)",
            "type": "string",
            "description": "Monitoring mode: return a symbol when its price moved at least this percent, up or down, from the remembered price (5 means for example 100 to 105, or to 95). From 0.1 to 1000. Empty means 5."
          },
          "resetMonitoringState": {
            "title": "Forget remembered symbols",
            "type": "boolean",
            "description": "Clears the monitoring memory for these exact markets, filters and threshold before the run, so the run starts again as a first run.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}