---
title: "Freshness of every price feed and computed dataset"
method: GET
path: "/api/v1/status"
---

# Freshness of every price feed and computed dataset

`GET /api/v1/status`

## Request

- Base URL: `https://skinory.io`
- URL: `https://skinory.io/api/v1/status`
- Auth: one of:
  - none
  - HTTP bearer
  - API key in header `X-Api-Key`

Public data status: last read time and size of each CS2 marketplace feed and the stored Steam quotes, the Dota 2, Rust and Team Fortress 2 feeds, the latest Skinory CS2 Index snapshot, and the time behind the movers, arbitrage, deals and drop pool tables. Times are as seen by the web process that answers; cached for one minute. The page at /status renders the same data.

## Response `200`

Current status

- object
  - `generatedAt` string, date-time, required
  - `cs2` object, required
    - `pricesAt` string, date-time, nullable, required: Time of the base price map
    - `feeds` object[], required
      - `id` string, required
      - `name` string, required
      - `site` string, nullable, required
      - `items` integer, required: Names in the last accepted snapshot of the feed
      - `at` string, date-time, nullable, required: Last successful read; null when never read
      - `stale` boolean, required: The feed is frozen on an earlier snapshot after a degraded answer
    - `steam` object, nullable, required: Stored Steam Community Market quotes
      - `id` string, required
      - `name` string, required
      - `site` string, nullable, required
      - `items` integer, required: Names in the last accepted snapshot of the feed
      - `at` string, date-time, nullable, required: Last successful read; null when never read
      - `stale` boolean, required: The feed is frozen on an earlier snapshot after a degraded answer
  - `games` object[], required
    - `id` 'dota2' | 'rust' | 'tf2', required
    - `name` string, required
    - `feeds` object[], required
      - `id` string, required
      - `items` integer, required
      - `at` string, date-time, nullable, required
      - `stale` boolean, required
  - `index` object, required
    - `latest` string, date, nullable, required: UTC day of the latest index snapshot
    - `days` integer, required
    - `behindDays` integer, nullable, required
  - `movers` object, required
    - `at` string, date-time, nullable, required: Time of the data behind the table
    - `ready` boolean, required
  - `arbitrage` object, required
    - `at` string, date-time, nullable, required: Time of the data behind the table
    - `ready` boolean, required
  - `deals` object, required
    - `at` string, date-time, nullable, required: Time of the data behind the table
    - `ready` boolean, required
  - `dropPool` object, nullable, required
    - `fetchedAt` string, date-time, nullable, required
    - `changedAt` string, nullable, required
  - `catalog` object, required
    - `generatedAt` string, date-time, nullable, required

## Other responses

- `401`: unauthorized: the Authorization or X-Api-Key header carries a malformed, unknown or revoked API key; send no key header to be served anonymously

## Changes

- **2026-10-16** `71b38cc590ee`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/skinory/apis/skinory-api/changes/api/v1/status/get.md)

---

[API](https://skmtc.dev/skinory/apis/skinory-api.md) - [All operations](https://skmtc.dev/skinory/apis/skinory-api/llms.txt) - [OpenAPI document](https://skmtc.dev/skinory/apis/skinory-api/revisions/54b142c5f774?raw)
