# Cheapest TradingView Scraper (`serp.cheap.ofc/cheapest-tradingview-scraper`) Actor

Scrape TradingView at the lowest price per result: stock/crypto/forex screener (19k+ US stocks), 200+ fundamentals, quotes, per-symbol news, Buy/Sell technical ratings, community ideas & Minds, indicators and economic calendar. Pay per result — no start fee, no subscription.

- **URL**: https://apify.com/serp.cheap.ofc/cheapest-tradingview-scraper.md
- **Developed by:** [serp.cheap](https://apify.com/serp.cheap.ofc) (community)
- **Categories:** Integrations, Other, News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 screener rows

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Cheapest TradingView Scraper — screener, quotes, news, signals & more

Scrape **TradingView** data at the **lowest price per result on Apify** — pay-per-result only,
**no run-start fee, no subscription, no minimum spend**. Built on TradingView's public data
endpoints (no login, no browser), so it's fast, stable and cheap: 10,000 screener rows cost **$10
with the market leader — $1 here**.

Extract the **stock screener** (19,000+ US stocks, plus Brazil, UK, Germany, India, crypto, forex
and 40+ other markets), **200+ fundamental fields** per symbol, **real-time quotes**, **per-symbol
news headlines**, **technical-analysis Buy/Sell ratings** on 10 timeframes, **community trade ideas
and Minds posts**, **Pine Script indicators** and the **economic calendar** — all from one Actor.

### What you can scrape

| Mode | What you get |
|------|--------------|
| 🏆 `screener` | Bulk market data: every symbol in a market with your chosen columns. 19k+ US stocks, whole crypto market, forex, indices, futures. |
| 💹 `quotes` | Deep data for specific symbols — any of TradingView's 200+ fields (P/E, EPS, margins, cash flow, RSI…). |
| 🔍 `search` | Resolve company names / free text into TradingView symbols. |
| 📅 `calendar` | Economic-calendar events (GDP, CPI, rate decisions) by date range and currency. |
| 💡 `ideas` | Community trade ideas — global feed or per symbol. |
| 📈 `indicators` | Community Pine Script indicators & strategies, ranked. |
| 📰 `news` | News headlines **per symbol** — up to ~200 per ticker with source, urgency and link. |
| 💬 `minds` | TradingView **Minds** — short community posts per symbol, with likes and comment counts. |
| 🚦 `signals` | TradingView's technical-analysis gauge per symbol: **Strong Buy → Strong Sell** for Summary, Moving Averages and Oscillators, on 10 timeframes (1m…1M), plus raw RSI, MACD, Stochastics, ADX, CCI. |
| 🩺 `selftest` | Validates every endpoint above, free. Schedule it as a health check. |

### Why this one

- 💰 **Cheapest per result** — up to **50× cheaper** than the leading TradingView scraper
  (see pricing below). No start fee: a 10-row test run costs ~$0.01, not $0.05 + fees.
- ⚡ **Pure HTTP, no browser** — 500 screener rows in ~0.6 s. Full US market in under a minute.
- 🌍 **Every market TradingView covers** — `america`, `brazil`, `uk`, `germany`, `india`,
  `crypto`, `forex`, `futures` and 40+ more.
- 🧱 **No login, no cookies** — only public endpoints; nothing to expire or get banned.
- 🔁 **Rotating proxies per request** (Apify Proxy by default) — safe at high volume.
- 🩺 **Self-monitoring** — every run validates all endpoint schemas, so breakages are caught
  and fixed fast.

### Example input

Top 500 US stocks by market cap, with valuation fields:

```json
{
    "mode": "screener",
    "market": "america",
    "columnPreset": "valuation",
    "maxItems": 500
}
````

Technical Buy/Sell signals for your watchlist on two timeframes:

```json
{
    "mode": "signals",
    "symbols": ["NASDAQ:AAPL", "NASDAQ:NVDA", "BINANCE:BTCUSDT"],
    "signalsTimeframes": ["1D", "1W"]
}
```

News for a ticker / Minds / whole crypto market / economic calendar:

```json
{ "mode": "news", "symbols": ["NASDAQ:TSLA"], "maxItems": 100 }
{ "mode": "minds", "symbols": ["NASDAQ:AAPL"], "maxItems": 50 }
{ "mode": "screener", "market": "crypto", "sortBy": "24h_vol_cmc", "maxItems": 0 }
{ "mode": "calendar", "calendarCountries": ["USD", "EUR", "BRL"], "calendarFrom": "2026-07-15", "calendarTo": "2026-07-22" }
```

### Example output

`screener` (one item per symbol):

```json
{
    "symbol": "NASDAQ:NVDA",
    "name": "NVDA",
    "description": "NVIDIA Corporation",
    "close": 211.65,
    "change": -0.07,
    "volume": 16067969,
    "market_cap_basic": 5121930073800,
    "price_earnings_ttm": 32.41,
    "sector": "Electronic Technology",
    "Perf.YTD": 11.49,
    "Recommend.All": 0.31
}
```

`signals` (one item per symbol × timeframe):

```json
{
    "symbol": "NASDAQ:AAPL",
    "timeframe": "1W",
    "summaryRating": "Strong Buy",
    "maRating": "Strong Buy",
    "oscillatorsRating": "Neutral",
    "RSI": 66.4,
    "MACD.macd": 6.03,
    "ADX": 23.6
}
```

`news` (one item per headline):

```json
{
    "querySymbol": "NASDAQ:AAPL",
    "title": "Apple Wins Dismissal of iCloud Lawsuit",
    "source": "GuruFocus",
    "published": 1784124502,
    "urgency": 2,
    "link": "https://…"
}
```

### Column presets (screener & quotes)

Pull rich fundamentals without memorizing field names — or pass your own `columns` list
(200+ fields supported).

| Preset | Includes |
|--------|----------|
| `overview` (default) | price, change, volume, market cap, P/E, EPS, sector, performance, TA rating |
| `performance` | Perf W/1M/3M/6M/YTD/Y/5Y, volatility, beta, 1M high/low |
| `valuation` | market cap, P/E, P/S, P/B, P/FCF, EV, EV/EBITDA |
| `dividends` | dividend yield, payout ratio, DPS, dividend streak |
| `profitability` | gross/operating/net margin, ROE, ROA, ROIC |
| `income_statement` | revenue, gross profit, operating income, net income, EBITDA, EPS |
| `balance_sheet` | assets, debt, liabilities, equity, cash, D/E, current & quick ratio |
| `cash_flow` | operating/investing/financing cash flow, FCF, capex |
| `technicals` | RSI, momentum, MACD, Stochastics, CCI, ADX, ATR, Buy/Sell ratings |

### Pricing — pay only for what you pull

One price per data type, charged per item. **No start fee. No subscription. No upfront credits.**

| Data type | Price per item | 1,000 items |
|-----------|----------------|-------------|
| Screener row | $0.001 | $1.00 |
| Search result | $0.0005 | $0.50 |
| Symbol quote | $0.0015 | $1.50 |
| Calendar event | $0.001 | $1.00 |
| News headline | $0.001 | $1.00 |
| Technical signal (symbol × timeframe) | $0.0015 | $1.50 |
| Minds post | $0.002 | $2.00 |
| Community idea | $0.002 | $2.00 |
| Indicator / script | $0.002 | $2.00 |

Nothing costs more than **$2 per 1,000** — and most of it is $1 or less.

Compare: the most-installed TradingView screener actor charges **$0.05/stock** at entry tier
($50 per 1,000) and only reaches $0.00945 at high committed volume. Here it's **$1 per 1,000,
from the first row, with zero commitment**.

### Use cases

- **Quant screening** — filter 19k+ stocks by any fundamental/technical combination daily.
- **Trading bots & alerts** — poll `signals` for rating flips on your watchlist.
- **Market dashboards** — feed BI tools with fresh screener + news data on a schedule.
- **Sentiment analysis** — mine `ideas` and `minds` text per ticker.
- **Macro monitoring** — pipe the economic calendar into Slack/Discord before big releases.
- **Datasets for ML** — bulk-export fundamentals across entire markets, cheaply.

Integrate with anything Apify supports: **API, webhooks, Google Sheets, Zapier, Make, MCP** —
export as JSON, CSV, Excel or Parquet.

### FAQ

**Do I need a TradingView account or API key?**
No. The Actor uses TradingView's public, unauthenticated data endpoints.

**Is it legal to scrape TradingView?**
This Actor accesses only publicly available data — no login walls are bypassed and no personal
data is collected beyond public usernames on public posts. Review TradingView's Terms of Service
and your local regulations for your specific use case.

**Will I get rate-limited or banned?**
The Actor uses Apify Proxy with a fresh IP per request by default and validates every response.
No credentials are involved, so there is nothing to ban.

**How fresh is the data?**
It's fetched live at run time from the same endpoints the TradingView website itself uses.

**What markets are supported?**
Any TradingView scan region: `america`, `brazil`, `argentina`, `mexico`, `uk`, `germany`,
`france`, `spain`, `italy`, `india`, `japan`, `australia`, `crypto`, `forex`, `cfd`, `futures`,
`coin` and more.

**Can I get the entire market?**
Yes — set `maxItems: 0` for no limit. The full US market (~19,500 rows) costs about $19.50.

### Notes

- `maxItems: 0` = no limit (fetch everything).
- Ideas filtered by `ideasSymbol` are returned most-recent-first (TradingView limitation).
- Apify Proxy is enabled by default; each request goes out through a fresh IP.

# Actor input Schema

## `mode` (type: `string`):

What to scrape. 'screener' returns a bulk list of symbols for a market (the workhorse). 'quotes' returns detailed fields for an explicit list of symbols. 'search' resolves free-text into TradingView symbols. 'calendar' returns economic-calendar events. 'news', 'minds' and 'signals' return per-symbol headlines, community Minds posts, and technical-analysis ratings. 'selftest' validates every TradingView endpoint without charging — schedule it for monitoring.

## `market` (type: `string`):

Screener market/scan endpoint, e.g. america, brazil, argentina, mexico, uk, germany, india, crypto, forex, cfd, coin, futures. Full list: https://scanner.tradingview.com/{market}/scan

## `columnPreset` (type: `string`):

Predefined set of fields to return. Use a rich fundamentals set without knowing field names. Ignored if you provide custom 'columns'.

## `columns` (type: `array`):

Custom TradingView field names to return. Overrides the preset. Examples: name, close, market\_cap\_basic, price\_earnings\_ttm, dividends\_yield\_current, RSI, return\_on\_equity.

## `filters` (type: `array`):

Raw TradingView filter objects, e.g. \[{"left":"market\_cap\_basic","operation":"greater","right":1000000000}]. Combined with AND.

## `sortBy` (type: `string`):

Field to sort the screener by.

## `sortOrder` (type: `string`):

Sort direction for the screener: descending or ascending.

## `symbols` (type: `array`):

Exchange-prefixed symbols for 'quotes', 'news', 'minds' and 'signals' modes, e.g. NASDAQ:AAPL, BINANCE:BTCUSDT, BMFBOVESPA:PETR4.

## `searchText` (type: `string`):

Free text to resolve into TradingView symbols.

## `calendarFrom` (type: `string`):

Start date for 'calendar' mode, e.g. 2026-07-15. Defaults to today.

## `calendarTo` (type: `string`):

End date for 'calendar' mode, e.g. 2026-07-22. Defaults to +7 days.

## `calendarCountries` (type: `array`):

Currency/country codes for 'calendar' mode, e.g. USD, EUR, BRL.

## `ideasSymbol` (type: `string`):

Filter ideas by a symbol, e.g. NASDAQ:AAPL or BITSTAMP:BTCUSD. Leave empty to get globally popular ideas.

## `ideasSort` (type: `string`):

Sort order for ideas.

## `indicatorsSort` (type: `string`):

Sort order for indicators/scripts.

## `newsCategory` (type: `string`):

Optional headline category filter for 'news' mode, e.g. stock, analysis. Leave empty for all news for the symbol.

## `signalsTimeframes` (type: `array`):

Timeframes to compute technical ratings for in 'signals' mode. One row per symbol per timeframe. Allowed: 1m, 5m, 15m, 30m, 1h, 2h, 4h, 1D, 1W, 1M.

## `maxItems` (type: `integer`):

Maximum rows to return (screener/quotes). 0 = no limit (whole market).

## `proxyConfiguration` (type: `object`):

Proxy settings. Apify Proxy recommended to avoid rate limits.

## Actor input object example

```json
{
  "mode": "screener",
  "market": "america",
  "columnPreset": "overview",
  "columns": [],
  "filters": [],
  "sortBy": "market_cap_basic",
  "sortOrder": "desc",
  "symbols": [
    "NASDAQ:AAPL",
    "NASDAQ:NVDA"
  ],
  "searchText": "",
  "calendarFrom": "",
  "calendarTo": "",
  "calendarCountries": [
    "USD"
  ],
  "ideasSymbol": "",
  "ideasSort": "popular",
  "indicatorsSort": "week_popular",
  "newsCategory": "",
  "signalsTimeframes": [
    "1D",
    "1W"
  ],
  "maxItems": 1000,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `signals` (type: `string`):

No description

## `news` (type: `string`):

No description

## `community` (type: `string`):

No description

## `calendar` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "symbols": [
        "NASDAQ:AAPL",
        "NASDAQ:NVDA"
    ],
    "signalsTimeframes": [
        "1D",
        "1W"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("serp.cheap.ofc/cheapest-tradingview-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "symbols": [
        "NASDAQ:AAPL",
        "NASDAQ:NVDA",
    ],
    "signalsTimeframes": [
        "1D",
        "1W",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("serp.cheap.ofc/cheapest-tradingview-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "symbols": [
    "NASDAQ:AAPL",
    "NASDAQ:NVDA"
  ],
  "signalsTimeframes": [
    "1D",
    "1W"
  ]
}' |
apify call serp.cheap.ofc/cheapest-tradingview-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=serp.cheap.ofc/cheapest-tradingview-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Cheapest TradingView Scraper",
        "description": "Scrape TradingView at the lowest price per result: stock/crypto/forex screener (19k+ US stocks), 200+ fundamentals, quotes, per-symbol news, Buy/Sell technical ratings, community ideas & Minds, indicators and economic calendar. Pay per result — no start fee, no subscription.",
        "version": "0.1",
        "x-build-id": "8pwgD1Nubl1QLjCCg"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/serp.cheap.ofc~cheapest-tradingview-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-serp.cheap.ofc-cheapest-tradingview-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/serp.cheap.ofc~cheapest-tradingview-scraper/runs": {
            "post": {
                "operationId": "runs-sync-serp.cheap.ofc-cheapest-tradingview-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/serp.cheap.ofc~cheapest-tradingview-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-serp.cheap.ofc-cheapest-tradingview-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": [
                            "screener",
                            "quotes",
                            "search",
                            "calendar",
                            "ideas",
                            "indicators",
                            "news",
                            "minds",
                            "signals",
                            "selftest"
                        ],
                        "type": "string",
                        "description": "What to scrape. 'screener' returns a bulk list of symbols for a market (the workhorse). 'quotes' returns detailed fields for an explicit list of symbols. 'search' resolves free-text into TradingView symbols. 'calendar' returns economic-calendar events. 'news', 'minds' and 'signals' return per-symbol headlines, community Minds posts, and technical-analysis ratings. 'selftest' validates every TradingView endpoint without charging — schedule it for monitoring.",
                        "default": "screener"
                    },
                    "market": {
                        "title": "Market (screener mode)",
                        "type": "string",
                        "description": "Screener market/scan endpoint, e.g. america, brazil, argentina, mexico, uk, germany, india, crypto, forex, cfd, coin, futures. Full list: https://scanner.tradingview.com/{market}/scan",
                        "default": "america"
                    },
                    "columnPreset": {
                        "title": "Column preset (screener/quotes)",
                        "enum": [
                            "overview",
                            "performance",
                            "valuation",
                            "dividends",
                            "profitability",
                            "income_statement",
                            "balance_sheet",
                            "cash_flow",
                            "technicals"
                        ],
                        "type": "string",
                        "description": "Predefined set of fields to return. Use a rich fundamentals set without knowing field names. Ignored if you provide custom 'columns'.",
                        "default": "overview"
                    },
                    "columns": {
                        "title": "Columns / fields (advanced)",
                        "type": "array",
                        "description": "Custom TradingView field names to return. Overrides the preset. Examples: name, close, market_cap_basic, price_earnings_ttm, dividends_yield_current, RSI, return_on_equity.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "filters": {
                        "title": "Screener filters (advanced)",
                        "type": "array",
                        "description": "Raw TradingView filter objects, e.g. [{\"left\":\"market_cap_basic\",\"operation\":\"greater\",\"right\":1000000000}]. Combined with AND.",
                        "default": []
                    },
                    "sortBy": {
                        "title": "Sort by",
                        "type": "string",
                        "description": "Field to sort the screener by.",
                        "default": "market_cap_basic"
                    },
                    "sortOrder": {
                        "title": "Sort order",
                        "enum": [
                            "desc",
                            "asc"
                        ],
                        "type": "string",
                        "description": "Sort direction for the screener: descending or ascending.",
                        "default": "desc"
                    },
                    "symbols": {
                        "title": "Symbols (quotes / news / minds / signals modes)",
                        "type": "array",
                        "description": "Exchange-prefixed symbols for 'quotes', 'news', 'minds' and 'signals' modes, e.g. NASDAQ:AAPL, BINANCE:BTCUSDT, BMFBOVESPA:PETR4.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchText": {
                        "title": "Search text (search mode)",
                        "type": "string",
                        "description": "Free text to resolve into TradingView symbols.",
                        "default": ""
                    },
                    "calendarFrom": {
                        "title": "Calendar from (ISO date)",
                        "type": "string",
                        "description": "Start date for 'calendar' mode, e.g. 2026-07-15. Defaults to today.",
                        "default": ""
                    },
                    "calendarTo": {
                        "title": "Calendar to (ISO date)",
                        "type": "string",
                        "description": "End date for 'calendar' mode, e.g. 2026-07-22. Defaults to +7 days.",
                        "default": ""
                    },
                    "calendarCountries": {
                        "title": "Calendar countries",
                        "type": "array",
                        "description": "Currency/country codes for 'calendar' mode, e.g. USD, EUR, BRL.",
                        "default": [
                            "USD"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "ideasSymbol": {
                        "title": "Ideas symbol (ideas mode)",
                        "type": "string",
                        "description": "Filter ideas by a symbol, e.g. NASDAQ:AAPL or BITSTAMP:BTCUSD. Leave empty to get globally popular ideas.",
                        "default": ""
                    },
                    "ideasSort": {
                        "title": "Ideas sort (ideas mode)",
                        "enum": [
                            "popular",
                            "recent"
                        ],
                        "type": "string",
                        "description": "Sort order for ideas.",
                        "default": "popular"
                    },
                    "indicatorsSort": {
                        "title": "Indicators sort (indicators mode)",
                        "enum": [
                            "week_popular",
                            "month_popular",
                            "recent",
                            "all_time_popular"
                        ],
                        "type": "string",
                        "description": "Sort order for indicators/scripts.",
                        "default": "week_popular"
                    },
                    "newsCategory": {
                        "title": "News category (news mode)",
                        "type": "string",
                        "description": "Optional headline category filter for 'news' mode, e.g. stock, analysis. Leave empty for all news for the symbol.",
                        "default": ""
                    },
                    "signalsTimeframes": {
                        "title": "Signal timeframes (signals mode)",
                        "type": "array",
                        "description": "Timeframes to compute technical ratings for in 'signals' mode. One row per symbol per timeframe. Allowed: 1m, 5m, 15m, 30m, 1h, 2h, 4h, 1D, 1W, 1M.",
                        "default": [
                            "1D"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum rows to return (screener/quotes). 0 = no limit (whole market).",
                        "default": 1000
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings. Apify Proxy recommended to avoid 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
