Skip to main content
GET/v1/market-analytics/:marketHashNamePRO+

Market Analytics

Per-market current quotes plus rolling-window summary statistics for an item: current ask/bid and spread, listing/order counts, and windowed sell/buy averages, min, and max. Response is snake_case. Prices are integer USD cents.

Per-market current quotes plus rolling-window stats in one call: current_ask / current_bid / spread_bps right now, alongside windowed sell_* and buy_* averages, min, and max over the last windowHours (default 24, up to 168). Every price field. Current and windowed. Is integer USD cents (the *_count / *_quantity stats are plain counts). Response is snake_case.

Every stat field is nullable, so a market with no recent activity comes back with nulls rather than being dropped. Scope to specific venues with markets.

Parameters

marketHashNamestringrequired
Path segment. URL-encoded market_hash_name.
marketsstringoptional
Query. CSV of market ids to restrict the analytics, e.g. skinport,buff163.
windowHoursintegeroptional
Query. Rolling analytics window in hours, 1 to 168. Default 24.

Response fields

MarketAnalyticsResponsePer-market current + windowed analytics for an item. snake_case.
canonical_item_idstring
Canonical item id.
market_hash_namestring
Market hash name.
window_hoursinteger
Analytics window in hours.
One row per market.
calculated_atstring (date-time)
When analytics were computed.

Nested and shared shapes link to the API Objects reference.

Errors

404Item not found.
401Missing Authorization header, unsupported scheme, or a key that is unknown, inactive, expired, or revoked.
403Valid key, but the subscription is inactive/expired or the plan does not include this endpoint.
429Rate limit exceeded; see Retry-After + X-RateLimit-* headers. Pooled per account across all keys.
5xxUpstream snapshot unavailable or a server-side issue. Retry with backoff.

Guides using this endpoint

export SKINPRICER_API_KEY="sp_live_•••"

curl "https://pricing.skinpricer.com/v1/market-analytics/AK-47%20%7C%20Redline%20(Field-Tested)" \
  -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 a = await client.marketAnalytics.get("AK-47 | Redline (Field-Tested)");
console.log(a.markets.length, "markets over", a.window_hours, "hours");
import os
import requests

res = requests.get(
    "https://pricing.skinpricer.com/v1/market-analytics/AK-47%20%7C%20Redline%20(Field-Tested)",
    headers={"Authorization": f"ApiKey {os.environ['SKINPRICER_API_KEY']}"},
    timeout=10,
)
res.raise_for_status()
print(res.json())

Authenticated endpoint: call it with your API key from your own client (see the code sample).

Response 200
{
  "canonical_item_id": "cmlofca920lka01yozajhixt3",
  "market_hash_name": "Glock-18 | Water Elemental (Factory New)",
  "window_hours": 24,
  "markets": [
    {
      "market": "avanmarket",
      "current_ask": null,
      "current_bid": null,
      "spread_bps": null,
      "ask_is_stale": null,
      "bid_is_stale": null,
      "current_listing_count": null,
      "current_buy_order_count": null,
      "current_bid_quantity": null,
      "sell_avg_price": 6704.25,
      "sell_min_price": 6404,
      "sell_max_price": 7166,
      "sell_avg_listing_count": 44.79,
      "buy_avg_price": null,
      "buy_max_price": null,
      "buy_avg_order_count": null,
      "buy_avg_total_quantity": null
    }
  ],
  "calculated_at": "2026-06-23T22:07:17.447Z"
}
Response headers
X-RateLimit-Limit: <per-minute, set by your plan>
X-RateLimit-Remaining: <remaining this minute>
X-RateLimit-Reset: <seconds to reset>
X-RateLimit-Remaining-Month: <left this month, capped plans>
X-Request-ID: req_xxxxxxxxxxxxxxxx

Usage & licensing

Access to the API and its data is governed by our Terms of Service. You may not resell or redistribute the data, use it to build a competing service, or exceed your plan’s rate limits, and you must attribute SkinPricer as the source wherever the Terms permit you to display it. Abuse may be throttled or suspended.