TAKE.SKIN API 与组件开放平台
免费获取 CS2 饰品行情数据、职业选手配置与准星代码,并支持零成本将职业选手、皮肤 3D 预览、武器箱以及模拟器/配装器生成卡片一键嵌入到您的文章或外部网站中。
平台概览
Take.Skin 开放平台同时提供高性能 REST JSON 接口与交互式前端嵌入卡片。无论是构建您自己的 CS2 网站、撰写 Markdown 博客文章,还是在外部网站中嵌入实时皮肤卡片,所有功能均完全免费,无需申请 API Key。
接口基地址 (Base URL)
https://take.skin身份验证
无需密钥认证 (基于 IP 的透明流控)
卡片嵌入与 Markdown 短代码
支持职业选手、饰品皮肤、武器箱、开箱模拟器与配装生成器
跨域 (CORS) 与 Iframe 嵌入
全域开放 — 可在任意域名、CMS(WordPress/Notion等)或自建网站中直接嵌入
博客卡片与嵌入组件生成器
通过下方生成器实时配置并体验各类卡片的真实交互效果。一键复制专属 Markdown 短代码用于博客文章,或获取 HTML Iframe 嵌入代码直接在任意第三方网页中展示高质感 CS2 卡片。
博客卡片与嵌入组件生成器
Take.Skin 支持在文章中无缝插入职业选手、饰品皮肤、武器箱、开箱模拟器与配装生成器等高质感卡片。只需简单的 Markdown 语法或 Iframe 即可随处调用。
[s1mple — 职业选手准星与外设设置](player:s1mple)💡 博客 Markdown 规则: 在 Take.Skin 博客文章(以及兼容的 React-Markdown 渲染器)中,单独成行的链接格式如 [文案](player:slug) 或 [文案](skin:slug) 会自动转换为此高质感卡片组件。
博客卡片语法规范与嵌入参考
Take.Skin 支持在 Markdown 文章中原生解析卡片组件,也提供独立的嵌入路由。以下是全部 5 种卡片组件的语法规范与渲染效果说明。
| 组件类型 | Markdown 短代码格式 | Iframe 嵌入独立路由 | 渲染内容与特性 |
|---|---|---|---|
| 职业选手卡片 | [Player Name](player:s1mple) | /embed/player/s1mple?lang=cn | 选手头像、鼠标灵敏度/DPI、准星代码一键复制、分辨率与全套外设。 |
| 饰品皮肤卡片 | [Skin Name](skin:ak-47-asiimov) | /embed/skin/ak-47-asiimov?lang=cn | 皮肤 3D 预览图、品质动态光晕边框、实时 Steam 市场底价与走势图链接。 |
| 武器箱卡片 | [Case Name](case:kilowatt-case) | /embed/case/kilowatt-case?lang=cn | 武器箱高清图、当前市场售价,并支持一键进入模拟器直接开箱。 |
| 开箱模拟器卡片 | [Simulator](simulator:en) | /embed/simulator?lang=cn | 模拟器功能大卡片,展示官方掉落概率(~0.26% 金色)与开箱回报率追踪。 |
| 配装生成器卡片 | [Loadout Generator](loadout:en) | /embed/loadout?lang=cn | 智能配装器 Banner,展示色系搭配、预算配装、手套刀具匹配与导出分享。 |
Markdown 排版规则
- 单行独立卡片: 将 Markdown 链接单独写在独立的一行段落中,即可自动触发卡片大组件渲染。 (
[s1mple](player:s1mple)) - 行内文字链接: 如果链接嵌入在一段话的正文中,会自动渲染为精致的行内超链接直达对应页面。
- 多语言参数: 对于模拟器和配装器卡片,可在冒号后添加 :en 或 :zh 来指定卡片显示语言。
接口频率限制 (Rate Limits)
频率限制基于请求方 IP 地址计算,在 1 小时滑动窗口内共享。每次 HTTP GET 请求计为 1 次。市场行情数据已内置高速缓存,无需频繁轮询。所有响应头中均包含剩余额度信息。
60
每小时请求上限 (所有公共接口)
最长 30 天
价格历史跨度
最多 100 件
每页皮肤数量
响应头信息 (Response Headers)
X-RateLimit-Limit — 当前窗口允许的最大请求数
X-RateLimit-Remaining — 当前时间窗口内剩余的请求次数
X-RateLimit-Reset — 距离重置频率限制的剩余秒数
/api/public/v1/skins分页获取 CS2 饰品皮肤列表,支持按武器类型、品质等级以及关键词进行多维过滤搜索。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | integer | 否 | Page index (0-based). Default: 0 |
| limit | integer | 否 | Items per page (1-100). Default: 50 |
| search | string | 否 | Search skins by name (case-insensitive) |
| category | string | 否 | Filter by weapon category: RIFLES, PISTOLS, SMGS, KNIVES, HEAVY, OTHER |
| weapon | string | 否 | Filter by weapon slug, e.g. ak-47, karambit |
| rarity | string | 否 | Filter by rarity: Covert, Classified, Restricted, Mil-Spec Grade, etc. |
请求示例
curl "https://take.skin/api/public/v1/skins?page=0&limit=5&category=RIFLES"响应示例
{
"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-history获取指定皮肤变体的每日价格走势数据。免费版支持最长 30 天历史。marketHashName 参数需 URL 编码。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| marketHashName | string | 是 | URL-encoded Steam market hash name, e.g. "AK-47 | Asiimov (Field-Tested)" |
| days | integer | 否 | Number of days of history (1-30). Default: 7 |
请求示例
curl "https://take.skin/api/public/v1/skins/AK-47%20%7C%20Asiimov%20(Field-Tested)/price-history?days=30"响应示例
{
"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/cases获取所有 CS2 武器箱列表及其实时市场参考价格。
请求示例
curl "https://take.skin/api/public/v1/cases"响应示例
{
"count": 42,
"data": [
{
"name": "Kilowatt Case",
"slug": "kilowatt-case",
"price": 1.23,
"marketHashName": "Kilowatt Case"
}
]
}/api/public/v1/collections获取所有 CS2 官方饰品收藏品合集列表。
请求示例
curl "https://take.skin/api/public/v1/collections"响应示例
{
"count": 68,
"data": [
{
"name": "The Alpha Collection",
"slug": "the-alpha-collection"
}
]
}/api/mobile/players/{slug}获取职业选手的准星代码、鼠标灵敏度、eDPI、显示器分辨率设置及战队外设详情。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| slug | string | 是 | Pro player slug identifier, e.g. s1mple, m0NESY, donk, zywoo |
请求示例
curl "https://take.skin/api/mobile/players/s1mple"响应示例
{
"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}获取皮肤的完整元数据、3D 渲染图路径、品质分级、磨损变体以及实时市场起步价。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| slug | string | 是 | Skin slug identifier, e.g. ak-47-asiimov, awp-dragon-lore |
请求示例
curl "https://take.skin/api/mobile/skins/ak-47-asiimov"响应示例
{
"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 和 message 字段的标准 JSON 对象。
OK
请求成功。
Bad Request
请求参数无效(例如查询天数超过 30 天或缺少必填字段)。
Too Many Requests
超出请求频率限制,请等待重置后再试(参考 Retry-After 响应头)。
Internal Server Error
服务器内部异常,请稍后重试。
错误响应示例
{
"error": "Bad Request",
"message": "Free API only provides up to 30 days of price history. You requested 90 days."
}遇到问题或有任何建议?欢迎加入我们的官方 Discord 社区.