POST/v1/liquidity/batchPRO+
批量流动性
一次调用评估最多 100 件饰品。POST 一个 marketHashNames[] 请求体;返回 results[](每条都是完整的流动性结构)以及未收录名称组成的 notFound[]。返回 200。
一次 POST 评估最多 100 件饰品。请求体为 { marketHashNames: [...] };results[] 为每件已收录饰品给出完整的流动性结构,notFound[] 列出未收录的名称。返回 200(不是 201)。
参数
marketHashNamesstring[]必填
请求体。要评估的 market hash name,最多 100 个。必填。marketstring可选
请求体。把每个估算限定为单个市场:skinport | marketcsgo | dmarket | csfloat | steamcommunity。响应字段
LiquidityBatchResponse一次调用评估多件饰品的流动性。
resultsLiquidityResponse[]
每件已收录饰品一条完整的流动性结果。notFoundstring[]
请求中未收录的名称。requestedinteger
请求的饰品数。calculatedAtstring (date-time)
本批次的计算时间。错误
400未提供
marketHashNames,或超过 100 个。401缺少
Authorization 头、认证方案不支持,或密钥未知、未激活、已过期、已吊销。403密钥有效,但订阅未激活/已过期,或套餐不含此接口。
429超出速率限制;见 Retry-After 与 X-RateLimit-* 响应头。配额按账号合并计算,所有密钥共享。
5xx上游快照不可用或服务端问题。请退避后重试。
使用此端点的指南(英文)
export SKINPRICER_API_KEY="sp_live_•••"
curl -X POST "https://pricing.skinpricer.com/v1/liquidity/batch" \
-H "Authorization: ApiKey $SKINPRICER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"marketHashNames":["AK-47 | Redline (Field-Tested)","AWP | Asiimov (Field-Tested)"]}'// npm i @skinpricer/sdk
import { SkinpricerClient } from "@skinpricer/sdk";
const client = new SkinpricerClient({
apiKey: process.env.SKINPRICER_API_KEY!,
authScheme: "ApiKey",
});
const { results, notFound } = await client.liquidity.batch({
marketHashNames: ["AK-47 | Redline (Field-Tested)", "AWP | Asiimov (Field-Tested)"],
});
console.log(results.length, "scored,", notFound.length, "not found");import os
import requests
res = requests.post(
"https://pricing.skinpricer.com/v1/liquidity/batch",
json={"marketHashNames":["AK-47 | Redline (Field-Tested)","AWP | Asiimov (Field-Tested)"]},
headers={"Authorization": f"ApiKey {os.environ['SKINPRICER_API_KEY']}"},
timeout=10,
)
res.raise_for_status()
print(res.json())需要认证的接口:请在你自己的客户端中携带 API 密钥调用(见代码示例)。
响应 200
{
"results": [
{
"canonicalItemId": "cmlofca920lka01yozajhixt3",
"marketHashName": "Glock-18 | Water Elemental (Factory New)",
"liquidityBadge": "VERY_ILLIQUID",
"confidence": "LOW",
"coverage": "full",
"medianTimeToSellHours": 244.92,
"p90TimeToSellHours": 273.19,
"bestMarketToList": "csfloat",
"salesPerDay": 13,
"activeListings": 132,
"referenceAskUsdCents": 6500,
"marketWideSalesPerDay": 20,
"marketWideListings": 233,
"marketsWithSales": 3,
"marketsWithDepth": 3,
"marketWideMedianTimeToSellHours": 280.4,
"marketWideP90TimeToSellHours": 304.57,
"metrics": [
{
"market": "skinport",
"salesPerDay": 3,
"activeListings": 40,
"bestAskUsdCents": 6516,
"medianTimeToSellHours": 325.34,
"p90TimeToSellHours": 395.1,
"salesDataAgeMinutes": 7,
"listingsDataAgeMinutes": 15
}
],
"notes": [
"no_sales_data:dmarket",
"sales_data_stale:csfloat",
"sales_data_stale:marketcsgo",
"thin_sales:marketcsgo",
"thin_sales:skinport"
],
"calculatedAt": "2026-06-23T22:07:17.768Z"
}
],
"notFound": [],
"requested": 2,
"calculatedAt": "2026-06-23T22:07:17.768Z"
}响应头
X-RateLimit-Limit: <每分钟配额,由套餐决定>
X-RateLimit-Remaining: <本分钟剩余次数>
X-RateLimit-Reset: <距重置的秒数>
X-RateLimit-Remaining-Month: <本月剩余次数,仅限有月度上限的套餐>
X-Request-ID: req_xxxxxxxxxxxxxxxx