Get CS2 skin prices in Node.js and TypeScript

Skinstrack publishes an official TypeScript SDK on npm. It wraps every v1 and v2 endpoint, ships full types, has zero runtime dependencies and runs in Node.js, Deno, browsers and edge runtimes like Cloudflare Workers.

Stack
Node.js 18+, TypeScript
Plan
Free and paid
Data
34+ marketplaces, refreshed ~15 min
  1. 1

    Get a free Skinstrack API key

    Sign in with Steam on skinstrack.com and create a key in the dashboard. The free plan gives 50 requests a month on Steam prices with no card. Paid plans from $24.99 a month unlock all 34+ marketplaces. Keep the key in an environment variable, never in source code.

    terminal
    bash
    export SKINSTRACK_API_KEY=your-api-key
  2. 2

    Install the SDK

    The package is called skinstrack. The v2 client is the one to use for new projects.

    terminal
    bash
    npm install skinstrack
  3. 3

    Find the cheapest market for a skin

    getItem returns the item with one price per marketplace. Sort by price to find where it is cheapest right now.

    cheapest.ts
    ts
    import { SkinstracksV2 } from "skinstrack/v2";
    
    const client = new SkinstracksV2({ apiKey: process.env.SKINSTRACK_API_KEY! });
    
    const item = await client.getItem("AK-47 | Redline (Field-Tested)");
    const [cheapest] = [...item.prices].sort((a, b) => a.price - b.price);
    
    console.log(`${item.market_hash_name}: $${cheapest.price} on ${cheapest.provider}`);
  4. 4

    Price history, search and alerts

    The same client covers daily price history, search, trending items and price alerts delivered by email, Discord or Telegram.

    more.ts
    ts
    const history = await client.getItemHistory("AK-47 | Redline (Field-Tested)", {
      period: "30d",
      provider: "csfloat",
    });
    console.log(`${history.points.length} daily points`);
    
    const results = await client.search("Dragon Lore");
    
    await client.createAlert({
      item_slug: "ak-47-redline-field-tested",
      price: 10,
      direction: "below",
      notification_method: "email",
    });
  5. 5

    Handle errors

    Every HTTP error maps to a typed class exported from the package root.

    errors.ts
    ts
    import { NotFoundError, RateLimitError, UnauthorizedError } from "skinstrack";
    
    try {
      await client.getItem("AK-47 | Redline (Field-Tested)");
    } catch (error) {
      if (error instanceof UnauthorizedError) console.error("Invalid API key");
      else if (error instanceof RateLimitError) console.error("Monthly quota reached");
      else if (error instanceof NotFoundError) console.error("Unknown item");
      else throw error;
    }

Example response

Shortened response from /v2/paid/item/{itemName}. Field names are snake_case and every marketplace price has its own updated_at. Full schemas are in the Skinstrack API docs.

response.json
json
{
  "market_hash_name": "AK-47 | Redline (Field-Tested)",
  "slug": "ak-47-redline-field-tested",
  "wear_name": "Field-Tested",
  "rarity_name": "Classified",
  "skinstrack_url": "https://skinstrack.com/item/ak-47-redline?variant=field-tested",
  "liquidity": 85,
  "currency": "USD",
  "price_changes": { "1d": 0.5, "7d": 2.3, "30d": 5.4 },
  "prices": [
    {
      "price": 12.5,
      "count": 150,
      "volume": 0,
      "meta": {},
      "provider": "csfloat",
      "updated_at": "2026-10-02T10:30:00Z"
    },
    {
      "price": 11.9,
      "count": 420,
      "volume": 0,
      "meta": {},
      "provider": "buff163",
      "updated_at": "2026-10-02T10:24:00Z"
    }
  ]
}

Ready to run it?

Get a Skinstrack API key in a minute. Free tier: 50 requests per month on Steam prices, no card required.

Get your API key

Frequently Asked Questions

CS2 skin prices, the Skinstrack API and the tools around it.

Is there an official CS2 price SDK for TypeScript?

Yes. The skinstrack package on npm is the official TypeScript SDK for the Skinstrack CS2 skin price API. It covers v1 and v2 with full typings.

Does the SDK work in Cloudflare Workers or the browser?

Yes. It uses the standard fetch API with zero runtime dependencies, so it runs in Node.js, Deno, browsers and edge runtimes. Keep your API key on the server.

Can the SDK return prices in EUR or other currencies?

Yes. Pass currency with any ISO 4217 code, for example client.getItem(name, { currency: 'EUR' }). Prices default to USD.

More Skinstrack API examples

skinstrack.com

Want full price tracking, charts and alerts?

cs2skinsapi.com shows a quick price. Skinstrack is the full platform behind it, free to use, with everything a CS2 trader or developer needs.

  • Prices from 34+ marketplaces on every skin
  • Daily price history charts and market trends
  • Price alerts by email, Discord or Telegram
  • Portfolio and Steam inventory tracking
  • Free Chrome extension for Steam
  • Trade-up, case ROI and loadout tools