home / skills / openclaw / skills / bitskins

This skill helps you manage BitSkins marketplace actions like search, price updates, and buying or selling items from your account.

npx playbooks add skill openclaw/skills --skill bitskins

Review the files below or copy the command above to add this skill to your agents.

Files (5)
SKILL.md
5.7 KB
---
name: bitskins-api
description: >
  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.
metadata:
  author: custom
  version: "1.0"
  env_vars: "BITSKINS_API_KEY"
---

# 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
bash bitskins-api/scripts/bitskins-api.sh <METHOD> <PATH> [JSON_BODY]
```

Examples:

```bash
# 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](references/api-endpoints.md).

## API Sections Overview

The API is organized into the following sections. See [references/api-endpoints.md](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](references/websocket.md) for details.

## Common Patterns

### Searching the Market

The market search endpoints accept `where` objects for filtering and support `limit`/`offset` pagination:

```json
{
  "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:

```json
{"app_id": 730, "id": "ITEM_ID", "max_price": 1500}
```

The `max_price` parameter protects against price changes between search and purchase.

### Listing/Depositing Items

1. Get Steam inventory: `POST /steam/inventory/list`
2. Deposit items: `POST /steam/deposit/many` with item IDs and prices
3. Monitor trade status: `POST /steam/trade/active`

### Withdrawing Purchased Items

After buying, withdraw to Steam:
```json
{"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_mine` filter 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

Overview

This skill interacts with the BitSkins REST V2 and WebSocket APIs to search, buy, sell, and manage CS2 and Dota 2 skins. It supports account and wallet operations, Steam inventory/deposits/trades, real-time market subscriptions, and listing management. Use it to automate marketplace workflows, check prices, and execute trades with programmatic control.

How this skill works

Calls BitSkins endpoints authenticated via the x-apikey header (set in BITSKINS_API_KEY). It issues JSON POST/GET requests to market, account, wallet, Steam, and WebSocket endpoints, and respects rate limits and pricing conventions (prices in cents). For sensitive actions (withdrawals, 2FA operations) it requires a fresh two-factor code from the user.

When to use it

  • Search CS2 or Dota 2 markets for specific skins or price ranges
  • Buy, withdraw, or bulk-purchase items programmatically
  • List, delist, relist, or update prices for items you sell
  • Manage Steam inventory deposits and check trade offer status
  • Query wallet balances, transactions, deposits, and withdrawals
  • Subscribe to real-time WebSocket updates for market activity

Best practices

  • Always ask the user to confirm any buy/sell/withdraw operation before executing
  • Request and use a fresh 2FA code for endpoints that require two-factor authentication
  • Convert and handle prices in cents (integer) to avoid rounding errors
  • Respect rate limits: 50 requests/10s globally and 1 req/s for market search
  • Use max_price when buying to protect against price changes between search and purchase
  • Monitor Steam trade status after deposits/withdrawals to ensure completion

Example use cases

  • Find all AK-47 | Redline listings under $10 and buy the cheapest safe-for-purchase item
  • Relist multiple delisted CS2 items at updated prices after a market shift
  • Deposit Steam inventory items to BitSkins and create market listings in bulk
  • Subscribe to WebSocket streams to get real-time price drops and new listings for a skin
  • Generate wallet transaction reports and check KYC limits before a large withdrawal

FAQ

How do I authenticate requests?

Set your API key in the BITSKINS_API_KEY environment variable and include it as the x-apikey header on every request.

Are prices sent as dollars or cents?

Prices are integers in cents (for example, 1000 = $10.00). Always convert to cents when composing requests.

What if an endpoint requires 2FA?

Ask the user for a fresh two-factor code and include it as the twofa_code parameter; do not store the code.