CoinPaprika Crypto Market Data Scraper
Pricing
from $1.47 / 1,000 item extracteds
CoinPaprika Crypto Market Data Scraper
Search CoinPaprika and export normalized coin metadata, current quotes, exchange markets, recent historical prices, and exchange summaries—no API key.
Pricing
from $1.47 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 hours ago
Last modified
Categories
Share
Export CoinPaprika crypto market data as clean JSON records for research, portfolio monitoring, spreadsheet analysis, and scheduled data pipelines.
The Actor uses CoinPaprika's public API and needs no CoinPaprika account or API key. Choose one of five focused modes: coin search, enriched coin snapshots, exchange markets for a coin, recent historical prices, or exchange summaries.
What does this CoinPaprika scraper export?
The Actor turns several CoinPaprika API surfaces into one predictable dataset contract.
- Search assets by coin name or symbol.
- Enrich exact CoinPaprika IDs with metadata and a current quote.
- Export exchange pairs, prices, volume, trust scores, and market URLs for a coin.
- Export recent price, 24-hour volume, and market-cap observations.
- List exchange summaries with activity and market coverage.
- Normalize timestamps, source links, and record types for downstream automation.
Every row includes recordType, sourceUrl, and scrapedAt. Mode-specific fields are populated when CoinPaprika provides them; unrelated fields are null, so one schema works across exports.
Who is it for?
Crypto analysts can refresh provider-specific quote and history tables without maintaining API clients.
Portfolio teams can schedule snapshots or recent historical exports and compare observations between runs.
Market researchers can inspect which exchanges and pairs trade a selected asset.
Data engineers can send normalized records to Sheets, databases, warehouses, or webhooks through Apify integrations.
Developers and AI agents can call one Actor interface through the API or MCP instead of implementing five CoinPaprika response shapes.
Why use this Actor?
- No CoinPaprika credential is required.
- Exact coin IDs avoid ambiguous symbols when precision matters.
- A query can resolve IDs when discovery is more convenient.
maxItemsis enforced across the complete run.- Transient network, HTTP 429, and temporary server failures use bounded retries.
- Stable input errors and stable upstream 4xx responses fail clearly instead of returning a misleading empty success.
- Direct HTTP keeps memory and infrastructure cost low; no browser or paid proxy fallback is hidden in the run.
This Actor does not claim tick-by-tick real-time delivery or a complete historical archive. It exports what CoinPaprika's anonymous public endpoints return at run time.
Input modes
| Mode | Use it for | Required targeting |
|---|---|---|
search | Discover matching CoinPaprika assets | query |
snapshots | Metadata plus current quote and supply fields | coinIds or query |
markets | Exchange pairs for selected coins | coinIds or query |
history | Recent price, volume, and market-cap rows | coinIds or query |
exchanges | Exchange coverage summaries | none |
When both coinIds and query are supplied, exact IDs take precedence. Use IDs such as btc-bitcoin and eth-ethereum, not symbols such as BTC, when repeatable identity matters.
Input parameters
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | search | One of search, snapshots, markets, history, or exchanges. |
query | string | — | Coin name or symbol used by search and optional ID resolution. |
coinIds | string[] | [] | Up to 50 exact CoinPaprika coin IDs. |
quoteCurrency | string | USD | Requested quote currency, such as USD or EUR. |
historyDays | integer | 7 | Recent history lookback from 1 to 365 days. |
historyInterval | string | 1d | 1h, 6h, 12h, 24h, or 1d. |
maxItems | integer | mode default | Maximum 1–5,000 useful records across the run. |
CoinPaprika may limit quote currencies, historical retention, interval combinations, and anonymous request volume. Invalid source combinations surface as a failed run with the upstream status.
Getting started
- Open the Actor input page.
- Choose a data mode.
- Enter a search query or exact CoinPaprika IDs when the selected mode needs them.
- Select a quote currency and a conservative
maxItemsvalue. - For history, choose the lookback days and interval.
- Click Start.
- Open the default dataset and export JSON, CSV, Excel, XML, or another supported Apify format.
A first discovery run can use:
{"mode": "search","query": "bitcoin","maxItems": 10}
Output fields
The output schema contains a stable superset of all modes.
| Field group | Examples |
|---|---|
| Identity | recordType, coinId, name, symbol, rank, coinType, isActive |
| Quote | currency, price, volume24h, marketCap, percentage-change fields |
| Supply | totalSupply, maxSupply, betaValue |
| Market pair | exchangeId, exchangeName, pair, category, trustScore, marketUrl |
| Exchange summary | markets, currencies, fiatCurrencies, sessionsPerMonth, confidenceScore |
| Metadata | description, tags, team, links, startedAt |
| Provenance | observedAt, lastUpdated, sourceUrl, scrapedAt |
Numeric values remain numbers. Missing source values remain null; they are not converted to zero or an empty string.
Output example
A snapshot record looks like this (market values change continuously):
{"recordType": "snapshot","coinId": "btc-bitcoin","name": "Bitcoin","symbol": "BTC","rank": 1,"isActive": true,"coinType": "coin","currency": "USD","price": 80885.87,"volume24h": 35905089929.64,"marketCap": 1624148120316,"percentChange24h": 3.71,"totalSupply": 20079503,"maxSupply": 21000000,"observedAt": "2026-09-04T07:08:16Z","sourceUrl": "https://coinpaprika.com/coin/btc-bitcoin/","scrapedAt": "2026-09-04T07:09:00.000Z"}
Download all records with the default dataset API link shown in the run's Output tab.
How much does it cost to export CoinPaprika market data?
Pay-per-event pricing has a one-time $0.005 Actor start and one item event per useful dataset row. Failed, rejected, duplicate, or empty records are not charged as items.
Measured item tiers are:
| Apify plan | Price per item |
|---|---|
| Free | $0.0028198 |
| Bronze | $0.002452 |
| Silver | $0.0019126 |
| Gold | $0.0014712 |
| Platinum | $0.0014712 |
| Diamond | $0.0014712 |
At the Bronze tier, 10 rows cost about $0.02952, 100 rows about $0.25020, and 1,000 rows about $2.457, including one start event. The Apify Console shows the applicable tier and final charge. These values will be kept aligned with the active Store pricing record.
Recurring monitoring workflows
Create an Apify Task with snapshots or history mode, then attach a schedule. Each run has its own default dataset, which prevents older rows from being silently mixed into a new export.
Common workflows include:
- Daily Bitcoin and Ethereum quote snapshots into a warehouse.
- Weekly market-pair exports to track venue coverage.
- Recent historical rows loaded into a notebook before analysis.
- Exchange summary exports compared between scheduled runs.
The Actor exports observations; it does not send price alerts or calculate changes between runs. Use an Apify integration, webhook, or downstream workflow for those actions.
Export to spreadsheets and data pipelines
From the dataset, choose Export and select CSV or Excel for manual analysis. For automation, connect the run to Google Sheets, Make, Zapier, webhooks, or your own ingestion service.
A pipeline should key coin records by coinId, market rows by a combination such as coinId + exchangeId + pair, and history rows by coinId + observedAt + currency.
Run with the Apify API
Set APIFY_TOKEN in your shell rather than placing it in source code.
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~coinpaprika-crypto-market-data/runs?waitForFinish=300" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"mode":"markets","coinIds":["btc-bitcoin"],"quoteCurrency":"USD","maxItems":25}'
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/coinpaprika-crypto-market-data').call({mode: 'snapshots',coinIds: ['btc-bitcoin', 'eth-ethereum'],quoteCurrency: 'USD',maxItems: 2,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/coinpaprika-crypto-market-data').call(run_input={'mode': 'history','coinIds': ['btc-bitcoin', 'eth-ethereum'],'quoteCurrency': 'USD','historyDays': 7,'historyInterval': '1d','maxItems': 20,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
Use with MCP and AI agents
Add this Actor to Claude Code through Apify MCP:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/coinpaprika-crypto-market-data"
Claude Desktop, Cursor, and VS Code setup
For Claude Desktop, Cursor, VS Code, or another editor client that supports remote MCP servers, use:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/coinpaprika-crypto-market-data"}}}
Example prompts:
- “Search CoinPaprika for assets matching bitcoin and return the top 10 IDs.”
- “Export 25 BTC exchange markets in USD and group them by trust score.”
- “Fetch seven days of daily BTC and ETH observations and prepare a CSV-ready table.”
Treat market data as time-sensitive and ask the agent to retain observedAt and scrapedAt in any summary.
Reliability, retries, and limits
The Actor validates input before requesting data. It allows at most 50 coin IDs and 5,000 rows per run.
A request is retried only when it times out, encounters a transport error, receives HTTP 429, or receives a temporary 5xx status. Retry delay respects Retry-After when available and is otherwise bounded. Four failed attempts exhaust the request and fail the run.
There is no automatic browser, residential proxy, or credential fallback. This keeps behavior and costs predictable. If CoinPaprika changes or removes an endpoint, the run fails rather than presenting an HTML error page as an empty dataset.
Troubleshooting
Why did my run fail with “coinIds or query is required”?
snapshots, markets, and history need exact IDs or a query that can resolve IDs. Use btc-bitcoin, not BTC, in coinIds.
Why did a search produce zero rows?
CoinPaprika returned no currency match for the query. Try a known full name such as bitcoin, or find an exact ID on CoinPaprika.
Why are some fields null?
The schema is shared by five record types. Market-pair fields do not apply to search rows, for example. CoinPaprika may also omit an applicable field.
Why are fewer historical rows returned than expected?
The endpoint controls retention, interval availability, and timestamp alignment. historyDays defines a requested lookback, not a promise that every interval exists.
Can I request thousands of market rows?
Yes, up to maxItems, but CoinPaprika's anonymous limits still apply. Start with a smaller Task and schedule responsibly.
Responsible use and legal notes
This Actor accesses publicly available CoinPaprika API data. Follow CoinPaprika's terms, documentation, attribution expectations, and request limits. Do not use the output for market manipulation, deceptive promotion, or unlawful activity.
Cryptocurrency values are volatile and source data may be delayed, incomplete, or corrected. The output is research data, not financial, investment, tax, or legal advice. Verify material decisions against appropriate primary sources.
Related automation-lab Actors
- CoinGecko Crypto Market Data — a provider-specific alternative for current and historical crypto datasets.
- Crypto Fear and Greed Index Scraper — sentiment observations that can complement market records.
- DexScreener Token Pair Market Data — decentralized-exchange pair data for token research.
Choose one provider as the system of record when IDs or calculation methods must remain consistent.
FAQ
Does the Actor require a CoinPaprika API key?
No. It uses anonymous public endpoints.
Does it support currencies other than USD?
Yes, where CoinPaprika supports the requested quote currency. Enter an uppercase code such as EUR.
Is this a real-time price feed?
No. Each run exports the source's latest available observation. Use schedules for recurring snapshots.
Does it deduplicate records?
Exact input coin IDs are deduplicated. Each market or historical observation remains a distinct useful row.
Are rows stored in a global dataset?
No. Results go to each run's default dataset, which is compatible with Apify APIs and integrations.
Can I use the result from JavaScript, Python, or an AI agent?
Yes. Use the API client examples or the Apify MCP endpoint above.