# CoinPaprika Scraper (`crawlerbros/coinpaprika-scraper`) Actor

Scrape live crypto market data from CoinPaprika with top coins by market cap, specific coin lookups with rich detail (description, social links, tags), search, exchanges, and global market stats. Public API, no key required, no per-minute rate limit.

- **URL**: https://apify.com/crawlerbros/coinpaprika-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Developer tools, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 20 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## CoinPaprika Scraper

Scrape live crypto market data from **CoinPaprika** — covering 12K+ coins, 350+ exchanges, and live market stats. Pulls prices, market caps, volumes, all-time highs, supply data, social links, descriptions, tags, and global market stats.

Public API, **no API key required**, **no per-minute rate limit** (free tier ≈ 25K req/month).

### What you get

#### Coin records (`recordType=coin`)

Markets / coins mode:

| Field | Description |
| --- | --- |
| `id` | CoinPaprika coin ID (`btc-bitcoin`, `eth-ethereum`, …) |
| `symbol` | Ticker (`btc`) |
| `name` | Display name |
| `marketCapRank` | Rank by market cap |
| `currentPrice` | Current price in `quoteCurrency` |
| `marketCap` | Market cap in `quoteCurrency` |
| `totalVolume24h` | 24h trading volume |
| `priceChangePercentage15m`, `priceChangePercentage30m`, `priceChangePercentage1h`, `priceChangePercentage6h`, `priceChangePercentage12h` | Short-window price moves |
| `priceChangePercentage24h`, `priceChangePercentage7d`, `priceChangePercentage30d`, `priceChangePercentage1y` | Long-window price moves |
| `marketCapChangePercentage24h`, `volumeChangePercentage24h` | 24h aggregate moves |
| `circulatingSupply`, `totalSupply`, `maxSupply` | Supply data |
| `allTimeHigh`, `allTimeHighDate`, `allTimeHighChangePercentage` | ATH info |
| `betaValue` | Beta vs BTC |
| `firstDataAt`, `lastUpdated` | Timestamps |
| `quoteCurrency` | Quote currency for prices (e.g. `USD`) |
| `url` | Public CoinPaprika URL |

Coins mode (with `includeDetails=true`) also adds:

| Field | Description |
| --- | --- |
| `description` | Coin description (HTML stripped) |
| `tags` | Array of tag names |
| `type` | `coin` / `token` |
| `openSource`, `developmentStatus`, `hardwareWallet` | Booleans |
| `proofType`, `hashAlgorithm`, `orgStructure` | Metadata |
| `startedAt` | Genesis date |
| `teamSize` | Number of team members |
| `social` | `{homepage, twitter, reddit, github, youtube, telegram}` |

#### Exchange records (`recordType=exchange`)

| Field | Description |
| --- | --- |
| `id`, `name` | Exchange metadata |
| `type` | Array (e.g. `["cex", "spot"]`) |
| `active`, `websiteStatus` | Booleans |
| `marketCapRank` | Adjusted rank |
| `currenciesCount`, `marketsCount` | Inventory |
| `reportedVolume24hUsd`, `adjustedVolume24hUsd` | 24h volume in USD |
| `social` | `{website, twitter}` |
| `description` | Exchange description |

#### Global record (`recordType=global`)

| Field | Description |
| --- | --- |
| `totalMarketCapUsd`, `totalVolume24hUsd` | Aggregate market cap + volume in USD |
| `bitcoinDominancePercentage` | BTC dominance |
| `cryptocurrenciesNumber` | Total tracked coins |
| `marketCapAthValue`, `marketCapAthDate` | Market-cap ATH |
| `volume24hAthValue`, `volume24hAthDate` | Volume ATH |
| `marketCapChangePercentage24h`, `volumeChangePercentage24h` | 24h aggregate moves |
| `updatedAt` | Unix timestamp |

Empty fields are dropped at every depth.

### Input

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| `mode` | Enum | `markets` | `markets` / `coins` / `search` / `exchanges` / `global` / `coinEvents` / `coinMarkets` / `coinExchanges` / `tags` / `ohlcv` / `priceConverter` |
| `quoteCurrency` | Enum | `USD` | `USD`, `BTC`, `ETH`, `EUR`, `GBP`, `JPY`, `PLN`, `KRW`, `CNY`, `INR` |
| `coinIds` | Array | — | CoinPaprika coin IDs (mode=coins, coinEvents, coinMarkets, coinExchanges, ohlcv) |
| `tagIds` | Array | — | Tag IDs (mode=tags) — leave empty to list ALL tags |
| `baseCurrencyId` | String | — | FROM coin ID (mode=priceConverter) |
| `quoteCurrencyId` | String | — | TO coin ID (mode=priceConverter) |
| `amount` | Integer | `1` | Amount to convert (mode=priceConverter) |
| `includeDetails` | Boolean | `true` | Fetch rich detail per coin (mode=coins) |
| `searchQuery` | String | `bitcoin` | Search query (mode=search) |
| `order` | Enum | `market_cap_desc` | Client-side sort for mode=markets |
| `minMarketCap` | Integer | — | Drop coins below this market cap |
| `min24hVolume` | Integer | — | Drop coins below this 24h volume |
| `maxItems` | Integer | `50` | Hard cap (1-5000) |
| `useProxy` | Boolean | `false` | Route through Apify proxy with auto IP rotation (bypasses per-IP rate limits) |
| `proxyGroups` | Array | `[]` | Apify proxy groups (e.g. `["RESIDENTIAL"]`); empty = auto |
| `rotateEveryNRequests` | Integer | `25` | When using proxy, swap IP every N requests (also rotates on 429) |

#### Example input — top 100 coins by market cap

```json
{
  "mode": "markets",
  "quoteCurrency": "USD",
  "order": "market_cap_desc",
  "maxItems": 100
}
````

#### Example input — biggest 24h gainers

```json
{
  "mode": "markets",
  "order": "change_24h_desc",
  "minMarketCap": 100000000,
  "maxItems": 50
}
```

#### Example input — specific coins (rich detail)

```json
{
  "mode": "coins",
  "coinIds": ["btc-bitcoin", "eth-ethereum", "sol-solana", "ada-cardano"],
  "quoteCurrency": "USD",
  "includeDetails": true
}
```

#### Example input — search

```json
{
  "mode": "search",
  "searchQuery": "doge"
}
```

#### Example input — top exchanges

```json
{
  "mode": "exchanges",
  "maxItems": 20
}
```

#### Example input — global market overview

```json
{
  "mode": "global"
}
```

#### Example input — coin events (hard-fork dates, listings, milestones)

```json
{
  "mode": "coinEvents",
  "coinIds": ["btc-bitcoin", "eth-ethereum"],
  "maxItems": 100
}
```

#### Example input — per-coin pair markets (where each coin trades)

```json
{
  "mode": "coinMarkets",
  "coinIds": ["btc-bitcoin"],
  "quoteCurrency": "USD",
  "maxItems": 200
}
```

#### Example input — exchanges that list a coin

```json
{
  "mode": "coinExchanges",
  "coinIds": ["btc-bitcoin", "eth-ethereum"]
}
```

#### Example input — tag taxonomy

```json
{
  "mode": "tags",
  "maxItems": 100
}
```

#### Example input — specific tags with member coins

```json
{
  "mode": "tags",
  "tagIds": ["defi", "stablecoin", "dao"]
}
```

#### Example input — latest OHLCV (open/high/low/close/volume) for a coin

```json
{
  "mode": "ohlcv",
  "coinIds": ["btc-bitcoin", "eth-ethereum"],
  "quoteCurrency": "USD"
}
```

#### Example input — price converter (BTC → ETH)

```json
{
  "mode": "priceConverter",
  "baseCurrencyId": "btc-bitcoin",
  "quoteCurrencyId": "eth-ethereum",
  "amount": 1
}
```

### Example output

```json
{
  "recordType": "coin",
  "id": "btc-bitcoin",
  "symbol": "btc",
  "name": "Bitcoin",
  "url": "https://coinpaprika.com/coin/btc-bitcoin/",
  "quoteCurrency": "USD",
  "marketCapRank": 1,
  "currentPrice": 82397.0894,
  "marketCap": 1650043655158.0,
  "totalVolume24h": 35994071984.028,
  "priceChangePercentage1h": -0.13,
  "priceChangePercentage24h": 1.12,
  "priceChangePercentage7d": 7.29,
  "circulatingSupply": 20025512.0,
  "maxSupply": 21000000.0,
  "allTimeHigh": 126173.1778,
  "allTimeHighDate": "2025-10-06T19:00:40Z",
  "allTimeHighChangePercentage": -34.72,
  "betaValue": 0.9336,
  "lastUpdated": "2026-05-06T12:35:16Z",
  "scrapedAt": "2026-05-06T12:36:00Z"
}
```

### Use cases

- **Crypto trading bots** — Live price + multi-window % moves (15m to 1y).
- **Portfolio trackers** — Snapshot pricing across hundreds of coins.
- **Market dashboards** — `mode=global` for daily summaries.
- **Token research** — `mode=coins` with `includeDetails` for description, tags, social links.
- **Exchange-comparison analytics** — `mode=exchanges` with adjusted volumes.
- **Tax / accounting** — Historical price snapshots when scheduled.

### FAQ

**Do I need an API key?**
No. CoinPaprika's public endpoints (`/tickers`, `/coins`, `/search`, `/exchanges`, `/global`) work without a key. Their paid Pro tier offers higher historical depth and additional endpoints; this actor doesn't require it.

**What's the rate limit?**
Free tier ≈ 25,000 calls / month with no per-minute cap (much more generous than CoinGecko). The actor only makes one `/tickers` call for `markets` mode and at most 2 calls per coin in `coins` mode.

**Can I bypass the rate limit entirely?**
Yes — set `useProxy=true` and the actor rotates Apify proxy IPs every 25 requests (configurable) plus on every HTTP 429. Each IP gets its own quota, so the effective rate limit becomes (your IP pool size × upstream limit). Pair with `proxyGroups=["RESIDENTIAL"]` for the largest pool. Adds proxy cost.

**What if I get blocked mid-run?**
By default the actor auto-engages Apify proxy when it hits a block (HTTP 403/429 from the raw datacenter IP) and retries the request. Set `autoEscalateOnBlock=false` to disable (the run fails fast instead of paying proxy cost).

**How do I find a CoinPaprika coin ID?**
Run `mode=search` with the coin name, then read the `id` field from the results. CoinPaprika IDs use the `{symbol}-{slug}` format (`btc-bitcoin`, `eth-ethereum`, `bnb-binance-coin`).

**What's the difference between `mode=markets` and `mode=coins`?**

- `markets` returns the full ticker list (12K+ coins) sorted client-side — fast, one API call, no description/tags.
- `coins` returns rich per-coin detail (description, social links, tags, team size) — 1-2 requests per coin, but much richer.

**How current is the data?**
Live — every run hits CoinPaprika at request time. Their data is typically updated every 1-3 minutes.

**Do I need a proxy?**
No. CoinPaprika serves datacenter IPs directly without challenges.

### Limitations

- Free tier has no documented per-minute cap, but burst limits exist; the actor backs off and retries on 429.
- **Historical OHLCV** (`/coins/{id}/ohlcv/historical`) requires a paid CoinPaprika plan and is therefore **not** exposed; only `mode=ohlcv` (latest day) is supported.
- **Per-person profiles** (`/people/{id}`) and **ICO listings** (`/ico`) endpoints have been removed from CoinPaprika's public API and are not exposed.
- **Trending / categories** endpoints aren't part of CoinPaprika's public API; use `order=change_24h_desc` on `mode=markets` for a "trending" proxy and `mode=tags` for category browsing.
- Some lightly traded coins may have stale `lastUpdated` timestamps.

# Actor input Schema

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

What to fetch.

## `quoteCurrency` (type: `string`):

Quote currency for prices/market cap. Supported: USD, BTC, ETH, EUR, GBP, JPY, PLN, KRW, CNY, INR.

## `coinIds` (type: `array`):

CoinPaprika coin IDs (e.g. `["btc-bitcoin", "eth-ethereum", "sol-solana"]`). Use `mode=search` to discover IDs.

## `includeDetails` (type: `boolean`):

If true, fetches `/coins/{id}` per ID for description, tags, social links, team size. Doubles request count.

## `searchQuery` (type: `string`):

Query (matches coin name + symbol). E.g. `bitcoin`, `eth`, `dogecoin`.

## `tagIds` (type: `array`):

Specific CoinPaprika tag IDs to fetch detail for (e.g. `["defi", "stablecoin", "dao"]`). Leave empty in `mode=tags` to list ALL tags.

## `baseCurrencyId` (type: `string`):

CoinPaprika ID of the FROM currency (e.g. `btc-bitcoin`, `usd-us-dollars`).

## `quoteCurrencyId` (type: `string`):

CoinPaprika ID of the TO currency (e.g. `eth-ethereum`, `usd-us-dollars`).

## `amount` (type: `integer`):

Amount of the base currency to convert. Default 1.

## `order` (type: `string`):

Client-side sort applied to the full ticker list before slicing.

## `minMarketCap` (type: `integer`):

Drop coins with market cap below this. Applied client-side after fetch.

## `min24hVolume` (type: `integer`):

Drop coins with 24h trading volume below this.

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

Hard cap on emitted records.

## `useProxy` (type: `boolean`):

If true, routes requests through Apify proxy and rotates IP every N requests + on every HTTP 429. Each IP gets its own per-IP quota, so this effectively removes any per-IP limit. Adds proxy cost.

## `autoEscalateOnBlock` (type: `boolean`):

If true (default), the actor automatically engages Apify proxy and retries when it hits HTTP 403/429 from a raw datacenter IP. Set to false to disable (request fails fast instead of paying proxy cost).

## `proxyGroups` (type: `array`):

Apify proxy groups (e.g. `["RESIDENTIAL"]` or `["DATACENTER"]`). Leave empty to use the default auto group. Only used when `useProxy` is true.

## `rotateEveryNRequests` (type: `integer`):

When using a proxy, swap to a fresh IP after this many successful requests (in addition to rotating on 429). Lower values give more headroom against burst limits at slight latency cost.

## Actor input object example

```json
{
  "mode": "markets",
  "quoteCurrency": "USD",
  "coinIds": [],
  "includeDetails": true,
  "searchQuery": "bitcoin",
  "tagIds": [],
  "amount": 1,
  "order": "market_cap_desc",
  "maxItems": 50,
  "useProxy": false,
  "autoEscalateOnBlock": true,
  "proxyGroups": [],
  "rotateEveryNRequests": 25
}
```

# Actor output Schema

## `records` (type: `string`):

Dataset of all scraped CoinPaprika records (coins, exchanges, global stats).

# 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 = {
    "mode": "markets",
    "quoteCurrency": "USD",
    "includeDetails": true,
    "searchQuery": "bitcoin",
    "maxItems": 50,
    "useProxy": false,
    "autoEscalateOnBlock": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/coinpaprika-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 = {
    "mode": "markets",
    "quoteCurrency": "USD",
    "includeDetails": True,
    "searchQuery": "bitcoin",
    "maxItems": 50,
    "useProxy": False,
    "autoEscalateOnBlock": True,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/coinpaprika-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 '{
  "mode": "markets",
  "quoteCurrency": "USD",
  "includeDetails": true,
  "searchQuery": "bitcoin",
  "maxItems": 50,
  "useProxy": false,
  "autoEscalateOnBlock": true
}' |
apify call crawlerbros/coinpaprika-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "CoinPaprika Scraper",
        "description": "Scrape live crypto market data from CoinPaprika with top coins by market cap, specific coin lookups with rich detail (description, social links, tags), search, exchanges, and global market stats. Public API, no key required, no per-minute rate limit.",
        "version": "1.0",
        "x-build-id": "VIb9Au9x4vFiVrrL3"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~coinpaprika-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-coinpaprika-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/crawlerbros~coinpaprika-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-coinpaprika-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/crawlerbros~coinpaprika-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-coinpaprika-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",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "markets",
                            "coins",
                            "search",
                            "exchanges",
                            "global",
                            "coinEvents",
                            "coinMarkets",
                            "coinExchanges",
                            "tags",
                            "ohlcv",
                            "priceConverter"
                        ],
                        "type": "string",
                        "description": "What to fetch.",
                        "default": "markets"
                    },
                    "quoteCurrency": {
                        "title": "Quote currency",
                        "enum": [
                            "USD",
                            "BTC",
                            "ETH",
                            "EUR",
                            "GBP",
                            "JPY",
                            "PLN",
                            "KRW",
                            "CNY",
                            "INR"
                        ],
                        "type": "string",
                        "description": "Quote currency for prices/market cap. Supported: USD, BTC, ETH, EUR, GBP, JPY, PLN, KRW, CNY, INR.",
                        "default": "USD"
                    },
                    "coinIds": {
                        "title": "Coin IDs (mode=coins, coinEvents, coinMarkets, coinExchanges, ohlcv)",
                        "type": "array",
                        "description": "CoinPaprika coin IDs (e.g. `[\"btc-bitcoin\", \"eth-ethereum\", \"sol-solana\"]`). Use `mode=search` to discover IDs.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "includeDetails": {
                        "title": "Include rich coin detail (mode=coins)",
                        "type": "boolean",
                        "description": "If true, fetches `/coins/{id}` per ID for description, tags, social links, team size. Doubles request count.",
                        "default": true
                    },
                    "searchQuery": {
                        "title": "Search query (mode=search)",
                        "type": "string",
                        "description": "Query (matches coin name + symbol). E.g. `bitcoin`, `eth`, `dogecoin`.",
                        "default": "bitcoin"
                    },
                    "tagIds": {
                        "title": "Tag IDs (mode=tags)",
                        "type": "array",
                        "description": "Specific CoinPaprika tag IDs to fetch detail for (e.g. `[\"defi\", \"stablecoin\", \"dao\"]`). Leave empty in `mode=tags` to list ALL tags.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "baseCurrencyId": {
                        "title": "Base currency ID (mode=priceConverter)",
                        "type": "string",
                        "description": "CoinPaprika ID of the FROM currency (e.g. `btc-bitcoin`, `usd-us-dollars`)."
                    },
                    "quoteCurrencyId": {
                        "title": "Quote currency ID (mode=priceConverter)",
                        "type": "string",
                        "description": "CoinPaprika ID of the TO currency (e.g. `eth-ethereum`, `usd-us-dollars`)."
                    },
                    "amount": {
                        "title": "Amount (mode=priceConverter)",
                        "minimum": 1,
                        "maximum": 1000000000,
                        "type": "integer",
                        "description": "Amount of the base currency to convert. Default 1.",
                        "default": 1
                    },
                    "order": {
                        "title": "Order (mode=markets)",
                        "enum": [
                            "market_cap_desc",
                            "market_cap_asc",
                            "volume_desc",
                            "volume_asc",
                            "price_desc",
                            "price_asc",
                            "change_24h_desc",
                            "change_24h_asc"
                        ],
                        "type": "string",
                        "description": "Client-side sort applied to the full ticker list before slicing.",
                        "default": "market_cap_desc"
                    },
                    "minMarketCap": {
                        "title": "Min market cap (USD)",
                        "minimum": 0,
                        "maximum": 1000000000000000,
                        "type": "integer",
                        "description": "Drop coins with market cap below this. Applied client-side after fetch."
                    },
                    "min24hVolume": {
                        "title": "Min 24h volume (USD)",
                        "minimum": 0,
                        "maximum": 1000000000000000,
                        "type": "integer",
                        "description": "Drop coins with 24h trading volume below this."
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Hard cap on emitted records.",
                        "default": 50
                    },
                    "useProxy": {
                        "title": "Use Apify proxy (rotates IP to bypass per-IP rate limits)",
                        "type": "boolean",
                        "description": "If true, routes requests through Apify proxy and rotates IP every N requests + on every HTTP 429. Each IP gets its own per-IP quota, so this effectively removes any per-IP limit. Adds proxy cost.",
                        "default": false
                    },
                    "autoEscalateOnBlock": {
                        "title": "Auto-escalate to Apify proxy on block",
                        "type": "boolean",
                        "description": "If true (default), the actor automatically engages Apify proxy and retries when it hits HTTP 403/429 from a raw datacenter IP. Set to false to disable (request fails fast instead of paying proxy cost).",
                        "default": true
                    },
                    "proxyGroups": {
                        "title": "Apify proxy groups",
                        "type": "array",
                        "description": "Apify proxy groups (e.g. `[\"RESIDENTIAL\"]` or `[\"DATACENTER\"]`). Leave empty to use the default auto group. Only used when `useProxy` is true.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "rotateEveryNRequests": {
                        "title": "Rotate IP every N requests",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "When using a proxy, swap to a fresh IP after this many successful requests (in addition to rotating on 429). Lower values give more headroom against burst limits at slight latency cost.",
                        "default": 25
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
