Skip to main content
GET/v1/status/freshnessDEVELOPER+

/v1/status/freshness

Per-market data freshness and an overall status roll-up. Response is snake_case.

An operational read, not a pricing one: per-market delay_seconds since the last ingested event plus an overall_status roll-up. Use it to decide whether to trust a given market's numbers right now. Response is snake_case.

Parameters

No query parameters.

Response fields

FreshnessResponsePer-market ingest freshness + an overall roll-up. snake_case.
One row per ingested market.
overall_statusstring
Roll-up: healthy | degraded | stale.
checked_atstring (date-time)
When freshness was sampled.

Nested and shared shapes link to the API Objects reference.

Errors

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.

Companion endpoints

GET/v1/status/market-latency

Per-market ingest latency and reliability: avg_latency_ms, p95_latency_ms, p99_latency_ms, fetch_count, error_rate, and slo_breach_rate per market, plus window_hours and measured_at. snake_case, like the rest of status.

Full reference →

Guides using this endpoint

export SKINPRICER_API_KEY="sp_live_•••"

curl "https://pricing.skinpricer.com/v1/status/freshness" \
  -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 health = await client.status.freshness();
console.log(health.overall_status, "·", health.markets.length, "markets");
import os
import requests

res = requests.get(
    "https://pricing.skinpricer.com/v1/status/freshness",
    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
{
  "markets": [
    {
      "market": "dmarket",
      "delay_seconds": 0,
      "last_update": "2026-06-23T22:00:00.000Z",
      "status": "healthy"
    },
    {
      "market": "steamcommunity",
      "delay_seconds": 0,
      "last_update": "2026-06-23T22:00:00.000Z",
      "status": "healthy"
    }
  ],
  "overall_status": "healthy",
  "checked_at": "2026-06-23T22:04:00.118Z"
}
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.