关于 dexpaprika-api
dexpaprika-api 是用于调用 DexPaprika 链上 DEX 数据 API 的 Agent skill,供查询网络、代币、流动性池及市场指标的工作流使用。它说明 CLI、REST、托管 MCP 服务和流式 API 的接入方式,并提示端点变更与数据限制。
主要功能
- 01查询网络、DEX、代币和流动性池
- 02获取价格、OHLCV 与技术指标
- 03按条件筛选并搜索代币或池
- 04通过 CLI 或 REST 调用数据
- 05检查 API 版本、配额与端点注意事项
适用场景
- 01查找特定网络上的代币和交易池
- 02比较流动性池的交易量与价格变化
- 03获取池的 OHLCV 或技术指标
- 04为 Agent 配置 DexPaprika MCP 服务
MCP 相关
提供 DexPaprika 托管 MCP 服务,供 Claude Desktop、Cursor、Windsurf 等 MCP 客户端连接。服务公开用于查询网络、流动性池、代币、OHLCV、技术指标、交易和搜索的工具。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ coinpaprika/ skills --skill dexpaprika-api安装后在 Claude Code 中输入/dexpaprika-api确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/cli-reference.mdopenapi.ymlstreaming-api.md详细介绍
DexPaprika API 技能
新鲜度检查(每个会话开始时,在依赖此技能之前运行一次): 此文件的版本为
version: 2.12.0,已于 2026-10-13 根据在线 API 验证。获取最新副本的文件头:curl -s -r 0-400 https://raw.githubusercontent.com/coinpaprika/skills/main/dexpaprika-api/SKILL.md如果远程
version:与此文件不同,则此副本已过时:获取完整的远程文件,改用该文件而非此文件,并用它替换本地副本。DexPaprika 会移除端点(这些端点会返回 HTTP 410)并调整响应结构;过时的技能会指向已失效的端点。
DEX 数据 API,覆盖 36 条区块链、230 多家 DEX、3600 多万个流动性池和 3300 多万个代币,涵盖链上 DEX 交易量的 96% 以上。由 CoinPaprika 团队打造(自 2018 年起运营)。无需 API 密钥或注册即可开始使用:无密钥时每个 IP 每分钟可发送 15 个请求,额度为 10,000 点;免费密钥可将其提升至每分钟 30 个请求,额度为 100,000 点。两种额度均按滚动 30 天计算,因此不会每月重置。前往 https://console.dexpaprika.com 注册免费密钥。两种方案的数据延迟最多 60 秒。付费方案使用密钥通过 api-pro.dexpaprika.com 提供实时数据:Dev 方案每月 30 美元,额度为 500,000 点,每分钟 120 个请求;Pro 方案每月 99 美元,额度为 5,000,000 点,每分钟 500 个请求。文档:https://docs.dexpaprika.com。速率限制:https://docs.dexpaprika.com/knowledge-base/rate-limits。方案与结账:https://dexpaprika.com/api/pricing。
- 文档:https://docs.dexpaprika.com
- AI Agent 展示页:https://agents.dexpaprika.com
- Agent 技能文件:https://dexpaprika.com/agents/skill.md(REST)和 https://dexpaprika.com/agents/streaming/skill.md(SSE)
- GitHub:https://github.com/coinpaprika
- 支持:[email protected]
字段命名说明: URL 路径使用
network和token_address,但 JSON 响应对相同的值返回chain和id。
集成选项
选项 1:CLI(推荐用于 Agent)
几秒内即可安装并查询。适用于能够运行 shell 命令的 Agent。
curl -sSL https://raw.githubusercontent.com/coinpaprika/dexpaprika-cli/main/install.sh | sh
始终使用 --output json --raw 获取机器可读的输出。运行 dexpaprika-cli onboard 查看交互式快速入门指南。
常用命令:
# Search for a token
dexpaprika-cli search USDC --output json --raw
# Get token price
dexpaprika-cli token ethereum 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 --output json --raw
# Top pools on a network
dexpaprika-cli pools ethereum --limit 10 --output json --raw
# Historical OHLCV for a pool: hourly candles over the last 24 hours (CLI 0.7.0+ for a relative --start)
dexpaprika-cli pool-ohlcv ethereum 0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640 --start -24h --interval 1h --limit 24 --output json --raw
# Historical USD OHLCV for a token across all its pools (Dev or Pro key, CLI 0.9.0+)
DEXPAPRIKA_API_BASE_URL=https://api-pro.dexpaprika.com dexpaprika-cli token-ohlcv ethereum 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 --start -24h --interval 1h --limit 24 --output json --raw
# Top tokens on a network (ranked, with multi-timeframe metrics)
dexpaprika-cli top-tokens ethereum --limit 20 --output json --raw
dexpaprika-cli top-tokens solana --order-by price_change_percentage_24h --sort asc --output json --raw
# Filter tokens by volume, FDV, liquidity, txns
dexpaprika-cli filter-tokens ethereum --volume-24h-min 100000 --output json --raw
dexpaprika-cli filter-tokens solana --fdv-min 1000000 --liquidity-usd-min 50000 --output json --raw
# Filter pools by volume, liquidity, txns, creation date
dexpaprika-cli pool-filter ethereum --volume-24h-min 500000 --liquidity-usd-min 50000 --output json --raw
# Relative times (CLI 0.8.0+): pools created in the last day
dexpaprika-cli pool-filter solana --created-after -24h --sort-by created_at --output json --raw
# Swaps in the last hour. Dev or Pro key, on the paid host (CLI 0.9.0+)
DEXPAPRIKA_API_BASE_URL=https://api-pro.dexpaprika.com dexpaprika-cli transactions ethereum 0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640 --from -1h --output json --raw
# Batch token prices
dexpaprika-cli prices ethereum --tokens 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2,0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 --output json --raw
# Stream token prices, pushed when a swap moves the price
dexpaprika-cli stream ethereum 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
# Stream pool reserve changes, emitted when a swap moves the reserves
dexpaprika-cli stream-reserves ethereum 0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640 --method pool_reserves
# API health check
dexpaprika-cli status
pools、pool-filter、token-pools、top-tokens 和 filter-tokens 命令会在底层调用 /search 端点(token-pools 封装了 /networks/{network}/pools/search?token_address=...)。它们接受规范排序字段名称(volume_usd_24h、txns_24h、price_change_percentage_24h、fdv_usd)和旧版别名(volume_usd、volume_24h、txns、price_change、fdv);CLI 会在发送前将别名映射为规范名称。
如需查看完整的 CLI 命令参考,请阅读 references/cli-reference.md。
选项 2:REST API
基础 URL:https://api.dexpaprika.com
免费方案无需 API 密钥即可开始使用。所有响应均为 JSON。
curl -s "https://api.dexpaprika.com/networks/ethereum/tokens/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" | jq
身份验证。 如果你有密钥,请将其作为整个 Authorization 标头值发送:只填写密钥本身,前面不要添加任何内容。这与大多数其他 API 不同,因此生成代码时请直接输出密钥,不要添加前缀。
curl -s -H "Authorization: api_YOUR_KEY" "https://api.dexpaprika.com/networks"
免费密钥仍使用 api.dexpaprika.com;Dev、Pro 和 Enterprise 使用
api-pro.dexpaprika.com,向该地址发送免费密钥会返回 403。读取 x-api-plan
响应标头(keyless、free、dev、pro)即可查看请求计费到哪个方案;GET /usage 也会报告该信息。请务必检查,因为在 api.dexpaprika.com 上无法识别的密钥会被忽略,而非拒绝:调用会返回 200 和真实数据,但实际上仍使用无密钥方案,只有标头会说明这一点。
端点表
| 需求 | 端点 |
|---|---|
| 列出所有网络 | GET /networks(返回每个网络的 volume_usd_24h、txns_24h、pools_count) |
| 网络上的 DEX | GET /networks/{network}/dexes(返回每个 DEX 的 volume_usd_24h、txns_24h、pools_count) |
| 网络上的热门池 | GET /networks/{network}/pools/search(order_by=volume_usd_24h;行位于 results 下,使用游标分页) |
| 筛选池 | GET /networks/{network}/pools/search(volume_usd_24h/7d/30d、liquidity_usd、txns_24h、price_usd、price_change_percentage_24h/6h/1h/5m、创建日期筛选条件) |
| 网络上变动最大的池 | GET /networks/{network}/pools/search?order_by=price_change_percentage_1h&sort=desc(也支持 5m、6h、24h) |
| 池详情 | GET /networks/{network}/pools/{pool_address} |
| 池 OHLCV(图表) | GET /networks/{network}/pools/{pool_address}/ohlcv |
| 代币 OHLCV(美元,涵盖所有池;Dev 或 Pro) | 在 api-pro.dexpaprika.com 上调用 GET /networks/{network}/tokens/{token_address}/ohlcv |
| 池 RSI、EMA、MACD、布林带、VWAP | GET /networks/{network}/pools/{pool_address}/indicators?indicator=rsi(由 API 计算,与池 OHLCV 具有相同的套餐限制) |
| 代币指标(美元,涵盖所有池;Dev 或 Pro) | 在 api-pro.dexpaprika.com 上调用 GET /networks/{network}/tokens/{token_address}/indicators?indicator=rsi |
| 池交易(Dev 或 Pro) | 在 api-pro.dexpaprika.com 上调用 GET /networks/{network}/pools/{pool_address}/transactions;免费套餐:从池详情获取交易计数 |
| 代币价格和数据 | GET /networks/{network}/tokens/{token_address} |
| 包含该代币的池 | GET /networks/{network}/pools/search?token_address={token_address} |
| 筛选代币 | GET /networks/{network}/tokens/search(volume_usd_24h、liquidity_usd、fdv_usd、txns_24h、创建日期筛选条件) |
| 网络上的热门代币 | GET /networks/{network}/tokens/search(order_by=volume_usd_24h/liquidity_usd/txns_24h/fdv_usd/price_change_percentage_24h;行位于 results 下,使用游标分页) |
| 跨所有网络筛选池 | GET /pools/search(筛选条件和 order_by 与按网络筛选的版本相同) |
| 跨所有网络筛选代币 | GET /tokens/search(筛选条件和 order_by 与按网络筛选的版本相同) |
| 批量查询代币价格 | GET /networks/{network}/multi/prices?tokens={addr1},{addr2} |
| DEX 的池 | GET /networks/{network}/pools/search?dex_name={dex_id}(行位于 results 下,使用游标分页) |
| 搜索代币/池/DEX | GET /search?query={term} |
| 平台统计信息 | GET /stats |
已移除的端点(HTTP 410):/networks/{network}/pools、/pools、/networks/{network}/pools/filter、/networks/{network}/tokens/filter、/networks/{network}/tokens/top、/networks/{network}/tokens/{token_address}/pools 和 /networks/{network}/dexes/{dex}/pools 均已移除。它们会返回 HTTP 410,并指向替代端点 /search。请勿调用这些端点。
**dex_name 替代 DEX 路径段:**已移除的 /networks/{network}/dexes/{dex}/pools 对应的新端点为 GET /networks/{network}/pools/search?dex_name={dex_id}。DEX 从路径移至查询参数。dex_name 接受 dex id(uniswap_v3),且匹配时不区分大小写;不能传入面向用户显示的名称。从 GET /networks/{network}/dexes 获取有效值,并传入 dex_id 字段。如果改为传入该对象的 dex_name 字段(例如显示名称 Uniswap V3),请求会返回 HTTP 200 和空的 results 数组,而非报错,因此容易误以为该 DEX 没有池。该端点的响应结构也有所变化:行位于 results 而非 pools 下;分页使用 cursor 和 has_next_page/next_cursor,而非 page/page_info;24 小时交易量字段为 volume_usd_24h,而非 volume_usd。
**token_address 仅限网络范围:**跨网络的 GET /pools/search 接受 token_address,但会静默忽略它(结果不会经过筛选);如需查找包含某个代币的池,请使用按网络查询的 GET /networks/{network}/pools/search。未知地址会返回 HTTP 200,且 results 为空。重复传入 token_address 不会作为交易对筛选条件;API 只会使用其中一个值(使用哪个不保证按顺序确定)。
**短期价格变化窗口仅适用于池,24 小时窗口则不受此限制:**两个池搜索接口都会按全部四个窗口排序并筛选,即 price_change_percentage_24h、_6h、_1h 和 _5m。筛选器名称为 price_change_percentage_{24h,6h,1h,5m}_{min,max},值可以为负数,因此 price_change_percentage_1h_max=-20 会筛选出下跌 20% 或更多的池。代币搜索接口在排序和筛选时都采用 24 小时窗口,并拒绝三个短期窗口:order_by=price_change_percentage_1h 在 /tokens/search 上会返回 HTTP 400,而 price_change_percentage_1h_min 等参数在该接口上会被接受并静默忽略。代币行包含 price_change_percentage_24h,但不包含 price_change_percentage_6h、_1h 或 _5m;detailed=true 会为每行添加 6h、1h 和 5m 对象,但这些对象包含的是交易量和交易笔数,因此没有可用于排序或筛选的短期代币数据。拼写错误的筛选器名称会被忽略,而不是拒绝,因此拼写错误的效果与返回完整结果集的 200 响应完全相同。如需确认筛选器确实生效,请与未筛选的基准结果进行比较:
# Baseline: 1h changes on the busiest ethereum pools sit near zero
curl -s "https://api.dexpaprika.com/networks/ethereum/pools/search?limit=5" | jq '[.results[].price_change_percentage_1h]'
# Filtered: only pools up 50 percent or more over the last hour
curl -s "https://api.dexpaprika.com/networks/ethereum/pools/search?price_change_percentage_1h_min=50&limit=5" | jq '[.results[].price_change_percentage_1h]'
# The 24h window filters on the token side too: every row comes back at 20 percent or better
curl -s "https://api.dexpaprika.com/networks/ethereum/tokens/search?price_change_percentage_24h_min=20&limit=5" | jq '[.results[].price_change_percentage_24h]'
如需查看包含所有架构、参数和响应类型的完整 OpenAPI 3.1 规范,请参阅 references/openapi.yml。
选项 3:MCP 服务(适用于 AI IDE)
面向 Claude Desktop、Cursor、Windsurf 和任何 MCP 客户端的托管 MCP 服务。
添加到 claude_desktop_config.json 或等效配置中:
{
"mcpServers": {
"dexpaprika": {
"url": "https://mcp.dexpaprika.com/sse"
}
}
}
启动时无需 API 密钥。提供 20 个用于查询网络、池、代币、OHLCV、技术指标、交易和搜索的工具。可通过实时调用 tools/list 验证数量。
需要付费套餐的工具会使用用户自己的 Dev、Pro 或 Enterprise 密钥运行:在 url 旁添加 "headers": { "Authorization": "YOUR_API_KEY" },密钥单独填写,然后重新连接。这些工具包括 getTokenOHLCV、getTokenIndicator 和 getPoolTransactions。未提供密钥时,此类工具会返回 DP401_API_KEY_REQUIRED,且不会执行任何调用。获取蜡烛图或指标时,可改用代币流动性最高的池对应的 getPoolOHLCV 或 getPoolIndicator;获取池的交易笔数时,可改用 getPoolDetails。其他所有托管工具都使用服务端的共享容量,而非用户套餐,因此密钥不会提高其限额;遇到 DP429_RATE_LIMITED 时,请等待 retry_after_seconds 指定的时间后重试。
文档:https://docs.dexpaprika.com/ai-integration/hosted-mcp-server
选项 4:流式 API(价格、储备、交换、OHLCV 蜡烛图)
基础 URL:https://streaming.dexpaprika.com
四个 SSE 数据流共用一种传输方式,但各数据流的访问权限不同:
/sse/prices:代币价格更新;交换导致价格变动时推送。更新由交换触发,而非按时钟或区块触发:链上活动平静时,可能几分钟都不会发出任何内容。展示代币无需密钥;其他任意代币均需免费密钥。/sse/reserves:流动性池储备更新,包含以美元计价的变动;交换改变池储备时发出,而非每个区块都发出。任何密钥均可,包括免费密钥。/sse/transactions:单笔交换,适用于单个池(method=pool)或代币交易涉及的所有池(method=token)。Dev、Pro 或 Enterprise,需使用https://streaming-pro.dexpaprika.com。/sse/ohlcv:已封存的代币蜡烛图,间隔为1s、5s或60s。Dev、Pro 或 Enterprise,需使用https://streaming-pro.dexpaprika.com。
向需要密钥的数据流或代币发送无密钥请求时,会收到 403,并返回 "error":"preview_only"。仅付费套餐可用的数据流会拒绝无密钥和免费密钥请求,返回 403 和 "error":"plan_required",以及 tier、message、required_tier(dev)和 links。请根据 error 匹配,而不要根据消息文本匹配。
**限制:**每个 POST 连接最多 25 个订阅。并发 SSE 数据流数量:无密钥时为 10 个(按 IP 计数),免费密钥为 10 个,Dev 为 30 个,Pro 为 100 个(按账户计数);超过限制时,下一个请求会收到 429、"error":"rate_limited" 和 Concurrent stream limit reached。每 15 秒会收到一个 ping 事件。无密钥流式访问涵盖 35 个展示代币,即大多数链上的旗舰资产;免费 API 密钥可解锁任意代币的价格和储备数据。
单个代币价格(GET):
curl --http1.1 -N "https://streaming.dexpaprika.com/sse/prices?method=token_price&chain=ethereum&address=0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
多个代币价格(POST,最多 25 个):
curl --http1.1 -N -X POST "https://streaming.dexpaprika.com/sse/prices" \
-H "Accept: text/event-stream" -H "Content-Type: application/json" \
-d '[{"chain":"ethereum","address":"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2","method":"token_price"}]'
流动性池储备(GET,需免费密钥):
curl --http1.1 -N -H "Authorization: $DEXPAPRIKA_API_KEY" "https://streaming.dexpaprika.com/sse/reserves?method=pool_reserves&chain=ethereum&address=0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
token_price 事件字段:address、chain、price(以字符串表示的美元价格)、timestamp、timestamp_price(均为 Unix 秒)。旧版 t_p 方法仍会在 /sse/prices 上返回紧凑的 {a, c, p, t, t_p} 格式;它不在规范中,因此不要在新代码中使用。/stream 本身已停用(410)。
储备数据流现在会发出以方法命名的事件:旧的单一 reserve_update 事件已停用。请根据以下两个事件名称进行匹配:
pool_reserves事件(单个池,代币数据嵌套):chain、pool_id、block/previous_block(字符串;previous_block可省略)、tokens[](每项包含token_id、以字符串表示的reserve/delta、以数字表示的price_usd/reserve_usd/delta_usd)、total_reserve_usd、total_delta_usd、timestamp、block_timestamp(均为 Unix 秒)。token_reserves事件(单个代币的所有池,扁平结构):chain、token_id、以字符串表示的reserve/delta、以字符串表示的block、price_usd、reserve_usd、delta_usd、updated_at、timestamp(后两者均为 Unix 秒)。
原始整数型字段(reserve、delta、block、previous_block)可能超过 Number.MAX_SAFE_INTEGER,请使用 BigInt 解析。持续读取储备数据的使用方必须停止匹配 reserve_update,并处理这两个事件名称及其新增的时间戳字段。
request_id 关联(可选):通过查询字符串在 GET 请求中传入 request_id,值为 uint32(0..4294967295);也可以在 POST 请求体中为每个资产单独传入(默认为该资产在数组中的索引)。服务器会在仅包含数据的事件中,通过 SSE 行 request_id: 回传该值。ping、warning 和 error 事件不包含 request_id。
# GET with request_id; the value comes back on each pool_reserves event
curl --http1.1 -N -H "Authorization: $DEXPAPRIKA_API_KEY" "https://streaming.dexpaprika.com/sse/reserves?method=pool_reserves&chain=ethereum&address=0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640&request_id=12345"
**重要:**流式传输要求使用 HTTP/1.1。使用 curl 时请添加 --http1.1。只要有一个资产无效,整个数据流就会被取消,并返回 HTTP 400。SSE 解析器必须在空行分隔处先缓冲一条完整消息,再进行分派:event: 和 data: 的顺序可以不同,服务器会采用其中任一顺序;request_id: 行也可能与 event:/data: 同时出现。
完整的流式参考(涵盖全部四个数据流、事件、错误和解析器模式),请阅读 references/streaming-api.md。
选项 5:SDK
常见工作流
获取代币价格
CLI:
dexpaprika-cli token ethereum 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 --output json --raw
curl:
curl -s "https://api.dexpaprika.com/networks/ethereum/tokens/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" | jq '.summary.price_usd'
Python:
import requests
r = requests.get("https://api.dexpaprika.com/networks/ethereum/tokens/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2")
token = r.json()
print(f"{token['symbol']}: ${token['summary']['price_usd']}")
搜索代币
curl -s "https://api.dexpaprika.com/search?query=PEPE" | jq '.tokens[:5]'
注意:搜索会模糊匹配名称和符号。“UNI”会返回“Uniswap”“United Stables”等结果。请在客户端按完全匹配的 symbol 进行筛选。
获取池的历史 OHLCV
curl -s "https://api.dexpaprika.com/networks/ethereum/pools/0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640/ohlcv?start=-24h&interval=1h&limit=24" | jq
OHLCV 参数:start(必需;相对偏移量,例如 -24h 或 -7d、Unix 秒、RFC3339 或 yyyy-mm-dd)、end(格式相同)、interval(1m|5m|10m|15m|30m|1h|6h|12h|24h)、limit(默认值为 10,最大值为 1000)、inversed(布尔值,用于反转价格比率,以获取与稳定币配对的池中以 USD 计价的价格)。
获取代币的历史 OHLCV(Dev 或 Pro)
代币的 USD 蜡烛图数据,基于该代币在网络上所有交易池中的成交量加权价格;volume 是所有这些池的 USD 交易量。无需选择池,也无需换算交易对价格。
curl -s -H "Authorization: $DEXPAPRIKA_API_KEY" "https://api-pro.dexpaprika.com/networks/ethereum/tokens/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2/ohlcv?start=-24h&interval=1h&limit=24" | jq
- 需要 Dev、Pro 或 Enterprise 密钥,并调用
https://api-pro.dexpaprika.com。无密钥和免费密钥会返回403和"error":"plan_required":请改用该代币最活跃交易池的池 OHLCV。 - 参数
start、end、interval和limit与池 OHLCV 相同,且不支持inversed。interval默认值为24h,limit默认值为 10,因此请设置这两个参数。 - 只有代币在某个时间区间内有交易时,才会生成该区间的蜡烛图,因此交易清淡的代币在较短区间内可能有数据缺口。最新的蜡烛图也可能仍未收盘。
- 参考:https://docs.dexpaprika.com/api-reference/tokens/get-ohlcv-data-for-a-token
获取池的技术指标
RSI、EMA、MACD、布林带或 VWAP,由 API 根据池的已完成蜡烛图计算,因此无需获取 OHLCV 并自行计算。
curl -s "https://api.dexpaprika.com/networks/ethereum/pools/0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640/indicators?indicator=rsi&interval=1h&start=-24h" | jq
indicator(必需):rsi、ema、macd、bbands或vwap。还可指定interval(1m到24h,或1d)、start、end、limit(默认值为 100,最大值为 1000)和cursor。- 仅发送所选指标的参数:rsi(14)、ema(20)、bbands(20)和 vwap(14)的
period;macd 的fast_period(12)、slow_period(26)和signal_period(9);bbands 的std_dev(2)。其他参数都会返回400invalid_param。 - 响应包含
parameters(实际使用的参数)和data,数据按时间从旧到新排列,每个已完成的蜡烛图对应一个数据点。rsi、ema 和 vwap 返回value;macd 返回macd、signal和histogram;bbands 返回upper、middle和lower。 - 与池 OHLCV 使用相同的计划限制(见下文)。请始终传入
interval;无密钥时默认值为1h,否则为24h。 - RSI、EMA 和 MACD 都采用平滑计算:请从第一个依赖的值之前至少十个周期开始。无密钥时,24 小时窗口不足以让 RSI(14) 稳定;免费密钥可获取 7 天的数据。
- 代币指标:
/networks/{network}/tokens/{token_address}/indicators上的同类指标,基于代币在所有池中的 USD 蜡烛图计算。需在api-pro.dexpaprika.com上使用 Dev、Pro 或 Enterprise;无密钥和免费密钥会返回403plan_required,因此请改用该代币最活跃交易池的池端点。 - 指南:https://docs.dexpaprika.com/tutorials/technical-indicators。参考:https://docs.dexpaprika.com/api-reference/pools/get-a-technical-indicator-for-a-pool
批量获取多个代币的价格
curl -s "https://api.dexpaprika.com/networks/ethereum/multi/prices?tokens=0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2,0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" | jq
返回 ARRAY(而非键值对象)。每个请求最多包含 10 个代币。
实时价格流(Python)
import requests, json
assets = [
{"chain": "ethereum", "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", "method": "token_price"},
{"chain": "solana", "address": "So11111111111111111111111111111111111111112", "method": "token_price"}
]
r = requests.post("https://streaming.dexpaprika.com/sse/prices",
headers={"Accept": "text/event-stream", "Content-Type": "application/json"},
json=assets, stream=True)
# Buffer one SSE message at a time, then dispatch. Both `event:`/`data:`
# line orderings are valid SSE and the server has emitted either, so a
# line-by-line parser that assumes one order will silently mis-dispatch.
msg_lines = []
for line in r.iter_lines(decode_unicode=True):
if line:
msg_lines.append(line); continue
event_type, data_str = "message", None
for ml in msg_lines:
if ml.startswith("event:"):
event_type = ml.split(":", 1)[1].strip()
elif ml.startswith("data:"):
data_str = ml[5:].lstrip()
msg_lines = []
if event_type == "token_price" and data_str:
d = json.loads(data_str)
print(f"{d['chain']} {d['address']}: ${d['price']}")
常用代币地址
不要猜测地址。使用 search 查找代币,或使用以下已知地址:
| 代币 | 链 | 地址 |
|---|---|---|
| WETH | ethereum | 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 |
| USDC | ethereum | 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 |
| USDC | polygon | 0x2791bca1f2de4661ed88a30c99a7a9449aa84174 |
| USDC | solana | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v |
| SOL | solana | So11111111111111111111111111111111111111112 |
常用网络 ID
始终使用小写:ethereum、solana、bsc、polygon、arbitrum、base、avalanche、optimism、sui、ton、tron。
完整列表:GET /networks 或 dexpaprika-cli networks。
分页
目前并存两种分页模式:
- 基于页码(
/networks/{network}/dexes):?page=1&limit=10&order_by=volume_usd&sort=desc。页码从 1 开始(第一页为page=1)。最多 1000 页。此端点的order_by值:volume_usd、price_usd、transactions、last_price_change_usd_24h、created_at。 - 基于游标(四个
/search端点):传入limit,以及上一次响应中的cursor值。数据行位于results下,同时返回has_next_page和next_cursor。order_by的规范值包括:volume_usd_24h、volume_usd_7d、volume_usd_30d、liquidity_usd、txns_24h、created_at、price_change_percentage_24h,以及price_usd、price_change_percentage_6h、price_change_percentage_1h和price_change_percentage_5m(仅限池),还有fdv_usd(仅限代币)。旧名称(volume_usd、transactions、last_price_change_usd_24h)用于/search端点时会返回 HTTP 400。
时间戳
所有时间戳都支持 Unix、RFC3339 或 yyyy-mm-dd 格式,也支持相对于当前时间的偏移(-24h、-7d、-90m;单位为 s、m、h、d)。这适用于 OHLCV 的 start 和 end、池交易的 from 和 to,以及四个 /search 端点的 created_after 和 created_before。因此,from=-1h 表示最近一小时的交换,created_after=-24h 表示过去一天内创建的内容。交易的 from 包含边界,to 不包含边界;不会返回超过 7 天的数据。搜索范围包含两端,响应会在 query 中回显解析后的 Unix 值。每次请求最多返回 1000 根 OHLCV 蜡烛。
OHLCV 取决于套餐。 无密钥:最近 24 小时内支持 1h 及更长间隔。免费密钥:7 天内支持 10m 及更长间隔。Dev:30 天内支持所有间隔。Pro 和 Enterprise:历史数据没有套餐限制。池指标遵循相同限制。代币 OHLCV 和代币指标需要 Dev 或更高级别,并遵循相同的 Dev 和 Pro 规则。超出这些限制时,API 会返回 403,并附上指出可用套餐的消息。start=-24h 适用于所有套餐。当前限制:https://docs.dexpaprika.com/knowledge-base/rate-limits#ohlcv-limits-by-plan
速率限制和错误
- 速率限制和配额:每个 IP 每分钟 15 次请求,无需密钥,配额为 10,000 个额度;使用免费密钥(在 https://console.dexpaprika.com 注册)时,每分钟 30 次请求,配额为 100,000 个额度。两种配额都按最近 30 天滚动计算,而非每月 1 日重置,因此今天突增的请求会影响接下来的 30 天;免费套餐的
402响应不包含resets_at。两种方案的数据延迟最长均为 60 秒。付费套餐提供实时数据,需使用密钥并访问 api-pro.dexpaprika.com:Dev 套餐每月 $30,包含 500,000 个额度,速率限制为每分钟 120 次;Pro 套餐每月 $99,包含 5,000,000 个额度,速率限制为每分钟 500 次;额度按 Stripe 计费周期计算,超出部分每增加 1M 个额度收费 $20。每次请求消耗 1 个额度;批量端点每个项目消耗 1 个额度,每次传递的流式更新也消耗 1 个额度。当前数据:https://docs.dexpaprika.com/knowledge-base/rate-limits。套餐和结账页面:https://dexpaprika.com/api/pricing - HTTP 错误:
200成功 |400参数错误 |401已提供密钥但密钥无效 |402额度已用尽(重试无济于事) |403密钥与主机不匹配("error":"wrong_host"),或在未提供密钥或使用免费密钥时调用了仅限付费套餐使用的端点(代币 OHLCV、代币指标、池交易)("error":"plan_required",required_tier会指出所需套餐) |404未找到 |410端点已移除,响应正文会指出replacement|429速率受限 |500服务器错误 - 在
api-pro上,如果边缘层无法识别某个请求(例如请求未包含Authorization标头),会返回403HTML 页面而非 JSON。修正标头后,下一次请求即可恢复。 - **遇到 429 速率限制时:**等待
Retry-After指定的秒数,然后重试。限制是临时的。如果持续出现,请联系 [email protected]。 - 检查 API 健康状态:
dexpaprika-cli status或GET https://api.dexpaprika.com/stats - 完整文档:https://docs.dexpaprika.com