Official TypeScript SDK for the skinstrack.com Counter-Strike 2 (CS2) Skins Price API - the fastest way to fetch real-time CS2 skin prices, Steam market data, and cross-marketplace pricing from CSFloat, Buff163, Waxpeer, Skinport, Steam, DMarket, MarketCSGO and 20+ other CS2 marketplaces through a single REST API.
Built for CS2 trading bots, price-tracking dashboards, Steam inventory valuation tools, and analytics platforms. Get aggregated CS2 skin prices, price history, trending items, price alerts, and Steam inventory value - all with full TypeScript typings and zero runtime dependencies.
Why developers choose skinstrack: 27+ marketplaces in one API, 10-minute price update cycle, 35M+ daily price updates, normalized & validated data, and pricing from just $24.99/month - significantly cheaper than competing CS2 price APIs. See pricing
- CS2 skin price data from 27+ marketplaces (CSFloat, Buff163, Waxpeer, Skinport, Steam Market, DMarket, MarketCSGO)
- Real-time updates every 10 minutes - faster than competing CS2 price APIs
- Steam inventory valuation - fetch any public Steam inventory and price it instantly
- Price alerts with email, Discord, and Telegram notifications
- Trending CS2 items - discover rising and falling skins by price movement
- Historical analytics - average, median, and percentage price changes across multiple timeframes
- Sticker pricing alongside weapon skin prices
- Full TypeScript support with comprehensive type definitions
- Supports both API v1 (core pricing) and API v2 (full trader toolkit)
- Works in Node.js, browsers, Deno, and edge runtimes (Cloudflare Workers, Vercel Edge)
- Zero runtime dependencies and tree-shakeable exports
- Custom error classes for easy error handling
npm install skinstrackimport { SkinstracksV1 } from 'skinstrack';
const client = new SkinstracksV1({ apiKey: 'your-api-key' });
// Get free Steam market prices (50 calls/month)
const freeItems = await client.getFreeItems();
console.log(`Found ${freeItems.items.length} items`);
// Get specific item details (paid)
const ak47 = await client.getItem('AK-47 | Redline (Field-Tested)');
console.log(`Price: $${ak47.prices[0]?.price}`);import { SkinstracksV2 } from 'skinstrack/v2';
const client = new SkinstracksV2({ apiKey: 'your-api-key' });
// Search for items
const results = await client.search('Dragon Lore');
// Get trending items
const trending = await client.getTrending({ period: '7d' });
// Create a price alert
await client.createAlert({
item_slug: 'ak-47-redline-field-tested',
price: 10.00,
direction: 'below',
notification_method: 'email',
});
// Get Steam inventory value
const inventory = await client.getSteamInventory('76561198000000000');
console.log(`Value: $${inventory.summary.estimatedValue}`);interface ClientConfig {
apiKey: string; // Your skinstrack.com API key
baseUrl?: string; // Override API base URL (for testing)
timeout?: number; // Request timeout in ms (default: 30000)
fetch?: typeof fetch; // Custom fetch implementation
}| Method | Description | Auth |
|---|---|---|
getFreeItems() |
Get Steam market prices (50 calls/month) | API Key |
getItem(itemName) |
Get detailed item info and prices | Paid |
getItems(options?) |
Get list of items with prices | Paid |
getMarketplaceIds() |
Get cross-marketplace ID mappings | Paid |
getRedirectUrl(itemName, marketId) |
Generate marketplace redirect URL | None |
getBuffRedirectUrl(itemName) |
Generate Buff163 redirect URL | None |
| Method | Description | Auth |
|---|---|---|
getStatus() |
Check API status | None |
search(query) |
Search items by name (up to 8 results) | API Key |
getSteamInventory(steamId, options?) |
Get Steam inventory with prices | Paid |
getItem(itemName) |
Get detailed information and prices for a specific item | |
getItems(options?) |
Get a list of items with their prices from specified providers | |
getStickers(options?) |
Get a list of stickers with their prices from specified providers | Paid |
getAlerts(options?) |
List your price alerts | API Key |
createAlert(alert) |
Create a price alert | API Key |
deleteAlert(alertId) |
Delete a price alert | API Key |
getTrending(options?) |
Get trending items | API Key |
getTraderInventory(options?) |
Get saved inventory | API Key |
saveTraderInventory(inventory) |
Save inventory (1/hour) | API Key |
fetchTraderInventory() |
Import inventory from Steam (1/hour) | API Key |
import {
SkinstracksV1,
UnauthorizedError,
RateLimitError,
NotFoundError
} from 'skinstrack';
const client = new SkinstracksV1({ apiKey: 'your-api-key' });
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('Rate limit exceeded');
} else if (error instanceof NotFoundError) {
console.error('Item not found');
} else {
throw error;
}
}| Class | Status Code | Description |
|---|---|---|
UnauthorizedError |
401 | Missing or invalid API key |
RateLimitError |
429 | API call limit reached |
NotFoundError |
404 | Resource not found |
BadRequestError |
400 | Invalid request parameters |
ServerError |
5xx | Server error |
SkinstracksError |
* | Base error class |
const items = await client.getItems({
providers: 'csfloat,waxpeer,buff',
avg: true,
median: true,
});
for (const item of items) {
console.log(`${item.market_hash_name}: $${item.prices[0]?.price}`);
console.log(` 7d avg: $${item.average?.['7d']}`);
}const items = await client.getItems({
market_hash_names: 'AK-47 | Redline (Field-Tested),AWP | Dragon Lore (Factory New)',
providers: 'csfloat',
});const trending = await client.getTrending({
period: '7d',
price_min: 10,
price_max: 500,
liquidity: 50,
});
console.log('Trending up:');
for (const item of trending.trending_up.data.slice(0, 5)) {
console.log(` ${item.market_hash_name}: +${item.price_change}%`);
}// Create alert
const alert = await client.createAlert({
item_slug: 'ak-47-redline-field-tested',
price: 10.00,
direction: 'below',
notification_method: 'discord',
note: 'Buy signal',
provider: 'csfloat',
});
console.log(`Alert created: ID ${alert.data.id}`);
// List alerts
const alerts = await client.getAlerts({ page: 1, limit: 10 });
console.log(`You have ${alerts.total} active alerts`);
// Delete alert
await client.deleteAlert(alert.data.id);| Feature | V1 | V2 |
|---|---|---|
| Free items | Yes | Yes |
| Item details | Yes | Yes (extended) |
| Items list | Yes | Yes (+ price changes) |
| Marketplace IDs | Yes | Yes |
| Redirects | Yes | Yes |
| Search | No | Yes |
| Steam Inventory | No | Yes |
| Price Alerts | No | Yes |
| Trending | No | Yes |
| Trader Inventory | No | Yes |
All types are exported for your convenience:
import type {
ItemDetail,
Price,
TrendingItem,
CreateAlertRequest
} from 'skinstrack';The skinstrack SDK is commonly used to build:
- CS2 trading bots that monitor cross-marketplace price arbitrage between CSFloat, Buff163, Waxpeer, and Skinport
- Steam inventory value calculators - appraise any public Steam inventory in real time
- CS2 price tracker dashboards with historical charts and trending skins
- Price alert services notifying users on Discord, Telegram, or email when CS2 skins hit target prices
- Analytics platforms for tracking skin price movements, liquidity, and market trends
- Discord bots that lookup CS2 skin prices on demand
- Browser extensions that overlay live prices on Steam market and third-party marketplaces
- Investment portfolios for CS2 skin collectors and traders
Is this an official Counter-Strike 2 SDK? No - skinstrack is an independent CS2 skin pricing service. This SDK is the official TypeScript client for the skinstrack.com API. It is not affiliated with Valve Corporation, Steam, or Counter-Strike.
Which CS2 are supported? 27+ marketplaces including CSFloat, Buff163, Waxpeer, Skinport, Steam Community Market, DMarket, MarketCSGO, BitSkins, and more. See the API documentation for the full list.
How often are CS2 skin prices updated? Prices update every 10 minutes - significantly faster than most competing CS2 price APIs (which often update every 30–60 minutes).
Is there a free tier? Yes - 50 API calls/month free. Paid plans start at $24.99/month. See pricing.
MIT - free for commercial and personal use.
- API Documentation - full endpoint reference for the CS2 skin price API
- Get an API Key - free tier and paid plans
- GitHub Repository
- Report an Issue
Keywords: CS2 skin price API, Counter-Strike 2 SDK, CS2 TypeScript SDK, Steam market price API, CSFloat API, Buff163 API, Waxpeer API, Skinport API, DMarket API, CS2 trading bot SDK, Steam inventory value API, CS2 price tracker, CS2 price alerts, CS2 skin marketplace API, Node.js CS2 SDK.