Get started
Connect Steam P2P item trading, real-time pricing feeds, automated bot fulfillment, and merchant deposit infrastructure to your application.
Waxpeer provides developer-first peer-to-peer (P2P) trading infrastructure for Counter-Strike 2, Rust, Dota 2, and Team Fortress 2 items. Whether you are building an automated trading bot, integrating skin deposits into an e-commerce platform, streaming low-latency item prices, or fulfilling instant user withdrawals to Steam Trade URLs, this guide will help you choose the right integration model and make your first API calls.
Common use cases
Explore common integration architectures and select the workflow tailored to your platform's operational model.
| Use case | Target application / business model | Recommended architecture & workflow | Key APIs & protocols |
|---|---|---|---|
| Instant skin withdrawals & rewards delivery | E-commerce storefronts, rewards portals, gaming platforms, or case-opening sites delivering skins directly to user Steam trade URLs. | Query live listings with instant delivery (auto: true), purchase directly to the recipient's Steam trade URL, and track fulfillment asynchronously via project_id or Socket.IO trade events. | |
| Real-time market feeds & arbitrage bots | Algorithmic trading bots, skin analytics suites, price aggregators, and arbitrage monitors scanning for price disparities. | Subscribe to low-latency Socket.IO item streams (new, update, removed) or download compressed hourly snapshots; trigger immediate single purchases when price spreads occur. | |
| P2P skin selling & automated escrow fulfillment | Skin traders, volume suppliers, and merchants monetizing automated Steam inventories. | Maintain a persistent Trade WebSocket connection (wss://wssex.waxpeer.com), supply hourly Steam access tokens to stay online, receive send-trade events, and dispatch Steam trade offers with mobile confirmations. | |
| Merchant skin deposits & payment gateway | Gaming websites and digital marketplaces accepting Counter-Strike 2 / Rust skins as customer deposit payments with instant crediting. | Generate dedicated merchant deposit sessions, display user Steam inventory, dispatch automated trade offers, and credit user balances instantly upon webhook delivery confirmation. | |
| Steam balance top-up & crypto payouts | Payment aggregators, gift service platforms, and fintech providers offering automated Steam wallet balance funding and TRON/USDT settlements. | Validate recipient Steam account eligibility, submit balance recharge requests, and monitor settlement transactions with automated retry handling. |
Step-by-step integration workflow
Follow this five-step technical foundation to set up credentials, understand data contracts, execute trades, and subscribe to real-time events.
1. Authentication & API keys
Waxpeer accounts are linked directly to Steam — there is no separate developer portal or sandbox registration. Sign in on waxpeer.com with your Steam account, then copy your API key from the Security tab in your user profile.
All authenticated requests require the api query parameter (?api=YOUR_KEY). Waxpeer does not accept Authorization: Bearer headers on REST calls.
GET https://api.waxpeer.com/v1/user?api={{API_KEY}}2. Platform currency & price format
All item prices in the Waxpeer API are represented as integer units: 1000 = $1.00 USD.
For example, an item priced at $25.50 is represented as 25500, and a knife priced at $350.00 is 350000. Using integer units eliminates IEEE 754 floating-point rounding errors across high-frequency financial calculations.
Public price discovery does not require an API key: public endpoints like GET /v1/prices can be queried immediately without credentials. GET /v1/prices .
3. Making your first API request
You can test Waxpeer endpoints using standard HTTP tools or the official Node.js SDK.
Fetch live market prices without credentials, or retrieve your profile and balance with your API key:
# Fetch live CS2 item listings (no API key required)
curl "https://api.waxpeer.com/v1/prices?game=csgo"
# Fetch authenticated account profile & wallet balance
curl "https://api.waxpeer.com/v1/user?api=YOUR_WAXPEER_API_KEY"Or install and use the official Node.js SDK for typed methods:
import { Waxpeer } from 'waxpeer'
// Initialize client with your Waxpeer API key
const wp = new Waxpeer(process.env.WAXPEER_API!)
// Fetch account profile & balance
const user = await wp.getUser()
console.log(`Wallet balance: $${user.wallet / 1000} USD`)
// Fetch minimum prices for CS2
const prices = await wp.getPrices('csgo')
console.log(`Loaded ${prices.items?.length || 0} listings`)4. Understanding the P2P trade lifecycle
Unlike centralized trading bots that hold inventory, Waxpeer facilitates peer-to-peer transfers directly between Steam users. When a buyer initiates a purchase, funds are held in escrow while the trade moves through the following lifecycle stages:
Once an order is created, the seller receives a send-trade event and has 11–15 minutes to send the offer and confirm it on Steam Guard mobile authenticator. If the item is subject to Steam's 7-day trade protection hold, status 4 will include release_date and is_released: false.
5. Real-time events vs. polling
To achieve the lowest latency and avoid rate limits, production systems should avoid polling REST endpoints in tight loops.
- For sellers: Connect to the Trade WebSocket (wss://wssex.waxpeer.com) to receive instant send-trade notifications when buyers purchase your listings. Trade WebSocket setup guide →
- For buyers & market trackers: Connect to Socket.IO (wss://waxpeer.com/socket.io/) to stream real-time new, update, and removed market events across CS2, Rust, Dota 2, and TF2. Socket.IO stream guide →
Explore by capability
Deep-dive into specific services, protocols, and API references tailored to your integration.
Authentication & Security
API key query parameter, Steam access token rotation, and official Node SDK setup.
Buy Items API
Instant P2P purchases, bulk orders, CSV snapshots, and Doppler phase filters.
Sell Items API
Listing inventory, Steam trade callbacks, and hourly token refresh.
Trade Statuses & Holds
Numeric state machine, Steam 7-day trade hold overlay, and auto-cancel timers.
Trade WebSocket
Low-latency WebSocket for receiving trade dispatch events and going online.
Socket.IO Market Stream
Real-time item feeds for CS2, Rust, TF2, and user balance change notifications.
Merchant Deposits
Accept skin deposits as customer balance with automated Steam offers and webhooks.
Platform Changelog
Track platform releases, non-breaking features, and wire contract updates.