# Binance Spot Market Scraper (`logiover/binance-spot-market-scraper`) Actor

Scrape live spot market data for all 3,500+ Binance trading pairs in one run — last price, 24h change, high/low, volume, quote volume, bid/ask and trade count. Filter by quote asset and volume. Schedule it for a continuously fresh price feed.

- **URL**: https://apify.com/logiover/binance-spot-market-scraper.md
- **Developed by:** [Logiover](https://apify.com/logiover) (community)
- **Categories:** Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

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

## 🟡 Binance Spot Market Scraper — Live Prices for 3,500+ Trading Pairs

![Binance Spot Market Scraper](https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/GjS6nQ8qauOdq9KGy-actor-NczmSq4CB7Gehsfr1-iGA2dCGwW6-46809822-Dl21_big.png)

**Bulk-export every Binance spot pair — last price, 24h change, high/low, base + quote volume, best bid/ask and trade count — in one fast, structured run.** Powered directly by Binance's official public market data API, with no login, no API key, no proxy and no scraping fragility.

Built for **crypto algorithmic traders, market makers, quant desks, portfolio dashboards, tax software, exchange aggregators and indexer pipelines** that need Binance prices at scale — without writing batching, retry, sorting and filtering logic from scratch.

🟢 No API key. No proxy. No login. No browser automation. Pure public REST API.

---

### 🚀 Why this scraper

Binance is the largest cryptocurrency exchange in the world by spot volume, and `BTCUSDT`, `ETHUSDT`, `SOLUSDT` and friends quoted on Binance are the *reference prices* used by almost every crypto product. Their public 24-hour ticker endpoint (`/api/v3/ticker/24hr`) returns the entire spot universe in a single call — but using that data well at scale requires:

- Parsing numeric strings into proper floats
- Filtering to the quote assets you actually trade against (USDT, FDUSD, BTC, ETH, USDC, TRY, EUR…)
- Dropping the long tail of dead pairs with no real volume
- Filtering to `TRADING`-status pairs only when needed
- Sorting by the metric that matters for your use case (quote volume vs. price change vs. trade count)
- Streaming the rows into a dataset you can export as JSON, CSV or Excel

This Binance spot scraper does all of that for you — and runs in seconds.

---

### 🎯 What this scraper does

This actor wraps Binance's official `exchangeInfo` + `ticker/24hr` endpoints and returns a fully flattened, ready-to-use snapshot of **all 3,500+ Binance spot trading pairs** in one run. Each row contains the trading pair symbol, base / quote asset breakdown, current trading status, last price, 24h price change (absolute and percent), 24h high / low / open, weighted average price, base and quote volume, best bid and ask, and 24h trade count.

It is a drop-in **Binance API scraper** for anyone who would otherwise have to maintain their own data pipeline against Binance.

---

### ✨ Key features

| Feature | What it gives you |
|---|---|
| 🟡 **Official Binance public API** | Direct connection to `api.binance.com` — no HTML scraping, no Cloudflare bypass |
| 📊 **Full spot coverage** | All 3,500+ Binance spot trading pairs in one run |
| 💱 **Quote-asset filter** | Keep only `USDT`, `FDUSD`, `BTC`, `ETH`, `USDC`, `TRY`, `EUR` or any combination |
| 📉 **Volume filter** | `minQuoteVolume` drops dead pairs below your liquidity threshold |
| ✅ **Trading-status filter** | Optional `tradingOnly` flag keeps only pairs currently in `TRADING` status |
| 🔢 **Multi-metric sorting** | Rank by `quoteVolume`, `volume`, `priceChangePercent`, `lastPrice` or `tradeCount` |
| 📤 **Flat, export-ready rows** | 18 columns, no nested JSON — CSV / Excel / JSON / XML out of the box |
| ⚡ **Fast** | Whole spot universe in 3–5 seconds |
| 🔓 **No authentication** | No Binance API key, no proxy, no login |
| 🔁 **Schedule-friendly** | Designed for recurring runs every minute, every hour or every day |
| 🛠️ **Apify Dataset views** | Pre-built `Overview` table for instant visual inspection |
| 🌍 **Global** | Works from any Apify region, no IP restrictions |

---

### 🎯 Built for these use cases

#### 1. Algorithmic & quantitative trading
Power live signal generation, mean-reversion bots, momentum bots and grid bots with a clean Binance price feed. Quote volume sort lets your strategy focus on the most liquid markets first, while `minQuoteVolume` removes noisy low-volume pairs that would otherwise pollute backtests.

#### 2. Cross-exchange arbitrage detection
Combine this scraper with our **`kraken-market-scraper`**, **`bybit-market-scraper`**, **`kucoin-market-scraper`**, **`okx-market-scraper`**, **`mexc-market-scraper`** and **`bitget-market-scraper`** to build a real-time arbitrage matrix across every major centralized exchange. Same fields, same shape — easy to join.

#### 3. Trading bot price feeds
Schedule the actor every 1–5 minutes and push the dataset to your bot via Apify webhooks, the Apify API, Make, Zapier or n8n. Filter by `quoteAssets: ["USDT"]` to keep your feed lean.

#### 4. Backtesting & historical archive
Run the actor on a fixed schedule (every 15 minutes, hourly, daily) to accumulate a tick-resolution-free historical archive of the Binance market. Export as CSV / Parquet and load into your backtester or data warehouse.

#### 5. Portfolio dashboards
Combine a wallet's holdings with the live Binance USDT prices to value the portfolio in real time. The `quoteAssets: ["USDT"]` + `sortBy: "quoteVolume"` combo is perfect for top-N portfolio displays.

#### 6. Tax & accounting reporting
Snapshot Binance prices at end-of-day or end-of-month for cost-basis tracking. Every record carries an ISO-8601 `scrapedAt` timestamp.

#### 7. Market research & competitor intelligence
Track Binance market share, volume distribution by quote asset, listing additions, and how `BTCUSDT` price spread compares to `BTCFDUSD`, `BTCUSDC` and `BTCTUSD`.

#### 8. Crypto data products / API resellers
Use this Binance scraper as a reliable upstream source for your own data product, screener, dashboard or B2B API. The flat output is easy to re-publish.

---

### 📥 Inputs

| Field | Type | Required | Description |
|---|---|---|---|
| `quoteAssets` | string[] | No | Filter to pairs with these quote assets (e.g. `USDT`, `FDUSD`, `BTC`, `ETH`, `USDC`, `TRY`, `EUR`). Leave empty for all. |
| `minQuoteVolume` | integer | No | Drop pairs with 24h quote volume below this. `0` = no filter. Useful for removing dead pairs. |
| `sortBy` | string (enum) | No | One of `quoteVolume`, `volume`, `priceChangePercent`, `lastPrice`, `tradeCount`. Default `quoteVolume`. |
| `tradingOnly` | boolean | No | If `true`, only include pairs currently in `TRADING` status. Default `false` (all pairs including `BREAK`, `HALT`). |
| `maxPairs` | integer | No | Cap rows saved. `0` = all (~3,500). |

#### Example inputs

**Full Binance USDT market, liquid pairs only:**
```json
{
  "quoteAssets": ["USDT"],
  "minQuoteVolume": 1000000,
  "sortBy": "quoteVolume",
  "tradingOnly": true,
  "maxPairs": 0
}
````

**Top-20 movers across all quote assets:**

```json
{
  "sortBy": "priceChangePercent",
  "tradingOnly": true,
  "maxPairs": 20
}
```

**Stablecoin-pair monitor (USDT / FDUSD / USDC):**

```json
{
  "quoteAssets": ["USDT", "FDUSD", "USDC"],
  "minQuoteVolume": 500000,
  "sortBy": "quoteVolume"
}
```

***

### 📤 Output

```json
{
  "symbol": "BTCUSDT",
  "baseAsset": "BTC",
  "quoteAsset": "USDT",
  "status": "TRADING",
  "lastPrice": 64235.10,
  "priceChange": 1225.10,
  "priceChangePercent": 1.94,
  "weightedAvgPrice": 63712.42,
  "openPrice": 63010.00,
  "highPrice": 64880.00,
  "lowPrice": 62700.00,
  "volume": 12850.4,
  "quoteVolume": 821400000.0,
  "bidPrice": 64234.90,
  "askPrice": 64235.20,
  "tradeCount": 1284503,
  "openTime": "2026-05-15T09:00:00.000Z",
  "closeTime": "2026-05-16T09:00:00.000Z",
  "scrapedAt": "2026-05-16T09:00:01.250Z"
}
```

#### Field reference

| Field | Type | Meaning |
|---|---|---|
| `symbol` | string | Trading pair symbol (e.g. `BTCUSDT`, `ETHFDUSD`, `BNBBTC`) |
| `baseAsset` | string | Base asset of the pair (e.g. `BTC`) |
| `quoteAsset` | string | Quote asset of the pair (e.g. `USDT`) |
| `status` | string | Binance status code: `TRADING`, `BREAK`, `HALT`, etc. |
| `lastPrice` | number | Most recent traded price |
| `priceChange` | number | Absolute 24h price change |
| `priceChangePercent` | number | 24h price change % |
| `weightedAvgPrice` | number | 24h weighted average price (VWAP) |
| `openPrice` | number | Price 24 hours ago |
| `highPrice` / `lowPrice` | number | 24h high and low price |
| `volume` | number | 24h volume in the base asset |
| `quoteVolume` | number | 24h volume in the quote asset (USD if quote=USDT) |
| `bidPrice` / `askPrice` | number | Best current bid and ask |
| `tradeCount` | number | Number of trades in the last 24h |
| `openTime` / `closeTime` | string | Start / end of the 24h window (ISO-8601) |
| `scrapedAt` | string | ISO-8601 timestamp of when this row was generated |

***

### ⚙️ How it works

1. **Loads input** — quote-asset filter, min-volume filter, sort, status filter and row cap
2. **Calls Binance `exchangeInfo`** — to learn the base / quote / status of every symbol
3. **Calls Binance `ticker/24hr`** — for the entire spot market in one request
4. **Joins** the two responses on `symbol`
5. **Parses numerics** — Binance returns prices as strings; the scraper converts them to proper floats
6. **Filters** — by quote asset, by min quote volume, by trading status
7. **Sorts** by your chosen metric
8. **Caps** at `maxPairs` if set
9. **Streams** flat rows into the Apify dataset (live in the run console)

The actor uses ONLY Binance's officially-supported public REST API (`api.binance.com`). No HTML scraping, no headless browser, no proxy, no anti-bot bypass. Endpoints are documented at [binance-docs.github.io](https://binance-docs.github.io/apidocs/spot/en/).

***

### ⚡ Performance

| Workload | Time | API calls |
|---|---|---|
| All 3,500+ pairs, no filter | ~3 seconds | 2 |
| USDT pairs only, min volume 1M | ~3 seconds | 2 |
| Top 100 by volume | ~3 seconds | 2 |
| Full market + sort + cap 500 | ~4 seconds | 2 |

Because both endpoints respond in a single shot, run time is constant regardless of how many pairs you keep — there is no per-pair API call.

***

### 💰 Cost model

This actor is **Pay-Per-Event** — you are charged a small per-run fee plus a small per-dataset-item fee. There is no charge for filtered-out pairs, so tightening `minQuoteVolume` or limiting to one `quoteAssets` keeps the bill low.

Typical run sizes:

- Top 100 USDT pairs → 100 rows
- All liquid USDT pairs (≥ $1M volume) → ~400 rows
- Entire spot market → ~3,500 rows

***

### 🔄 Schedule for continuous monitoring

Use Apify's scheduler to keep your Binance dataset always fresh:

- **Every 1 minute** — for high-frequency trading bots and arbitrage detection
- **Every 5 minutes** — for live dashboards and screeners
- **Every 15 minutes** — for portfolio refresh and alerts
- **Hourly** — for backtesting archives and analytics
- **Daily** — for end-of-day snapshots and tax / accounting cost-basis tracking

Pair the schedule with Apify webhooks to push the fresh dataset into your database, Slack channel, Discord server, Google Sheet or HTTP endpoint.

***

### 🛠️ FAQ

**Do I need a Binance API key?**
No. The scraper uses Binance's public market data endpoints, which require no authentication. You only need an Apify account.

**Does the Binance public API have rate limits?**
Yes — but this scraper makes only two requests per run (`exchangeInfo` and `ticker/24hr`), so you are nowhere near the limits even when scheduled every minute.

**Which markets are supported?**
All 3,500+ **Binance spot** trading pairs across every quote asset Binance lists: USDT, FDUSD, USDC, BTC, ETH, BNB, BUSD-legacy, TRY, EUR, BRL, ARS, JPY and more.

**Does this cover Binance Futures?**
No — this scraper is spot-only by design (`api.binance.com`). For derivatives data you would want a dedicated futures actor. For now, our **`bybit-market-scraper`** and **`bitget-market-scraper`** cover both spot and futures if you need an alternative.

**Does this work for Binance.US?**
This scraper targets the global `api.binance.com` endpoint, not `api.binance.us`. If you need Binance.US specifically, please reach out — we can spin up a variant.

**How fresh is the data?**
The Binance `ticker/24hr` endpoint refreshes every few seconds. Each run captures the latest snapshot at the moment of execution; `scrapedAt` lets you know exactly when.

**Can I get historical OHLCV / candlestick data?**
Not from this scraper — it returns 24h snapshots. For a candle history (1m/5m/1h/1d bars over months), you can run this on a tight schedule and aggregate, or request a custom candlestick scraper.

**Can I export to CSV or Excel?**
Yes. The Apify dataset exports natively as JSON, CSV, Excel (XLSX), HTML, XML and JSONL.

**Does this respect Binance's rate limits?**
Absolutely. With only 2 endpoints called per run, the actor is well below Binance's documented 1,200 weight / minute and 6,000 weight / minute limits.

**What's the difference between this and `coinpaprika-crypto-market-scraper`?**

- **This actor** = exchange-specific (Binance spot only), pair-level granularity (`BTCUSDT`, `ETHUSDT`…) with bid/ask, trade count and full 24h OHLCV.
- **`coinpaprika-crypto-market-scraper`** = exchange-agnostic coin-level data (BTC, ETH, SOL…) with ranks, market cap, supply and ATH. Use that for a market-cap dashboard, use this for a Binance-specific trading feed.

**Can I integrate via webhook / API?**
Yes. Apify exposes REST API endpoints for run triggers and dataset downloads, plus webhooks that fire on run finish. Works with Zapier, Make, n8n and any HTTP client.

**Can I schedule the actor?**
Yes — Apify Scheduler supports cron expressions down to every minute.

***

### 📚 Related crypto exchange scrapers

| Scraper | Coverage |
|---|---|
| **`binance-spot-market-scraper`** | **You are here.** Binance spot — all 3,500+ pairs. |
| **`kraken-market-scraper`** | Kraken spot — every Kraken trading pair with VWAP. |
| **`bybit-market-scraper`** | Bybit spot + linear / inverse futures with funding rate. |
| **`okx-market-scraper`** | OKX spot + SWAP (perpetuals) + FUTURES + OPTION. |
| **`kucoin-market-scraper`** | KuCoin every spot pair with quote-currency filter. |
| **`bitget-market-scraper`** | Bitget spot + USDT-margined + coin-margined futures. |
| **`mexc-market-scraper`** | MEXC every spot pair (gem-listing focus). |
| **`coinpaprika-crypto-market-scraper`** | Cross-exchange coin-level (price, rank, market cap, supply, ATH). |

***

### 🔑 Keyword cloud

**Core:** binance api scraper, binance price api, binance spot market data, binance scraper, binance market data export, binance 24h ticker scraper, binance ticker api, binance prices to csv, binance prices to excel, binance bulk export, binance no api key, binance public api scraper.

**Per pair / asset:** btc usdt price binance, eth usdt price binance, sol usdt price binance, bnb price scraper, doge usdt scraper, xrp usdt scraper, link usdt scraper, fdusd pairs scraper, usdc pairs binance, btc spot price, ethereum binance price, altcoin price feed binance.

**Per use case:** crypto algo trading data, crypto arbitrage data, exchange arbitrage feed, binance trading bot feed, crypto portfolio dashboard data, crypto tax reporting data, crypto market screener data, crypto market research data, crypto backtest data, real-time crypto price feed, crypto dashboard data feed.

**Per audience:** crypto data for quants, exchange api for traders, market data api for developers, crypto data for arbitrageurs, binance data for analysts, binance data for indexers, web3 market data, crypto pricing data for fintech.

# Actor input Schema

## `quoteAssets` (type: `array`):

Filter to pairs with these quote assets, e.g. 'USDT', 'BTC', 'ETH', 'FDUSD'. Leave empty for all.

## `minQuoteVolume` (type: `integer`):

Drop pairs with 24h quote volume below this — filters out dead pairs. 0 = no filter.

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

Rank pairs by this metric.

## `tradingOnly` (type: `boolean`):

Only include pairs currently in TRADING status. Off by default so you get every pair (3,500+).

## `maxPairs` (type: `integer`):

Maximum pairs to save. 0 = all (3,500+).

## Actor input object example

```json
{
  "quoteAssets": [],
  "minQuoteVolume": 0,
  "sortBy": "quoteVolume",
  "tradingOnly": false
}
```

# Actor output Schema

## `symbol` (type: `string`):

symbol

## `lastPrice` (type: `string`):

lastPrice

## `priceChangePercent` (type: `string`):

priceChangePercent

## `highPrice` (type: `string`):

highPrice

## `lowPrice` (type: `string`):

lowPrice

## `quoteVolume` (type: `string`):

quoteVolume

## `tradeCount` (type: `string`):

tradeCount

# 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 = {
    "quoteAssets": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/binance-spot-market-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 = { "quoteAssets": [] }

# Run the Actor and wait for it to finish
run = client.actor("logiover/binance-spot-market-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 '{
  "quoteAssets": []
}' |
apify call logiover/binance-spot-market-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=logiover/binance-spot-market-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Binance Spot Market Scraper",
        "description": "Scrape live spot market data for all 3,500+ Binance trading pairs in one run — last price, 24h change, high/low, volume, quote volume, bid/ask and trade count. Filter by quote asset and volume. Schedule it for a continuously fresh price feed.",
        "version": "0.1",
        "x-build-id": "lZdqJUCRLZfYSfaEj"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/logiover~binance-spot-market-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-logiover-binance-spot-market-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/logiover~binance-spot-market-scraper/runs": {
            "post": {
                "operationId": "runs-sync-logiover-binance-spot-market-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/logiover~binance-spot-market-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-logiover-binance-spot-market-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": {
                    "quoteAssets": {
                        "title": "Quote Assets",
                        "type": "array",
                        "description": "Filter to pairs with these quote assets, e.g. 'USDT', 'BTC', 'ETH', 'FDUSD'. Leave empty for all.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "minQuoteVolume": {
                        "title": "Minimum 24h Quote Volume",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Drop pairs with 24h quote volume below this — filters out dead pairs. 0 = no filter.",
                        "default": 0
                    },
                    "sortBy": {
                        "title": "Sort By",
                        "enum": [
                            "quoteVolume",
                            "volume",
                            "priceChangePercent",
                            "lastPrice",
                            "tradeCount"
                        ],
                        "type": "string",
                        "description": "Rank pairs by this metric.",
                        "default": "quoteVolume"
                    },
                    "tradingOnly": {
                        "title": "Trading Pairs Only",
                        "type": "boolean",
                        "description": "Only include pairs currently in TRADING status. Off by default so you get every pair (3,500+).",
                        "default": false
                    },
                    "maxPairs": {
                        "title": "Max Pairs",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum pairs to save. 0 = all (3,500+)."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
