{
  "openapi": "3.0.1",
  "info": {
    "title": "TradingView Screener",
    "description": "Screen stocks, crypto, forex & futures on TradingView with preset scans, custom filters, and selectable columns. HTTP-only, MCP-ready, $0.004 per result.",
    "version": "0.1",
    "x-build-id": "4pqzwO4M9Wl1uFuIa"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~tradingview-screener/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-tradingview-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/khadinakbar~tradingview-screener/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-tradingview-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/khadinakbar~tradingview-screener/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-tradingview-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": {
          "preset": {
            "title": "Preset scan",
            "enum": [
              "top_gainers",
              "top_losers",
              "most_active",
              "unusual_volume",
              "oversold_rsi",
              "overbought_rsi",
              "strong_buy",
              "strong_sell",
              "high_dividend",
              "large_cap",
              "small_cap_gainers",
              "high_volatility",
              "none"
            ],
            "type": "string",
            "description": "A ready-made screen that sets sensible filters and sort for you (e.g., 'top_gainers' returns the day's biggest movers with a market-cap floor and junk filtered out). Pick one and you need nothing else to run. Set to 'none' to build your own screen with the Filters field below. Presets combine with any extra Filters you add.",
            "default": "top_gainers"
          },
          "market": {
            "title": "Market",
            "enum": [
              "america",
              "crypto",
              "forex",
              "futures",
              "cfd",
              "bond",
              "uk",
              "germany",
              "france",
              "spain",
              "italy",
              "switzerland",
              "netherlands",
              "sweden",
              "poland",
              "turkey",
              "russia",
              "canada",
              "mexico",
              "brazil",
              "argentina",
              "australia",
              "japan",
              "china",
              "hongkong",
              "india",
              "korea",
              "taiwan",
              "singapore",
              "indonesia",
              "malaysia",
              "thailand",
              "vietnam",
              "philippines",
              "uae",
              "saudiarabia",
              "egypt",
              "israel",
              "southafrica",
              "nigeria"
            ],
            "type": "string",
            "description": "Which TradingView market universe to screen. Use 'america' for US stocks (NASDAQ/NYSE/AMEX), 'crypto' for coins, 'forex' for currency pairs, 'futures' for futures, or a country code like 'uk', 'germany', 'india', 'canada', 'japan'. Defaults to 'america'. This is the exchange universe, NOT a single ticker - this actor ranks a whole market, it does not fetch one symbol.",
            "default": "america"
          },
          "filters": {
            "title": "Custom filters",
            "type": "array",
            "description": "Advanced: build your own screen as a list of { field, operation, value } rules, all AND-combined (e.g., [{\"field\":\"RSI\",\"operation\":\"lt\",\"value\":30},{\"field\":\"market_cap_basic\",\"operation\":\"gte\",\"value\":1000000000}]). Operations: gt, gte, lt, lte, eq, neq, in_range (value=[min,max]), crosses_above, crosses_below, nempty, has. Field names are TradingView column IDs (RSI, change, market_cap_basic, dividend_yield_recent, Recommend.All, Perf.YTD). Leave empty to rely on the Preset; filters here are added on top of the preset.",
            "default": []
          },
          "columns": {
            "title": "Extra columns",
            "type": "array",
            "description": "Advanced: extra TradingView column IDs to include in each result beyond the ~20 rich defaults (e.g., [\"MACD.macd\",\"EMA200\",\"price_book_fq\"]). Unknown columns are returned under a camelCase key; known ones get friendly names (RSI to rsi, market_cap_basic to marketCapUsd). Leave empty for the default field set. This does NOT filter - use Filters for that.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "Sort by column",
            "type": "string",
            "description": "TradingView column ID to sort results by, overriding the preset's sort (e.g., 'change', 'volume', 'market_cap_basic', 'dividend_yield_recent', 'Perf.YTD'). Leave empty to use the preset's sort, or 'market_cap_basic' when no preset is set. Sorting is server-side, so you get the true top-N of the whole market. Not a filter - it only orders the matched rows."
          },
          "sortOrder": {
            "title": "Sort order",
            "enum": [
              "desc",
              "asc"
            ],
            "type": "string",
            "description": "Direction for Sort by column. 'desc' = highest first (biggest gainers, largest cap), 'asc' = lowest first (biggest losers, most oversold). Overrides the preset's default order. Ignored when no sort column applies.",
            "default": "desc"
          },
          "minMarketCapUsd": {
            "title": "Minimum market cap (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Convenience floor: drop any symbol below this market cap in USD (e.g., 1000000000 = $1B, filters out micro-caps and penny stocks). Applies on top of the preset and any custom filters. Set 0 to disable. Ignored on forex/futures where market cap has no meaning.",
            "default": 0
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How many top-ranked symbols to return (1-500). One scan run returns up to this many rows, sorted server-side, so 50 gives the true top 50 of the whole market. Defaults to 50. Each returned row is billed once, so this is also your hard cost cap.",
            "default": 50
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy used for the TradingView scanner request. The default Apify datacenter proxy works - the endpoint is public and has no anti-bot - so you can leave this untouched. Switch to Residential only if you hit rare rate limits on very high-frequency scheduling.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}