mcpField
D
dexpaprika-api

dexpaprika-api

github.com/coinpaprika数据与数据库3737 次安装今天更新
代码仓库

关于 dexpaprika-api

dexpaprika-api 是用于调用 DexPaprika 链上 DEX 数据 API 的 Agent skill,供查询网络、代币、流动性池及市场指标的工作流使用。它说明 CLI、REST、托管 MCP 服务和流式 API 的接入方式,并提示端点变更与数据限制。

主要功能

  1. 01查询网络、DEX、代币和流动性池
  2. 02获取价格、OHLCV 与技术指标
  3. 03按条件筛选并搜索代币或池
  4. 04通过 CLI 或 REST 调用数据
  5. 05检查 API 版本、配额与端点注意事项

适用场景

  1. 01查找特定网络上的代币和交易池
  2. 02比较流动性池的交易量与价格变化
  3. 03获取池的 OHLCV 或技术指标
  4. 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.md
openapi.yml
streaming-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。

字段命名说明: 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)
网络上的 DEXGET /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、布林带、VWAPGET /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 下,使用游标分页)
搜索代币/池/DEXGET /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
语言仓库
Gohttps://github.com/coinpaprika/dexpaprika-sdk-go
Pythonhttps://github.com/coinpaprika/dexpaprika-sdk-python
TypeScripthttps://github.com/coinpaprika/dexpaprika-sdk-ts
PHPhttps://github.com/coinpaprika/dexpaprika-sdk-php

常见工作流

获取代币价格

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)。其他参数都会返回 400 invalid_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;无密钥和免费密钥会返回 403 plan_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 查找代币,或使用以下已知地址:

代币链地址
WETHethereum0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
USDCethereum0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
USDCpolygon0x2791bca1f2de4661ed88a30c99a7a9449aa84174
USDCsolanaEPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
SOLsolanaSo11111111111111111111111111111111111111112

常用网络 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 标头),会返回 403 HTML 页面而非 JSON。修正标头后,下一次请求即可恢复。
  • **遇到 429 速率限制时:**等待 Retry-After 指定的秒数,然后重试。限制是临时的。如果持续出现,请联系 [email protected]。
  • 检查 API 健康状态:dexpaprika-cli status 或 GET https://api.dexpaprika.com/stats
  • 完整文档:https://docs.dexpaprika.com

评论

支持 Markdown