bitskins-api
Interacts with the BitSkins REST API V2 and WebSocket API for CS2/Dota 2 skin trading. Supports account management, market search, buying, selling, listing, delisting, relisting, price updates, Steam inventory/deposits/trades, wallet operations, and real-time WebSocket subscriptions. Use when the user wants to search for skins, check prices, buy or sell items, manage their BitSkins account, check balances, or interact with the BitSkins marketplace.
BitSkins API Skill
Authentication
All requests to the BitSkins API require authentication via the x-apikey header.
The API key must be set in the environment variable BITSKINS_API_KEY.
The user can obtain their API key from BitSkins account settings after enabling API access.
Important: Some endpoints (wallet withdrawals, 2FA operations) also require a twofa_code parameter. Always ask the user for their 2FA code when calling these endpoints rather than storing it.
Base URL
https://api.bitskins.com
Making Requests
Use the helper script to make API calls:
bash bitskins-api/scripts/bitskins-api.sh <METHOD> <PATH> [JSON_BODY]
Examples:
# GET request (no body)
bash bitskins-api/scripts/bitskins-api.sh GET /account/profile/me
# POST request with JSON body
bash bitskins-api/scripts/bitskins-api.sh POST /account/profile/balance
# POST with parameters
bash bitskins-api/scripts/bitskins-api.sh POST /market/search/730 '{"limit":10,"offset":0,"where":{}}'
Rate Limits
- Global: 50 requests per 10 seconds
- Market search (
/market/search/*): 1 request per second - These limits are dynamic and may be reduced under heavy server load.
Request Format
- The API accepts JSON format
- GET requests: no body required
- POST requests: JSON body with required parameters
Response Format
All responses are JSON. Successful responses contain the data directly. Error responses include error codes documented in references/api-endpoints.md.
API Sections Overview
The API is organized into the following sections. See references/api-endpoints.md for the full endpoint reference.
Account
- Profile: Get session info, balance, update account settings, update trade link, block account
- Affiliate: Get affiliate info, claim money, view reward history, set affiliate code
- 2FA: Create, verify, disable, lock/unlock two-factor authentication
- API Access: Create or disable API keys
Config
- Currency rates: Get current exchange rates
- Fee plans: Get available fee plans
- Platform status: Check if platform is operational
Market (CS2 app_id=730, Dota 2 app_id=570)
- Pricing: Get sales history, pricing summaries
- Search: Browse CS2/Dota 2 markets, search own items, get item details, search by skin name, get filters
- Buy: Buy single item, multiple items, or bulk buy
- Withdraw: Withdraw single or multiple purchased items to Steam
- Delist: Remove single or multiple items from sale
- Relist: Relist single or multiple delisted items
- Update price: Change price on single or multiple listed items
- History: View item transaction history
- Receipt: Get purchase receipt
- Bump: Bump items for visibility, manage bump settings, buy bump packages
- Skins catalog: Get all available skin names for a game
- In-sell items: Get all currently listed items for a game
Steam
- Inventory: List Steam inventory items
- Deposit: Deposit items from Steam to BitSkins
- Trades: View Steam trade offers and their status
Wallet
- Stats: Get wallet statistics, KYC limits
- Transactions: List completed and pending transactions
- Reports: Generate and download wallet reports
Wallet Deposit
- Binance Pay: Create Binance Pay deposit
- Cryptocurrency: Get deposit addresses for BTC, LTC, ETH
- Gift codes: Redeem gift codes, view used codes
- Zen: Create Zen deposit
- Card (Unlimint): Add cards, list cards, deposit via card
Wallet Withdraw
- Cryptocurrency: Withdraw to BTC, LTC, ETH addresses
- Binance Pay: Withdraw via Binance Pay
- Card (Unlimint): Withdraw to Visa card
WebSocket
Real-time updates via wss://ws.bitskins.com. See references/websocket.md for details.
Common Patterns
Searching the Market
The market search endpoints accept where objects for filtering and support limit/offset pagination:
{
"limit": 20,
"offset": 0,
"order": [{"field": "price", "order": "ASC"}],
"where": {
"skin_name": ["AK-47 | Redline"],
"price_from": 1000,
"price_to": 5000
}
}
Note: Prices are in cents (e.g., 1000 = $10.00).
Buying Items
To buy an item, you need its id and app_id. Use market search to find items, then:
{"app_id": 730, "id": "ITEM_ID", "max_price": 1500}
The max_price parameter protects against price changes between search and purchase.
Listing/Depositing Items
- Get Steam inventory:
POST /steam/inventory/list - Deposit items:
POST /steam/deposit/manywith item IDs and prices - Monitor trade status:
POST /steam/trade/active
Withdrawing Purchased Items
After buying, withdraw to Steam:
{"app_id": 730, "id": "ITEM_ID"}
Important Notes
- Always confirm with the user before executing buy, sell, withdraw, or any financial operation
- Prices are in cents (integer values)
- Game IDs: CS2 = 730, Dota 2 = 570
- The
where_minefilter on "mine" endpoints accepts:listed,pending_withdrawal,in_queue,given,need_to_withdraw - 2FA codes are time-sensitive; always request fresh codes from the user