TAKE.SKIN API & WIDGETS
Access CS2 skin data, pro player settings, live pricing, and embed interactive blog cards for Players, Skins, Cases, and Simulator / Loadout Tools with zero setup.
Overview
The Take.Skin Developer Platform provides both high-performance REST JSON APIs and Interactive Embed Widgets. Whether you are building a custom CS2 web app, writing Markdown blog articles, or embedding skin price cards on your website, everything is free and requires no API key.
Base URL
https://take.skinAuthentication
None required (IP-based rate limiting)
Card Embeds & Markdown Shortcodes
Supported for Pro Players, Skins, Cases, Simulator, and Loadouts
CORS & Iframe Embed
Enabled — usable across any domain, CMS, or website
Interactive Blog Cards & Embed Builder
Use the generator below to configure and test any card with a real-time interactive preview. Copy the generated Markdown shortcode for Take.Skin-style blog posts, or grab the HTML iframe embed snippet to display rich CS2 widgets on any website.
Blog Cards & Embed Builder
Take.Skin allows you to insert rich interactive cards for Pro Players, CS2 Skins, Weapon Cases, Case Opening Simulator, and the Loadout Generator. Use simple Markdown links in your articles or embed iframe cards on any external website.
[s1mple — NAVI Pro Settings & Crosshair](player:s1mple)💡 Blog Markdown Rule: In Take.Skin blog posts (and compatible React-Markdown renderers), placing a standalone link like [Text](player:slug) or [Text](skin:slug) automatically transforms into this high-fidelity card component.
Blog Cards Syntax & Embed Specification
Take.Skin supports rich card components natively in Markdown articles and via standalone embed routes. Below is the full syntax reference for all 5 embed card types.
| Widget Type | Markdown Shortcode | Iframe Embed URL | What It Renders |
|---|---|---|---|
| Pro Player Card | [Player Name](player:s1mple) | /embed/player/s1mple?lang=en | Player avatar, mouse DPI/sens, crosshair copy button, resolution & gear setup. |
| CS2 Skin Card | [Skin Name](skin:ak-47-asiimov) | /embed/skin/ak-47-asiimov?lang=en | 3D preview image, rarity border glow, real-time Steam price, and price chart link. |
| Weapon Case Card | [Case Name](case:kilowatt-case) | /embed/case/kilowatt-case?lang=en | Weapon case render, live container pricing, and direct link to open in simulator. |
| Case Simulator Card | [Simulator](simulator:en) | /embed/simulator?lang=en | Feature card highlighting official Valve drop odds (~0.26% Gold) and ROI tracking. |
| Loadout Builder Card | [Loadout Generator](loadout:en) | /embed/loadout?lang=en | Banner for theme-based inventory generation, glove/knife matching, and budget planning. |
Markdown Formatting Rules
- Standalone Card: Put the link on its own separate paragraph line to trigger the full rich visual card. (
[s1mple](player:s1mple)) - Inline Text Link: If placed inside surrounding paragraph text, it renders as a clean inline text link navigating to the item page.
- Language Parameters: For simulator and loadout cards, append :en or :zh to localize the card labels.
Rate Limits
Limits apply per IP address and are shared across all /api/public/v1 endpoints in one rolling hour. Each HTTP GET counts as one request. Market data is cached; avoid tight polling. Every response includes rate-limit headers.
60
Requests per hour (all public endpoints)
30 days max
Price history range
100 max
Skins per page
Response Headers
X-RateLimit-Limit — Max requests per window
X-RateLimit-Remaining — Requests remaining in current window
X-RateLimit-Reset — Seconds until the rate limit resets
/api/public/v1/skinsRetrieve a paginated list of all CS2 skins. Supports filtering by weapon type, rarity, and search keyword.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| page | integer | No | Page index (0-based). Default: 0 |
| limit | integer | No | Items per page (1-100). Default: 50 |
| search | string | No | Search skins by name (case-insensitive) |
| category | string | No | Filter by weapon category: RIFLES, PISTOLS, SMGS, KNIVES, HEAVY, OTHER |
| weapon | string | No | Filter by weapon slug, e.g. ak-47, karambit |
| rarity | string | No | Filter by rarity: Covert, Classified, Restricted, Mil-Spec Grade, etc. |
Example Request
curl "https://take.skin/api/public/v1/skins?page=0&limit=5&category=RIFLES"Example Response
{
"page": 0,
"limit": 5,
"total": 487,
"totalPages": 98,
"data": [
{
"name": "Asiimov",
"slug": "ak-47-asiimov",
"rarity": "Covert",
"price": 34.20,
"hasStatTrak": true,
"hasSouvenir": false,
"marketHashName": "AK-47 | Asiimov (Field-Tested)",
"weapon": {
"name": "AK-47",
"slug": "ak-47",
"category": "RIFLES"
}
}
]
}/api/public/v1/skins/{marketHashName}/price-historyGet daily price history for a specific skin variant. The free tier provides up to 30 days of data. The marketHashName must be URL-encoded.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| marketHashName | string | Yes | URL-encoded Steam market hash name, e.g. "AK-47 | Asiimov (Field-Tested)" |
| days | integer | No | Number of days of history (1-30). Default: 7 |
Example Request
curl "https://take.skin/api/public/v1/skins/AK-47%20%7C%20Asiimov%20(Field-Tested)/price-history?days=30"Example Response
{
"marketHashName": "AK-47 | Asiimov (Field-Tested)",
"currency": "USD",
"days": 30,
"count": 30,
"data": [
{ "date": "2026-03-18", "price": 32.50, "volume": 142 },
{ "date": "2026-03-19", "price": 33.10, "volume": 98 },
{ "date": "2026-03-20", "price": 34.20, "volume": 201 }
]
}/api/public/v1/casesRetrieve a list of all CS2 weapon cases with their current prices.
Example Request
curl "https://take.skin/api/public/v1/cases"Example Response
{
"count": 42,
"data": [
{
"name": "Kilowatt Case",
"slug": "kilowatt-case",
"price": 1.23,
"marketHashName": "Kilowatt Case"
}
]
}/api/public/v1/collectionsRetrieve a list of all CS2 skin collections.
Example Request
curl "https://take.skin/api/public/v1/collections"Example Response
{
"count": 68,
"data": [
{
"name": "The Alpha Collection",
"slug": "the-alpha-collection"
}
]
}/api/mobile/players/{slug}Get detailed CS2 pro player data including crosshair code, mouse sensitivity, eDPI, monitor settings, full gear setup, and team info.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| slug | string | Yes | Pro player slug identifier, e.g. s1mple, m0NESY, donk, zywoo |
Example Request
curl "https://take.skin/api/mobile/players/s1mple"Example Response
{
"id": "cm1...",
"name": "s1mple",
"slug": "s1mple",
"image": "https://img.take.skin/r2takeskinimg/player-s1mple.webp",
"team": "Natus Vincere",
"country": "Ukraine",
"data": {
"settings": {
"mouse": { "DPI": "400", "Sensitivity": "3.09", "eDPI": "1236" },
"crosshair": { "code": "CSGO-32t4h-s342q-..." }
},
"gear": [
{ "type": "Mouse", "name": "Logitech G Pro X Superlight" },
{ "type": "Monitor", "name": "ZOWIE XL2566K" }
]
}
}/api/mobile/skins/{slug}Get complete skin metadata, 3D preview render URLs, rarity tier, weapon type, wear variants, and live market pricing.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| slug | string | Yes | Skin slug identifier, e.g. ak-47-asiimov, awp-dragon-lore |
Example Request
curl "https://take.skin/api/mobile/skins/ak-47-asiimov"Example Response
{
"name": "AK-47 | Asiimov",
"slug": "ak-47-asiimov",
"rarity": "Covert",
"imageUrl": "https://img.take.skin/r2takeskinimg/ak-47-asiimov-float.webp",
"minPrice": 28.50,
"weaponType": { "name": "AK-47", "category": "RIFLES" }
}Error Codes
All error responses return a JSON object with error and message fields.
OK
Request succeeded.
Bad Request
Invalid parameters (e.g. days > 30, missing required fields).
Too Many Requests
Rate limit exceeded. Wait and retry. See Retry-After header.
Internal Server Error
Unexpected server error. Please try again later.
Error Response Example
{
"error": "Bad Request",
"message": "Free API only provides up to 30 days of price history. You requested 90 days."
}Questions or feedback? Reach us on Discord.