Developer PlatformFree REST APIBlog & Embed Cards

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.skin

Authentication

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 & Embed CardsMarkdown & HTML Embed

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.

2. Configure Options
Popular Pro Players (Click to select):
Live Component
take.skin/embed/player/s1mple
Test Embed URL
[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 TypeMarkdown ShortcodeIframe Embed URLWhat It Renders
Pro Player Card[Player Name](player:s1mple)/embed/player/s1mple?lang=enPlayer 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=en3D 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=enWeapon case render, live container pricing, and direct link to open in simulator.
Case Simulator Card[Simulator](simulator:en)/embed/simulator?lang=enFeature card highlighting official Valve drop odds (~0.26% Gold) and ROI tracking.
Loadout Builder Card[Loadout Generator](loadout:en)/embed/loadout?lang=enBanner 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-LimitMax requests per window

X-RateLimit-RemainingRequests remaining in current window

X-RateLimit-ResetSeconds until the rate limit resets

GET/api/public/v1/skins

Retrieve a paginated list of all CS2 skins. Supports filtering by weapon type, rarity, and search keyword.

Parameters

ParameterTypeRequiredDescription
pageintegerNoPage index (0-based). Default: 0
limitintegerNoItems per page (1-100). Default: 50
searchstringNoSearch skins by name (case-insensitive)
categorystringNoFilter by weapon category: RIFLES, PISTOLS, SMGS, KNIVES, HEAVY, OTHER
weaponstringNoFilter by weapon slug, e.g. ak-47, karambit
raritystringNoFilter 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

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"
      }
    }
  ]
}
GET/api/public/v1/skins/{marketHashName}/price-history

Get 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

ParameterTypeRequiredDescription
marketHashNamestringYesURL-encoded Steam market hash name, e.g. "AK-47 | Asiimov (Field-Tested)"
daysintegerNoNumber 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

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 }
  ]
}
GET/api/public/v1/cases

Retrieve a list of all CS2 weapon cases with their current prices.

Example Request

curl "https://take.skin/api/public/v1/cases"

Example Response

Response
{
  "count": 42,
  "data": [
    {
      "name": "Kilowatt Case",
      "slug": "kilowatt-case",
      "price": 1.23,
      "marketHashName": "Kilowatt Case"
    }
  ]
}
GET/api/public/v1/collections

Retrieve a list of all CS2 skin collections.

Example Request

curl "https://take.skin/api/public/v1/collections"

Example Response

Response
{
  "count": 68,
  "data": [
    {
      "name": "The Alpha Collection",
      "slug": "the-alpha-collection"
    }
  ]
}
GET/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

ParameterTypeRequiredDescription
slugstringYesPro player slug identifier, e.g. s1mple, m0NESY, donk, zywoo

Example Request

curl "https://take.skin/api/mobile/players/s1mple"

Example Response

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" }
    ]
  }
}
GET/api/mobile/skins/{slug}

Get complete skin metadata, 3D preview render URLs, rarity tier, weapon type, wear variants, and live market pricing.

Parameters

ParameterTypeRequiredDescription
slugstringYesSkin slug identifier, e.g. ak-47-asiimov, awp-dragon-lore

Example Request

curl "https://take.skin/api/mobile/skins/ak-47-asiimov"

Example Response

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.

200

OK

Request succeeded.

400

Bad Request

Invalid parameters (e.g. days > 30, missing required fields).

429

Too Many Requests

Rate limit exceeded. Wait and retry. See Retry-After header.

500

Internal Server Error

Unexpected server error. Please try again later.

Error Response Example

Response
{
  "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.

Developers & Embeds — Free CS2 API & Interactive Widgets | Take.Skin