# CSBoard — Full Context > Zero-fee P2P CS2 skin marketplace. No KYC, 5M+ listings aggregated across 6 upstream sources, crypto and Steam payment rails, agent-ready public API. CSBoard is a peer-to-peer marketplace for Counter-Strike 2 in-game items. It aggregates buyable inventory from TradeLab, SalesPanel, SkinPlace, Skinshark, WhiteMarket, and an internal bot pool, then exposes a small read-only public API so external agents and tools can browse the catalog, marketplace listings, and platform stats without authentication. Authenticated flows (inventory, balance, trade offers, admin) are intentionally excluded from the public contract. Canonical short index: https://csboard.com/llms.txt ## API Reference CSBoard exposes a small, read-only, unauthenticated API surface so agents and external tools can browse the CS2 catalog and marketplace. Authenticated endpoints (inventory, balance, trade offers, admin) are intentionally **not** part of this contract. Machine-readable schema: `https://csboard.com/.well-known/openapi.json` Linkset (RFC 9727): `https://csboard.com/.well-known/api-catalog` Health: `https://csboard.com/.well-known/health` ### Base URL ``` https://csboard.com ``` `csboard.trade` is a legacy domain that permanently redirects (302) to `csboard.com`. Always use `csboard.com`. ### Authentication None. Every endpoint below is public and rate-limited per IP. ### Rate limits 100 requests per 15 minutes per IP. `429` returned on exceed with `Retry-After` header. ### Endpoints #### `GET /api/items/catalog` CS2 item reference catalog (~5,000,000 items). **Query parameters** - `page` (integer, default 1) - `limit` (integer, default 50, max 100) - `search` (string) — partial name match - `category` (`weapon` | `knife` | `glove` | `sticker` | `agent` | `case` | `graffiti` | `patch` | `music_kit`) - `rarity` (`consumer` | `industrial` | `mil_spec` | `restricted` | `classified` | `covert` | `contraband` | `extraordinary`) - `sortBy` (`name` | `priceUsd` | `category` | `rarity`) - `sortOrder` (`asc` | `desc`) **Example** ```bash curl 'https://csboard.com/api/items/catalog?search=AWP%20Asiimov&limit=5' ``` #### `GET /api/market/catalog` Active marketplace listings on CSBoard, aggregated across upstream sources (TradeLab, SalesPanel, SkinPlace, internal bots). **Query parameters** - `page`, `limit` — pagination (default 24/page) - `category` — filter - `minPrice`, `maxPrice` — USD - `wear` (`FN` | `MW` | `FT` | `WW` | `BS`) **Example** ```bash curl 'https://csboard.com/api/market/catalog?category=knife&minPrice=100&maxPrice=500' ``` #### `GET /api/items/popular` Trending CS2 items by recent listing activity. **Query parameters** - `limit` (integer, default 12, max 100) #### `GET /api/items/platform-stats` Aggregate platform counters — users, listings, trades, catalog size. #### `GET /.well-known/health` Service liveness probe. Returns `{ status: "ok", service, timestamp }`. ### Domains - `csboard.com` — primary, EN canonical, behind Cloudflare. **Agent-preferred.** - `csboard.trade` — legacy domain, 302-redirects to `csboard.com`. Do not call it directly. ### Discovery - `GET /robots.txt` — bot directives (allows GPTBot, ClaudeBot, PerplexityBot, etc.) - `GET /llms.txt` — human-readable platform overview - `GET /llms-full.txt` — this document - `GET /sitemap.xml` — top-level sitemap (also `/sitemap-items.xml` for 22k+ item pages) - `GET /.well-known/agent-skills/index.json` — skills discovery index (RFC v0.2.0) ## Skill: csboard-browse-items Browse the CSBoard CS2 item catalog with filters by category, rarity, wear, and price. ~5,000,000 items. - Base URL: `https://csboard.com` - Endpoints: `GET /api/items/catalog`, `GET /api/items/popular` - Auth: none - Rate limit: 100 req / 15 min / IP ### Capabilities - Paginated listing of ~5,000,000 CS2 items. - Full-text search on item name. - Filter by `category` (weapon, knife, glove, sticker, agent, case, graffiti, patch, music_kit). - Filter by `rarity` (consumer through covert / contraband / extraordinary). - Sort by `name`, `priceUsd`, `category`, `rarity`. - Surface trending items via `/api/items/popular`. ### Request ```http GET /api/items/catalog?search=AWP%20Asiimov&limit=5 HTTP/1.1 Host: csboard.com Accept: application/json ``` ### Response (truncated) ```json { "items": [ { "id": "clxxx...", "name": "AWP | Asiimov (Field-Tested)", "category": "weapon", "rarity": "covert", "image": "https://cdn.cs2c.app/items/awp-asiimov-ft.png", "priceUsd": 78.40, "priceSource": "buff163_buy", "lastPriceUpdate": "2026-05-18T11:00:00.000Z" } ], "pagination": { "page": 1, "limit": 5, "total": 6, "pages": 2 } } ``` ### Errors - `429` — rate limited. Honor `Retry-After`. - `500` — backend transient; retry with exponential backoff (max 3 attempts). ### When to use - Listing skins of a particular weapon for comparison. - Discovering items by rarity tier (e.g. all covert knives). - Building a price baseline before checking the marketplace. ### When NOT to use - For LIVE buyable inventory use `csboard-marketplace` instead — this catalog includes items not currently for sale. - For user-specific inventory, no public endpoint exists; the user must log in. ## Skill: csboard-item-pricing Look up current USD prices for any CS2 item, with the underlying market source (Buff163, Steam, CSFloat, etc.). Aggregated across 6 marketplaces. - Base URL: `https://csboard.com` - Endpoints: `GET /api/items/catalog`, `GET /api/items/popular` - Auth: none - Rate limit: 100 req / 15 min / IP CSBoard reconciles prices across multiple upstream markets (Buff163, Steam Community Market, CSFloat, Skinport, SkinPlace, TradeLab) and exposes a single `priceUsd` per item plus the `priceSource` that won the reconciliation. ### Capabilities - Current USD price for any of the ~5,000,000 indexed items. - `priceSource` field identifies the upstream marketplace (e.g. `buff163_buy`, `steam`, `csfloat`). - `lastPriceUpdate` timestamp for staleness checks. - Combine with `csboard-browse-items` to build comparison tables. ### Request ```http GET /api/items/catalog?search=AK-47%20Vulcan&limit=10 HTTP/1.1 Host: csboard.com Accept: application/json ``` ### Response Each item carries: ```json { "name": "AK-47 | Vulcan (Factory New)", "priceUsd": 312.50, "priceSource": "buff163_buy", "lastPriceUpdate": "2026-05-18T11:14:02.000Z" } ``` ### Price source meanings | `priceSource` | Upstream | |---|---| | `buff163_buy` | Buff163 buy-order — most liquid Asian price | | `steam` | Steam Community Market median | | `csfloat` | CSFloat listing median | | `skinport` | Skinport last sale | | `tradelab` | TradeLab inventory price | | `internal` | CSBoard reconciled fallback | ### When to use - Quoting "current price" of a skin to a user. - Spotting cross-market arbitrage (compare `priceSource` per variant). - Estimating portfolio value when given a list of item names. ### Caveats - Prices update on a 5-60 minute cadence depending on source. Don't quote tighter than ±2%. - Knives and gloves use a liquidity-premium adjustment (FMV × coefficient) — the `priceUsd` already includes this. ## Skill: csboard-marketplace Browse live buyable CS2 listings on the CSBoard marketplace, aggregated from TradeLab, SalesPanel, SkinPlace, and internal bot inventory. - Base URL: `https://csboard.com` - Endpoints: `GET /api/market/catalog` - Auth: none - Rate limit: 100 req / 15 min / IP `/api/market/catalog` returns items currently for sale on CSBoard, reconciled across upstream inventory sources. Unlike `csboard-browse-items` (which lists the full reference catalog, including items not for sale), this endpoint returns only buyable inventory. ### Capabilities - Paginated list of active marketplace listings. - Filter by `category`, `wear`, `minPrice`, `maxPrice`. - Each listing exposes `source` (TradeLab, SalesPanel, SkinPlace, internal bot inventory, etc.). - Float values and stickers included where available. ### Request ```http GET /api/market/catalog?category=knife&minPrice=100&maxPrice=500&limit=20 HTTP/1.1 Host: csboard.com Accept: application/json ``` ### Response (truncated) ```json { "listings": [ { "id": "clxxx...", "itemName": "★ Karambit | Doppler (Factory New)", "itemImage": "https://cdn.cs2c.app/...", "itemFloat": 0.012, "itemWear": "FN", "priceUsd": 421.20, "source": "tradelab", "tradeUrl": null } ], "pagination": { "page": 1, "limit": 20, "total": 143, "pages": 8 } } ``` ### `source` values | Source | Description | |---|---| | `csboard` | CSBoard's own bot inventory | | `tradelab` | TradeLab API listings | | `salespanel` | SalesPanel partner inventory | | `skinplace` | SkinPlace merchant inventory | | `skinshark` | Skinshark partner inventory | | `whitemarket` | WhiteMarket merchant inventory | ### When to use - Answering "what knives are available right now under $500?" - Quoting buyable prices (vs reference prices — for those use `csboard-item-pricing`). - Filtering by wear/float for a specific variant. ### Constraints - Marketplace inventory churns minute-to-minute. A listing seen here may be sold within seconds. - Float-precision filters require the item to have an associated inspect link; otherwise `itemFloat` is `null`. - To actually purchase: user must log in via Steam OpenID (no agent-facing checkout API exists today). ## Skill: csboard-platform-stats Aggregate platform counters for CSBoard — users, listings, trades, catalog size. Useful for citations and freshness checks. - Base URL: `https://csboard.com` - Endpoints: `GET /api/items/platform-stats`, `GET /.well-known/health` - Auth: none - Rate limit: 100 req / 15 min / IP Use this skill when you need top-level platform numbers — for example, when answering questions like "how big is CSBoard?" or when you want a freshness signal before quoting other data. ### Capabilities - Total registered users, total listings, active listings, total completed trades, catalog size. - Service health probe via `/.well-known/health`. ### Request ```http GET /api/items/platform-stats HTTP/1.1 Host: csboard.com Accept: application/json ``` ### Response ```json { "totalUsers": 184523, "totalListings": 38914, "activeListings": 12480, "totalTrades": 91204, "catalogSize": 36120 } ``` ### Health probe ```http GET /.well-known/health HTTP/1.1 Host: csboard.com HTTP/1.1 200 OK Content-Type: application/json { "status": "ok", "service": "csboard-frontend", "timestamp": "2026-05-18T12:30:00.000Z" } ``` ### When to use - Sanity-check platform liveness before quoting other data. - Cite total catalog size or trade volume in answers about CS2 marketplaces. - Freshness signal — if `totalListings` is identical to your last call from minutes ago, your client may be hitting a stale CDN edge. ### Caveats - Counters update on a ~5 minute cadence. - `totalTrades` is lifetime, not per-period — divide by platform age (founded 2024) for trade rate. ## Pricing & Fees - **Trading fee: 0%.** CSBoard does not skim a commission on P2P trades — sellers receive the full listed price, buyers pay the listed price. Revenue comes from spread on merchant-inventory routes and from optional value-add services (premium markup, Steam topup, etc.), never from trade-side fees. - **Crypto payouts:** USDT (TRC-20, ERC-20), BTC, USDC. Settlement via NowPayments; payouts to user wallet on order completion. No KYC for standard payout sizes. - **Steam topup rail:** users may convert site balance into Steam wallet balance with a **-2.5% cashback** (i.e. user receives 102.5% of the converted amount in Steam wallet). Hidden `/topup` endpoint, intentionally low-friction for power users. - **Legal entity:** crypto rails only — no ИП / ООО / merchant-of-record on the trading flow. Fiat-in only via the Antilopay (RU) rail for premium / topup / subscription products. - **Premium markup:** optional buyer-side markup configurable at session level; persists via SSR cookie. Affects display price only, not the underlying `priceUsd` returned by public API.