# Dark Pool Volume Tracker - FINRA ATS & Off-Exchange Data (`smartmoney-data/dark-pool-volume-tracker`) Actor

Weekly dark pool (ATS) and off-exchange volume for any US stock from official FINRA OTC Transparency data: shares, trades, dollar volume, top dark pool venues and unusual-volume flags. Or the most traded dark pool stocks this week.

- **URL**: https://apify.com/smartmoney-data/dark-pool-volume-tracker.md
- **Developed by:** [SmartMoney Data](https://apify.com/smartmoney-data) (community)
- **Categories:** Business, AI, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$5.00 / 1,000 stock reports

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Dark Pool Volume Tracker - FINRA ATS & Off-Exchange Data

**See how much of a stock trades in dark pools each week, on which venues, and when that volume suddenly jumps.**

| | |
|---|---|
| **Data** | Official FINRA OTC Transparency data (alternative trading systems and other off-exchange trading) |
| **Price** | $5 per 1,000 stock reports, no subscription. Apify's free plan credit covers a first test. |
| **Freshness** | Weekly; FINRA publishes Tier 1 stocks two weeks after the week ends, other stocks after four |
| **Try it** | The input is pre-filled with a working example: just click **Start**. |

**Example output**

| Ticker | Week of | Dark pool shares | WoW | vs average | Unusual | Top venue |
|---|---|---|---|---|---|---|
| XYZ | 2026-09-21 | 48,200,000 | +142% | 2.4x | Yes | UBS ATS (21%) |
| ABC | 2026-09-21 | 3,100,000 | -8% | 0.9x | No | JPM-X (18%) |

*Illustrative rows; real runs return the full fields listed under Output.*

Dark pools are private venues where institutions trade large blocks without showing their orders on an exchange. FINRA requires every alternative trading system (ATS) and off-exchange dealer to report their volume per stock, and publishes it weekly. This Actor turns that official data into one clean report per stock: how much traded in dark pools, the dollar value, the average trade size, the biggest venues, and whether this week was unusual compared with recent weeks.

### What you can do with it

- 🕶️ **Spot institutional accumulation:** a jump in dark pool volume often means big players are building or unwinding a position quietly.
- 🔎 **Market-wide scan:** leave tickers empty to get the most traded dark pool stocks of the week.
- 🩳 **Pair with short interest:** combine with [Short Squeeze Radar](https://apify.com/smartmoney-data/short-squeeze-radar) for a fuller picture of who is trading.
- 🏦 **Market structure research:** venue market share (UBS, JPM-X, Sigma X and others) per stock.

### How to use it

#### Your watchlist, 8 weeks of history

```json
{ "tickers": ["AAPL", "TSLA", "NVDA", "GME"] }
```

#### The 50 stocks with the most dark pool volume this week

```json
{ "topCount": 50 }
```

#### Only stocks with unusual dark pool activity (3x their average)

```json
{ "tickers": ["AMC", "GME", "PLTR", "SOFI"], "unusualRatio": 3, "onlyUnusual": true }
```

### Output

```json
{
  "ticker": "XYZ",
  "issueName": "XYZ Corp Common Stock",
  "tier": "NMS Tier 1",
  "weekStartDate": "2026-09-21",
  "atsShares": 48200000,
  "atsTrades": 412000,
  "atsNotionalUsd": 6120000000,
  "avgAtsTradeSize": 117,
  "otcNonAtsShares": 151000000,
  "offExchangeShares": 199200000,
  "atsShareOfOffExchangePct": 24.2,
  "atsChangeWoWPct": 142.1,
  "atsVsAverage": 2.4,
  "unusualAtsVolume": true,
  "topVenues": [{ "mpid": "UBSA", "name": "UBS ATS", "shares": 10100000, "trades": 61000, "sharePct": 21 }],
  "venueCount": 31,
  "history": [{ "weekStartDate": "2026-09-21", "atsShares": 48200000, "atsTrades": 412000, "atsNotionalUsd": 6120000000, "otcShares": 151000000 }]
}
```

`atsShares` is dark pool (ATS) volume. `otcNonAtsShares` is other off-exchange volume, mostly retail orders filled by wholesalers. The **`SUMMARY`** record lists the stocks flagged as unusual.

### Use it from code or an AI agent

**Python**

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("smartmoney-data/dark-pool-volume-tracker").call(run_input={"tickers": ["AAPL", "TSLA", "NVDA", "GME"]})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

**AI agents (Claude, ChatGPT, Cursor and other MCP clients):** connect the Apify MCP server with this Actor preloaded:

```text
https://mcp.apify.com/?tools=smartmoney-data/dark-pool-volume-tracker
```

Add this URL as a remote MCP server or custom connector in your AI client, sign in with Apify (OAuth), then just ask, for example:

> Which stocks had unusually high dark pool volume in the latest FINRA week?

> Part of the **SmartMoney Data** suite: [Short Squeeze Radar](https://apify.com/smartmoney-data/short-squeeze-radar) · [Institutional Ownership](https://apify.com/smartmoney-data/institutional-ownership-by-ticker) · [Insider Trades](https://apify.com/smartmoney-data/sec-insider-trades-tracker) · [Hedge Fund 13F](https://apify.com/smartmoney-data/sec-13f-hedge-fund-tracker) · [Smart Money Confluence](https://apify.com/smartmoney-data/smart-money-confluence-score)

### Pricing

**Pay per result:** you're charged for each stock report returned. See the **Pricing** tab for current rates.

### FAQ

**Is this real-time dark pool data?**
No. Real-time dark pool prints come from paid feeds. This is FINRA's official weekly data, published with a two to four week delay, which is free and authoritative.

**What is the difference between ATS and OTC volume?**
ATS volume is trading on registered alternative trading systems (dark pools). OTC non-ATS volume is other off-exchange trading, mostly wholesalers filling retail orders.

**Is this legal to use?**
Yes. FINRA publishes OTC Transparency data for public use.

### Support

Found a bug or need a feature? Open an issue on the **Issues** tab or email **smartmoney-data@googlegroups.com**.

*Data is provided for informational purposes only and is not investment advice.*

# Actor input Schema

## `tickers` (type: `array`):

US stocks to report on. Leave empty for the stocks with the most dark pool volume in the latest FINRA week.

## `weeks` (type: `integer`):

Weekly history included per stock, and the window the unusual-volume average is taken over.

## `topCount` (type: `integer`):

With no tickers: how many of the most traded dark pool stocks to return.

## `unusualRatio` (type: `number`):

Flag a stock when its latest week of dark pool volume is at least this multiple of its recent weekly average.

## `onlyUnusual` (type: `boolean`):

Return only stocks over the threshold.

## `topVenues` (type: `integer`):

How many of the largest dark pool venues (ATSs) to list per stock.

## Actor input object example

```json
{
  "tickers": [
    "AAPL",
    "TSLA",
    "NVDA",
    "GME"
  ],
  "weeks": 8,
  "topCount": 50,
  "unusualRatio": 2,
  "onlyUnusual": false,
  "topVenues": 5
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `summary` (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 = {
    "tickers": [
        "AAPL",
        "TSLA",
        "NVDA",
        "GME"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("smartmoney-data/dark-pool-volume-tracker").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 = { "tickers": [
        "AAPL",
        "TSLA",
        "NVDA",
        "GME",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("smartmoney-data/dark-pool-volume-tracker").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "tickers": [
    "AAPL",
    "TSLA",
    "NVDA",
    "GME"
  ]
}' |
apify call smartmoney-data/dark-pool-volume-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,smartmoney-data/dark-pool-volume-tracker"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/fWTdDTUFzQAb2yjwo/builds/8fKfnIdxsVCRQNJXr/openapi.json
