浏览全部文档

加密货币 API 文档参考

加密货币交易对的价格和历史

概览

加密货币交易对的价格和价格历史。每个请求都需要 Bearer 密钥,REST 和 MCP 共用同一余额。

交易对 id 由币种、连字符和计价货币组成,例如 BTC-USD 或 ETH-EUR。不区分大小写,也可用斜杠代替连字符。每个响应都带有规范交易对。计价货币为 USD、EUR 和 GBP。价格是十进制字符串,最多 8 位有效数字。

加密货币全天候交易,没有市场时段。价格超过 5 分钟未更新即为过期。

基础 URL: https://api.narwhalapi.com。 MCP 工具是 crypto, with one action ,适用于下方每个路由。

每个账户可获得的内容

查看所有账户
最新价格在线
24 小时涨跌已包含
日线柱状数据完整历史数据
1 分钟 K 线已包含
交易对列表已包含

查看 价格 了解每次调用的费用。请求按其所属 API 的价格计费,除非某个路由另有说明。

  • 加密货币没有成交量。价格和 K 线不含成交量字段。
  • 日 K 线对应一个 UTC 日,在 00:00 UTC 出现。当天尚未完成的 K 线从不显示。
  • 交易对列表包含我们提供价格的交易对。交易对只要至少每 30 秒成交一次就会列入,低于每 2 分钟一次则移除。

端点

每个路由都是 GET 请求,并需要在以下请求头中携带你的密钥: Authorization: Bearer 标头。示例仅展示响应的结构,并非实时数据。

我们提供价格的加密货币交易对

GET /v1/crypto/pairs

列出我们提供价格的所有交易对,按交易对排序(BTC-USD 形式)。可选 quote(USD、EUR 或 GBP)。交易对只要至少每 30 秒成交一次就会列入,低于每 2 分钟一次则移除。数据读自我们自己的交易对列表,所有账户均可使用,计一次调用。

MCP:工具 crypto, action pairs。

参数

参数位置必填类型含义
quote查询参数否取值之一:USD、EUR、GBP仅限以该货币计价的交易对(USD、EUR 或 GBP)。

响应字段

字段类型传入含义
pairs对象数组总是列出我们提供价格的所有交易对,按交易对排序。交易对只要至少每 30 秒成交一次就会列入,低于每 2 分钟一次则移除。
pairs[].pair字符串总是规范交易对,例如 BTC-USD。
pairs[].base字符串总是币种的代码。
pairs[].quote字符串总是报价货币。
pairs[].name字符串总是币种的名称。
请求
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/crypto/pairs?quote=USD"
响应示例
{
  "pairs": [
    {
      "pair": "BTC-USD",
      "base": "BTC",
      "quote": "USD",
      "name": "Bitcoin"
    },
    {
      "pair": "ETH-EUR",
      "base": "ETH",
      "quote": "EUR",
      "name": "Ethereum"
    }
  ]
}

单个加密货币交易对的最新价格

GET /v1/crypto/{pair}/price

交易对的最新综合价格,附带 24 小时涨跌(未知时省略)。加密货币全天候交易,没有市场时段;价格超过 5 分钟未更新时 stale 为 true。change_24h_percent 以百分比表示。

MCP:工具 crypto, action price。

参数

参数位置必填类型含义
pair路径参数是字符串加密货币交易对:币种、连字符和计价货币,例如 BTC-USD 或 ETH-EUR。不区分大小写;也可用斜杠代替连字符。响应中带有规范交易对。

响应字段

字段类型传入含义
pair字符串总是规范交易对。
base字符串总是币种的代码。
quote字符串总是计价货币;所有价格均以它计价。
price字符串总是最新价格,最多 8 位有效数字。
change_24h字符串可选price 减去 24 小时前的价格,由 24 小时涨跌百分比推算得出。未知时省略。
change_24h_percent字符串可选24 小时涨跌百分比(1.5 表示 1.5%)。与 change_24h 一同省略。
timestamp日期时间总是价格的有效时间(UTC,精确到整秒)。
stale布尔值总是价格超过 5 分钟未更新或无法刷新时为 true。
delayed恒为 true可选不返回:所有账户的价格都是实时的。
请求
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/crypto/BTC-USD/price"
响应示例
{
  "pair": "BTC-USD",
  "base": "BTC",
  "quote": "USD",
  "price": "68250.5",
  "change_24h": "812.4",
  "change_24h_percent": "1.2",
  "timestamp": "2026-10-26T15:42:00Z",
  "stale": false
}

最多 50 个加密货币交易对的最新价格

GET /v1/crypto/prices

返回所列每个交易对的最新价格。每个返回价格的交易对计一次调用,一次性扣费:如果你的余额不足以支付已解析的交易对,整个请求会被拒绝并返回 402 insufficient_credits。未返回价格的交易对列在 errors 中(作为 id),不收费。change_24h_percent 以百分比表示。

最多发送 50 个交易对。批量请求一次性扣费:如果你的余额不足以支付能解析的交易对,整个请求返回 402 insufficient_credits。

MCP:工具 crypto, action prices。

参数

参数位置必填类型含义
pairs查询参数是字符串以逗号分隔的交易对,去重后最多 50 个。每个交易对的规则与单个价格路由相同。每个返回价格的交易对计一次调用。

响应字段

字段类型传入含义
prices对象数组总是每个已解析的交易对一个价格,按交易对排列。
prices[].pair字符串总是规范交易对。
prices[].base字符串总是币种的代码。
prices[].quote字符串总是计价货币;所有价格均以它计价。
prices[].price字符串总是最新价格,最多 8 位有效数字。
prices[].change_24h字符串可选price 减去 24 小时前的价格,由 24 小时涨跌百分比推算得出。未知时省略。
prices[].change_24h_percent字符串可选24 小时涨跌百分比(1.5 表示 1.5%)。与 change_24h 一同省略。
prices[].timestamp日期时间总是价格的有效时间(UTC,精确到整秒)。
prices[].stale布尔值总是价格超过 5 分钟未更新或无法刷新时为 true。
prices[].delayed恒为 true可选不返回:所有账户的价格都是实时的。
errors对象数组总是未返回价格的交易对。不收费。
errors[].id字符串总是请求时传入的原始 id。
errors[].code取值之一:not_found、not_covered、upstream_busy总是not_found:没有这个标的。not_covered:该交易所暂无价格数据。upstream_busy:当前无法获取价格,请稍后重试。
请求
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/crypto/prices?pairs=BTC-USD,ETH-USD"
响应示例
{
  "prices": [
    {
      "pair": "BTC-USD",
      "base": "BTC",
      "quote": "USD",
      "price": "68250.5",
      "change_24h": "812.4",
      "change_24h_percent": "1.2",
      "timestamp": "2026-10-26T15:42:00Z",
      "stale": false
    }
  ],
  "errors": [
    {
      "id": "XYZ-USD",
      "code": "not_found"
    }
  ]
}

单个加密货币交易对的价格 K 线

GET /v1/crypto/{pair}/bars

日线(1d,一个 UTC 日,于 00:00 UTC 收盘)或一分钟(1m)K 线,按时间从早到晚排列。某一天的 K 线在 00:00 UTC 发布;当天尚未完成的 K 线从不显示。历史范围:全部,所有账户均可获取。每页最多 5,000 根 K 线,附带 next_cursor;游标与价格不再匹配时返回 409 cursor_expired。每页计一次调用。

如果游标对应的价格发生变化,游标将失效并返回 409 cursor_expired。

MCP:工具 crypto, action bars。

参数

参数位置必填类型含义
pair路径参数是字符串加密货币交易对:币种、连字符和计价货币,例如 BTC-USD 或 ETH-EUR。不区分大小写;也可用斜杠代替连字符。响应中带有规范交易对。
interval查询参数否取值之一:1d、1m1d(每个 UTC 日一根 K 线,于 00:00 UTC 收盘)或 1m(一分钟 K 线)。其他值返回 400 invalid_interval。
start查询参数否字符串第一根 K线。1d:日期(YYYY-MM-DD),包含该日;省略表示取最早的一根。1m:UTC 时间(YYYY-MM-DDTHH:MM:SSZ,或表示 UTC 00:00 的日期),包含该时刻;省略表示 end 之前一天。
end查询参数否字符串最后一根 K 线。1d:日期,含当日;省略表示最近已完成的一天。1m:UTC 时间,不含该时刻;省略表示当前时间,或 start 之后五天。1m 的 start 与 end 之间最多 5 天(400 range_too_large)。
cursor查询参数否字符串上一页的 next_cursor,其余参数保持一致。

响应字段

字段类型传入含义
pair字符串总是规范交易对。
start字符串可选不返回:start 不会被调整。
end字符串可选不返回:日 K线不会被截断。
bars对象数组总是每页最多 5,000 根 K线。
bars[].timestamp日期时间总是K 线周期的起点(UTC):日 K 线为 00:00,一分钟 K 线为该分钟。
bars[].open字符串总是周期的第一个价格。
bars[].high字符串总是周期内最高价。
bars[].low字符串总是周期内最低价。
bars[].close字符串总是周期的最后一个价格。
next_cursor字符串总是回传该值即可读取下一页。最后一页为 null。
请求
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/crypto/BTC-USD/bars?interval=1d&start=2026-10-01"
响应示例
{
  "pair": "BTC-USD",
  "bars": [
    {
      "timestamp": "2026-10-25T00:00:00Z",
      "open": "67210.3",
      "high": "68540.9",
      "low": "66980.1",
      "close": "68100.2"
    }
  ],
  "next_cursor": null
}

错误

错误使用通用的 problem 结构,并带有 request_id。查看 API 错误码与额度 了解该结构和额度相关的响应头。失败的请求不计费。

代码状态含义
invalid_query400参数缺失、未知、重复或超出范围。
invalid_id400id 或交易对的写法不符合此 API 的要求。
too_many_ids400批量请求包含的 id 超过 50 个。
invalid_interval400interval 不是 1d 或 1m,或该品种不支持。
range_too_large400时间窗口超过该路由允许的长度。
not_found404没有这个标的、基金或交易对。
invalid_cursor400该游标不是本请求返回的,或来自另一个请求。
cursor_expired409游标对应的价格已变化。请不带游标重新开始。
insufficient_credits402您的额度余额低于该请求的费用。
upstream_busy503目前无法获取价格。在批量请求中会列在 errors 中。请稍后重试。
area_unavailable503该区域目前无法响应。

此页面对你有帮助吗?