Skip to main content
GET/v1/arbitrage/opportunitiesDEVELOPER+

跨市场套利机会

排序后的跨市场套利机会(俗称"挂刀"行情)。每条机会将一个市场上新鲜的在售价与另一个市场上新鲜的求购价配对,报告毛价差(spreadBps/spreadCents)、扣除提现/交易手续费前的预估净利(estimatedNetCents)、可成交数量、预估名义金额及两腿各自的新鲜度。所有价格均为整数美分。

每条机会把一个市场上新鲜的在售价(buy,你买入的地方)与另一个市场上新鲜的求购价(sell,你卖出的地方)配对,报告毛价差(spreadBps / spreadCents)与*未扣除*提现及交易手续费的 estimatedNetCents。请阅读 feeNotes:净利是估算值,不是保证。

maxTradableQuantity 是两腿实际都能成交的数量;freshness 给出每腿报价的毫秒级龄期,可据此剔除过期配对。用 minSpreadBps、minNotionalCents、limit 与 sort 调整数据流。

参数

limitinteger可选
查询参数。返回机会的最大数量。默认:50。
minSpreadBpsinteger可选
查询参数。最小毛价差(基点)。默认:200。
minNotionalCentsinteger可选
查询参数。买入侧最小预估名义金额(美分)。(minNotional 是已弃用的别名。)
sortstring可选
查询参数。estimatedNetCents(默认)| spreadBps。
marketsstring可选
查询参数。限定两腿市场范围的市场 id CSV,例如 csfloat,buff163。

响应字段

ArbitrageResponse排序后的跨市场套利机会。
按 sort 排序(默认 estimatedNetCents)。
totalCandidatesinteger
在新鲜报价校验与查询过滤之前入围的交叉盘口候选数(通常大于 opportunities.length)。
calculatedAtstring (date-time)
响应计算时间。

嵌套与共享结构链接到 API 对象 参考页。

错误

401缺少 Authorization 头、认证方案不支持,或密钥未知、未激活、已过期、已吊销。
403密钥有效,但订阅未激活/已过期,或套餐不含此接口。
429超出速率限制;见 Retry-After 与 X-RateLimit-* 响应头。配额按账号合并计算,所有密钥共享。
5xx上游快照不可用或服务端问题。请退避后重试。
export SKINPRICER_API_KEY="sp_live_•••"

curl -G "https://pricing.skinpricer.com/v1/arbitrage/opportunities" \
  --data-urlencode "limit=20" \
  --data-urlencode "minSpreadBps=200" \
  -H "Authorization: ApiKey $SKINPRICER_API_KEY"
// npm i @skinpricer/sdk
import { SkinpricerClient } from "@skinpricer/sdk";

const client = new SkinpricerClient({
  apiKey: process.env.SKINPRICER_API_KEY!,
  authScheme: "ApiKey",
});

const { opportunities } = await client.arbitrage.opportunities({ minSpreadBps: 200, limit: 20 });
for (const o of opportunities) console.log(o.marketHashName, o.buy.market, "->", o.sell.market, o.spreadBps, "bps");
import os
import requests

res = requests.get(
    "https://pricing.skinpricer.com/v1/arbitrage/opportunities",
    params={"limit": "20", "minSpreadBps": "200"},
    headers={"Authorization": f"ApiKey {os.environ['SKINPRICER_API_KEY']}"},
    timeout=10,
)
res.raise_for_status()
print(res.json())

需要认证的接口:请在你自己的客户端中携带 API 密钥调用(见代码示例)。

响应 200
{
  "opportunities": [
    {
      "canonicalItemId": "cmlofcnv60ob001vs1ttav3c4",
      "marketHashName": "★ Butterfly Knife | Doppler (Factory New) - Black Pearl",
      "slug": "butterfly-knife-doppler-factory-new-black-pearl",
      "imageUrl": "https://community.akamai.steamstatic.com/economy/image/...",
      "buy": {
        "market": "avanmarket",
        "price": 838504,
        "quoteSize": 2,
        "updatedAt": "2026-06-23T22:02:19.569Z",
        "isStale": false
      },
      "sell": {
        "market": "buff163",
        "price": 1102328,
        "quoteSize": 10,
        "updatedAt": "2026-06-23T21:59:48.717Z",
        "isStale": false
      },
      "spreadBps": 3146,
      "spreadCents": 263824,
      "estimatedNetCents": 263824,
      "maxTradableQuantity": 2,
      "estimatedNotionalCents": 1677008,
      "feeNotes": "Estimated before withdrawal/trading fees; source prices are buyer-visible USD cents.",
      "freshness": {
        "buyAgeMs": 30366,
        "sellAgeMs": 181218
      },
      "calculatedAt": "2026-06-23T22:02:49.935Z"
    }
  ],
  "totalCandidates": 8412,
  "calculatedAt": "2026-06-23T22:02:49.935Z"
}
响应头
X-RateLimit-Limit: <每分钟配额,由套餐决定>
X-RateLimit-Remaining: <本分钟剩余次数>
X-RateLimit-Reset: <距重置的秒数>
X-RateLimit-Remaining-Month: <本月剩余次数,仅限有月度上限的套餐>
X-Request-ID: req_xxxxxxxxxxxxxxxx

使用与许可

API 及其数据的使用受我们的服务条款(英文)约束:不得转售或再分发数据,不得用于构建竞争性服务, 不得超出套餐的速率限制;在条款允许展示数据的场景下须注明数据来源为 SkinPricer。滥用行为可能被限流或封禁。