cspriceapi-com Steam API

Steam Community Market data from **`itemordershistogram`**: best ask/bid, spread, order-book depth, and internal liquidity. Requires `item_nameid`. **Plan: Basic** (included in Pro and Enterprise). Legacy ACL path `/v1/prices/steam` still grants access.

Operations 1

GET /v1/steam Steam Community Market snapshot (Basic) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cspriceapi-com:cspriceapi-com-steam-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cspriceapi-com-steam-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: CS Price Steam API
  version: 1.6.0
  description: 'Public price API for the CS2 (Counter-Strike 2) skin ecosystem.


    Latest listing prices are available via a single item-centric endpoint

    `GET` / `POST` `/v1/prices/latest` (optional `markets` filter). Use

    `/v1/prices/search` for one skin with Doppler phase expansion, plus

    buy-orders, float-ranged, price history, YouPin market-cap indexes and

    market-sales export.


    Subscription customers can additionally download a daily **ZIP export** of

    historical marketplace sales (`/v1/market-sales/export`) as three CSV files

    (sales, stickers, keychains) covering the last 24 hours.


    ## Subscription plans


    API access is grouped by plan. Higher tiers include all endpoints from lower

    tiers:


    | Plan | Included categories |

    |------|---------------------|

    | **Basic** | Listing Prices |

    | **Pro** | Basic + Buyorder Prices + Float Ranged |

    | **Enterprise** | Pro + Price History + Sales Data (full API access) |


    Each API key is issued for a specific plan and may be further restricted via

    endpoint ACL (`allowed_endpoints`).


    ## Authentication


    Every non-documentation endpoint requires an API key in the `x-api-key`

    request header. Keys are issued per customer and optionally scoped to a

    subset of endpoints (endpoint ACL). Every key is limited to 10 requests

    per second; there is no daily or monthly cap. Requests over the limit get

    `429` with a `Retry-After: 1` header.


    ## Response format stability


    All response shapes documented here reflect what the server **currently**

    returns. In particular:


    - Numeric fields for prices, percentage changes, averages and liquidity

    are serialized as **strings**, not numbers.

    Example: `"price_rmb": "7333.0000"`. Clients must parse them as

    fixed-point / arbitrary-precision decimals.

    - `stattrak` and `souvenir` are serialized as **integers** (`0` or `1`),

    not booleans.

    - `updated_at` is ISO-8601 UTC (`YYYY-MM-DDTHH:mm:ss.sssZ`).

    - `liquidity` is an internal liquidity score and may be `null` if

    unavailable for that skin.'
  contact:
    name: CS Price API Support
    url: https://cspriceapi.com
servers:
- url: https://api.cspriceapi.com
  description: Production
- url: http://localhost:8080
  description: Local development
security:
- ApiKeyAuth: []
tags:
- name: Steam
  description: 'Steam Community Market data from **`itemordershistogram`**: best ask/bid,

    spread, order-book depth, and internal liquidity. Requires `item_nameid`.


    **Plan: Basic** (included in Pro and Enterprise). Legacy ACL path

    `/v1/prices/steam` still grants access.'
paths:
  /v1/steam:
    get:
      tags:
      - Steam
      summary: Steam Community Market snapshot (Basic)
      description: 'Returns Steam Community Market rows in the standard CS Price API envelope

        (`data`, `meta`, `source`, `requestor`, `plan`, `timestamp`).


        Each row includes `best_ask` / `best_bid`, listing counts, computed

        `spread` / `spread_pct`, `orderbook` levels, and internal `liquidity`. Prices are decimal **strings**

        (USD for CS2).


        Omit `market_hash_name` for the full catalog (~27k skins). Pass one or

        more comma-separated names to filter (max 100). Prefer gzip for full

        snapshots.'
      operationId: getSteamMarket
      parameters:
      - name: market_hash_name
        in: query
        required: false
        description: 'Optional filter. One Steam `market_hash_name`, or comma-separated list

          (max 100). Omit for all items.

          '
        schema:
          type: string
          example: AK-47 | Redline (Field-Tested)
      - name: bucket
        in: query
        required: false
        description: 'Optional collector bucket filter (`1` = hot, `2` = warm, `3` = cold).

          '
        schema:
          type: integer
          enum:
          - 1
          - 2
          - 3
      responses:
        '200':
          description: Steam Community Market rows (`data` array) with `meta` summary.
          headers:
            Cache-Control:
              schema:
                type: string
                example: public, max-age=30
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SteamMarketResponse'
              examples:
                single:
                  summary: Single skin
                  value:
                    data:
                    - market_hash_name: AK-47 | Redline (Field-Tested)
                      stattrak: 0
                      souvenir: 0
                      exterior: Field-Tested
                      item_page_url: https://steamcommunity.com/market/listings/730/AK-47%20%7C%20Redline%20(Field-Tested)
                      item_nameid: 165027595
                      currency: USD
                      liquidity: '8.40'
                      best_ask: '12.45'
                      ask_listings: 85
                      best_bid: '11.90'
                      bid_orders: 240
                      spread: '0.55'
                      spread_pct: '4.42'
                      bucket: 1
                      collected_at: '2026-08-28T10:00:30.000Z'
                      updated_at: '2026-08-28T10:00:30.000Z'
                      orderbook:
                        ask_levels: 3
                        bid_levels: 2
                        asks:
                        - price: '12.45'
                          quantity: 2
                        - price: '12.50'
                          quantity: 1
                        bids:
                        - price: '11.90'
                          quantity: 3
                    meta:
                      count: 1
                      currency: USD
                      filtered:
                      - AK-47 | Redline (Field-Tested)
                    source: Steam Community Market
                    requestor: you@example.com
                    plan: basic
                    timestamp: '2026-08-28T10:00:35.000Z'
        '400':
          description: Invalid query parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: API key not allowed for this endpoint
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    SteamOrderbook:
      type: object
      description: Normalized bid/ask ladder from Steam order histogram.
      properties:
        ask_levels:
          type: integer
          example: 3
        bid_levels:
          type: integer
          example: 2
        asks:
          type: array
          items:
            $ref: '#/components/schemas/SteamOrderbookLevel'
        bids:
          type: array
          items:
            $ref: '#/components/schemas/SteamOrderbookLevel'
    SteamMarketItem:
      type: object
      description: 'Steam Community Market snapshot for one catalog skin. Includes spread

        metrics, order book depth, and internal liquidity score.

        '
      properties:
        market_hash_name:
          type: string
          example: AK-47 | Redline (Field-Tested)
        stattrak:
          $ref: '#/components/schemas/TinyBool'
        souvenir:
          $ref: '#/components/schemas/TinyBool'
        exterior:
          $ref: '#/components/schemas/Exterior'
        item_page_url:
          type: string
          format: uri
          nullable: true
          example: https://steamcommunity.com/market/listings/730/AK-47%20%7C%20Redline%20(Field-Tested)
        item_nameid:
          type: integer
          nullable: true
          example: 165027595
        currency:
          type: string
          example: USD
        liquidity:
          allOf:
          - $ref: '#/components/schemas/DecimalString'
          nullable: true
        best_ask:
          allOf:
          - $ref: '#/components/schemas/DecimalString'
          nullable: true
        ask_listings:
          type: integer
          nullable: true
          description: Listing count at the best ask (Steam histogram `sell_order_count`).
        best_bid:
          allOf:
          - $ref: '#/components/schemas/DecimalString'
          nullable: true
        bid_orders:
          type: integer
          nullable: true
          description: Highest-bid order count from histogram.
        spread:
          allOf:
          - $ref: '#/components/schemas/DecimalString'
          nullable: true
          description: best_ask − best_bid
        spread_pct:
          allOf:
          - $ref: '#/components/schemas/DecimalString'
          nullable: true
          description: Spread as % of best_ask.
        bucket:
          type: integer
          nullable: true
          enum:
          - 1
          - 2
          - 3
          description: Collector refresh tier.
        collected_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          nullable: true
        orderbook:
          allOf:
          - $ref: '#/components/schemas/SteamOrderbook'
          nullable: true
      required:
      - market_hash_name
      - currency
      - updated_at
    ErrorResponse:
      type: object
      description: Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.
      x-ae-placeholder: true
    DecimalString:
      type: string
      description: 'Fixed-point decimal value serialized as a string (preserves precision

        across languages). Parse with an arbitrary-precision decimal library;

        do **not** parse as a native float.

        '
      pattern: ^-?\d+(\.\d+)?$
      example: '1234.5600'
    BaseWrapper:
      type: object
      description: Envelope fields returned by every `GET /v1/prices/*` response.
      properties:
        source:
          type: string
          description: Human-readable marketplace identifier.
        requestor:
          type: string
          format: email
          description: Email address associated with the API key making the call.
          example: customer@example.com
        plan:
          type: string
          description: Plan of the API key (e.g. `free`, `pro`, `enterprise`).
          example: pro
        timestamp:
          allOf:
          - $ref: '#/components/schemas/UpdatedAt'
          description: Server time when this response was produced.
      required:
      - source
      - timestamp
    SteamOrderbookLevel:
      type: object
      properties:
        price:
          allOf:
          - $ref: '#/components/schemas/DecimalString'
        quantity:
          type: integer
          example: 2
      required:
      - price
      - quantity
    TinyBool:
      type: integer
      enum:
      - 0
      - 1
      nullable: true
      description: Boolean stored as `tinyint(1)`; `0` = false, `1` = true.
      example: 0
    UpdatedAt:
      type: string
      format: date-time
      description: ISO-8601 UTC timestamp (millisecond precision).
      example: '2026-04-21T12:06:35.000Z'
    SteamMarketMeta:
      type: object
      properties:
        count:
          type: integer
          example: 1
        currency:
          type: string
          example: USD
        filtered:
          type: array
          items:
            type: string
          description: Present when `market_hash_name` filter was applied.
        bucket:
          type: integer
          enum:
          - 1
          - 2
          - 3
          description: Present when `bucket` query filter was applied.
    Exterior:
      type: string
      nullable: true
      description: 'Exterior (wear) of the skin. Typical values: `Factory New`,

        `Minimal Wear`, `Field-Tested`, `Well-Worn`, `Battle-Scarred`.

        Casing may vary between sources (e.g. Buff163 uses `"Factory new"`).

        '
      example: Field-Tested
    SteamMarketResponse:
      allOf:
      - $ref: '#/components/schemas/BaseWrapper'
      - type: object
        properties:
          data:
            type: array
            items:
              $ref: '#/components/schemas/SteamMarketItem'
          meta:
            $ref: '#/components/schemas/SteamMarketMeta'
          source:
            type: string
            enum:
            - Steam Community Market
        required:
        - data
        - meta
        - source
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: 'API key issued per customer. Send it in the `x-api-key` header on every

        request. Every key is limited to 10 requests per second (no daily cap)

        and can be endpoint-scoped (ACL). Inactive or expired keys will be rejected

        with `401`.

        '