CoinPaprika Crypto Market Data Scraper avatar

CoinPaprika Crypto Market Data Scraper

Pricing

from $1.47 / 1,000 item extracteds

Go to Apify Store
CoinPaprika Crypto Market Data Scraper

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

Stas Persiianenko

Maintained by Community

Actor 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.
  • maxItems is 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

ModeUse it forRequired targeting
searchDiscover matching CoinPaprika assetsquery
snapshotsMetadata plus current quote and supply fieldscoinIds or query
marketsExchange pairs for selected coinscoinIds or query
historyRecent price, volume, and market-cap rowscoinIds or query
exchangesExchange coverage summariesnone

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

FieldTypeDefaultDescription
modestringsearchOne of search, snapshots, markets, history, or exchanges.
querystringCoin name or symbol used by search and optional ID resolution.
coinIdsstring[][]Up to 50 exact CoinPaprika coin IDs.
quoteCurrencystringUSDRequested quote currency, such as USD or EUR.
historyDaysinteger7Recent history lookback from 1 to 365 days.
historyIntervalstring1d1h, 6h, 12h, 24h, or 1d.
maxItemsintegermode defaultMaximum 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

  1. Open the Actor input page.
  2. Choose a data mode.
  3. Enter a search query or exact CoinPaprika IDs when the selected mode needs them.
  4. Select a quote currency and a conservative maxItems value.
  5. For history, choose the lookback days and interval.
  6. Click Start.
  7. 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 groupExamples
IdentityrecordType, coinId, name, symbol, rank, coinType, isActive
Quotecurrency, price, volume24h, marketCap, percentage-change fields
SupplytotalSupply, maxSupply, betaValue
Market pairexchangeId, exchangeName, pair, category, trustScore, marketUrl
Exchange summarymarkets, currencies, fiatCurrencies, sessionsPerMonth, confidenceScore
Metadatadescription, tags, team, links, startedAt
ProvenanceobservedAt, 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 planPrice 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:

  1. Daily Bitcoin and Ethereum quote snapshots into a warehouse.
  2. Weekly market-pair exports to track venue coverage.
  3. Recent historical rows loaded into a notebook before analysis.
  4. 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 os
from apify_client import ApifyClient
client = 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().items
print(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.

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.

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.