# Global Stock Screener — 26 Exchanges, One API Call (`nexgendata/stock-exchange-meta-scraper`) Actor

Screen 26 global stock exchanges in one call — per-stock rows or per-exchange summaries as clean JSON. No stitching 26 feeds. For analysts and AI agents.

- **URL**: https://apify.com/nexgendata/stock-exchange-meta-scraper.md
- **Developed by:** [NexGenData](https://apify.com/nexgendata) (community)
- **Categories:** Business, Automation
- **Stats:** 3 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $200.00 / 1,000 stock or exchange snapshots

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## Global Stock Exchange Screener

Screen **26 global stock exchanges in a single API call** — from Xetra and the LSE to the TSE, HKEX, NSE and the China A-share boards. Returns either a flat list of per-stock rows or a per-exchange market summary as clean JSON. Built for analysts, quant researchers, fintech builders and AI agents. Factual public data — not financial or investment advice.

### 📊 What you get

Two output modes (`outputMode`):

**`per_stock`** — one record per stock across the exchanges you select:

- `symbol` — Exchange ticker symbol
- `name` — Company name
- `exchange` — Source exchange
- `country` / `region` — Market location
- `price` / `currency` — Latest price and its currency
- `change_pct` — Daily percent change
- `market_cap` — Market capitalization
- `sector` — Sector classification
- `volume` — Trading volume
- `raw` — The full source row from that exchange's screener

**`per_exchange_summary`** — one record per exchange:

- `exchange` / `country` / `region` — Market identity
- `stock_count` — Number of stocks covered
- `advancers` / `decliners` / `unchanged` — Breadth counts
- `median_change_pct` — Median daily change
- `top_by_market_cap` / `top_gainers` / `top_losers` — Leader lists
- `snapshot_ts` — Snapshot timestamp

**Pricing:** $0.20 per record (Pay-Per-Event) — one charge per exchange summary or per stock row, about **5 records per $1**. A small actor-start fee applies per run.

### 🤖 Use with AI agents

This is the single-call front door to NexGenData's screener franchise: instead of orchestrating 26 separate actors, an agent points here, picks its exchanges and output mode, and gets a unified, structured result. Works with Claude, the OpenAI Agents SDK, n8n, or any MCP-aware client.

**Sample agent prompt:**

```
Give me a per-exchange market summary for the LSE, TSE and NSE, then the top 10 stocks by market cap on each as JSON.
```

**Agentic payments (x402):** Supports agentic payment via x402 — agents can call this actor with USDC, no API key required.

### ⏰ Run on a schedule

Refresh a multi-market snapshot weekly:

```json
{
  "exchanges": ["XETRA_GERMANY", "LSE_UK", "TSE_JAPAN", "NSE_INDIA"],
  "outputMode": "per_exchange_summary",
  "topN": 50
}
```

### 🔗 Related screeners

**Agent-native front door:** [Global Equities Screener MCP](https://apify.com/nexgendata/global-equities-screener-mcp) — the same coverage as an MCP server for AI agents.

**Single-market screeners:** [Germany (Xetra)](https://apify.com/nexgendata/xetra-germany-stock-screener), [UK (LSE)](https://apify.com/nexgendata/lse-uk-stock-screener), [Japan (TSE)](https://apify.com/nexgendata/tse-japan-stock-screener), [Hong Kong (HKEX)](https://apify.com/nexgendata/hkex-hang-seng-stock-screener), [India (NSE)](https://apify.com/nexgendata/nse-india-stock-screener) — and 21 more national exchanges.

***

*Aggregates NexGenData's per-exchange screeners from public market data. Factual public data — not financial or investment advice.*

# Actor input Schema

## `exchanges` (type: `array`):

List of exchange codes to include in this snapshot. Pick any subset of the 25 supported exchanges (KOSPI, TWSE, NSE\_INDIA, BSE\_INDIA, B3\_BRAZIL, HKEX, SGX, HOSE\_VIETNAM, TSE\_JAPAN, LSE\_UK, XETRA\_GERMANY, TSX\_CANADA, ASX\_AUSTRALIA, TADAWUL\_SAUDI, BMV\_MEXICO, JSE\_SOUTH\_AFRICA, IDX\_INDONESIA, SET\_THAILAND, BURSA\_MALAYSIA, BIST\_TURKEY, PSE\_PHILIPPINES, STAR\_CHINA, CHINEXT\_CHINA, CHINESE\_ADRS, BSE\_BEIJING, EASTMONEY\_A\_SHARES). Leave the default (all 25) to get a true global snapshot in one run.

## `outputMode` (type: `string`):

Shape of the dataset rows. `per_exchange_summary` returns ONE aggregated row per exchange (top 5 gainers, top 5 losers, top 10 by market cap, advancers/decliners, median change) — ideal for daily institutional briefings and hedge-fund snapshots. `per_stock` returns a flat list of normalized stock rows across all selected exchanges (much larger output) — ideal for sector rotation, cross-border ETF construction, and screener workflows.

## `topN` (type: `integer`):

How many stocks to fetch per exchange. In `per_exchange_summary` mode this controls the underlying universe used to compute aggregates (default 50 is sufficient for top-movers / index leaders). In `per_stock` mode it directly controls dataset size — 100 stocks × 25 exchanges = 2,500 rows. Maximum 500.

## `maxParallel` (type: `integer`):

How many sub-actors to run concurrently. Higher = faster wall-clock but more peak memory + risk of provider rate-limits. 5 is the sweet spot for a global snapshot across 25 exchanges (~5 batches of 5).

## `subActorTimeoutSecs` (type: `integer`):

Maximum seconds to wait for any one sub-actor run to complete. If a single exchange screener stalls (regional outage, captcha), it will be cut off and the error recorded in that exchange's row — other exchanges continue. Default 300s (5 min) is plenty for any single screener at topN=500.

## Actor input object example

```json
{
  "exchanges": [
    "TSE_JAPAN",
    "HKEX",
    "LSE_UK"
  ],
  "outputMode": "per_exchange_summary",
  "topN": 50,
  "maxParallel": 5,
  "subActorTimeoutSecs": 300
}
```

# 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 = {
    "exchanges": [
        "TSE_JAPAN",
        "HKEX",
        "LSE_UK"
    ],
    "outputMode": "per_exchange_summary",
    "topN": 50,
    "maxParallel": 5,
    "subActorTimeoutSecs": 300
};

// Run the Actor and wait for it to finish
const run = await client.actor("nexgendata/stock-exchange-meta-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 = {
    "exchanges": [
        "TSE_JAPAN",
        "HKEX",
        "LSE_UK",
    ],
    "outputMode": "per_exchange_summary",
    "topN": 50,
    "maxParallel": 5,
    "subActorTimeoutSecs": 300,
}

# Run the Actor and wait for it to finish
run = client.actor("nexgendata/stock-exchange-meta-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 '{
  "exchanges": [
    "TSE_JAPAN",
    "HKEX",
    "LSE_UK"
  ],
  "outputMode": "per_exchange_summary",
  "topN": 50,
  "maxParallel": 5,
  "subActorTimeoutSecs": 300
}' |
apify call nexgendata/stock-exchange-meta-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=nexgendata/stock-exchange-meta-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/iQVXHKbhUcBwsSrL2/builds/iPNGBWpX68sUqtgc9/openapi.json
