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