API 文档
图灵工坊对外开放 API,无需 API Key,匿名访问,返回 JSON 格式。
基础信息
| Base URL | https://aituring.com/api |
|---|---|
| 请求方式 | GET |
| 响应格式 | JSON(UTF-8,Content-Type: application/json) |
| 鉴权 | 无(匿名访问) |
| 默认排序 | 按 download_count 倒序(下载量优先) |
| 分页上限 | size 最大 10 |
状态码
响应体的 code 字段采用 HTTP 风格状态码:
| code | 含义 |
|---|---|
200 | 请求成功 |
400 | 客户端错误:参数缺失、格式错误 |
404 | 资源不存在(如 slug 未找到) |
429 | 请求过频:触发单 IP 下载防刷阈值(10 次/分钟) |
500 | 服务端异常(罕见,已捕获堆栈不外泄) |
1. 搜索技能
按关键词搜索已发布技能,返回匹配列表。空关键词则返回热门排行。
请求
GET /api/search?q=<keyword>&page=<page>&size=<size>参数:
| 参数 | 必填 | 默认 | 说明 |
|---|---|---|---|
q | 否 | 空字符串 | 搜索关键词,留空返回热门排行(按下载量) |
page | 否 | 1 | 页码,从 1 开始 |
size | 否 | 10 | 每页条数,最大 10 |
请求示例:
curl 'https://aituring.com/api/search?q=claude&size=5'成功响应(code: 200):
{
"code": 200,
"data": {
"keyword": "claude",
"page": 1,
"size": 5,
"total": 2,
"items": [
{
"skill_key": "skill-creator",
"slug": "skill-creator",
"name": "技能创建器",
"short_description": "帮助快速创建、打包和发布 AI 技能包",
"latest_version": {
"version": "1.2.0",
"zip_url": "https://aituring.com/api/download?slug=skill-creator",
"created_at": "2026-06-15 10:23:00"
}
}
]
}
}2. 按 Slug 查询
根据站内唯一 Slug 查询单个技能详情。
请求
GET /api/skill?slug=<slug>参数:
| 参数 | 必填 | 说明 |
|---|---|---|
slug | 是 | 站内唯一 Slug,从搜索接口或技能详情页 URL 获取 |
请求示例:
curl 'https://aituring.com/api/skill?slug=skill-creator'成功响应(code: 200):
{
"code": 200,
"data": {
"skill_key": "skill-creator",
"slug": "skill-creator",
"name": "技能创建器",
"short_description": "帮助快速创建、打包和发布 AI 技能包",
"latest_version": {
"version": "1.2.0",
"zip_url": "https://aituring.com/api/download?slug=skill-creator",
"published_at": "2026-06-15 10:23:00"
}
}
}参数缺失(code: 400):
{ "code": 400, "msg": "slug 参数必填" }资源不存在(code: 404):
{ "code": 404, "msg": "skill not found" }3. 下载最新版 ZIP
搜索 / Slug 查询接口返回的 latest_version.zip_url 指向本端点。GET 此 URL 会返回
302 重定向到真实 ZIP 包,并自动计入 download_count 与下载日志。
curl / wget / 浏览器 / fetch 默认都会跟随 302,对消费方透明。
请求
GET /api/download?slug=<slug>参数:
| 参数 | 必填 | 说明 |
|---|---|---|
slug | 是 | 站内唯一 Slug(与 /api/skill 同一枚举规则:[a-z0-9_-]) |
请求示例(-L 跟随重定向到 ZIP 文件):
curl -Lv 'https://aituring.com/api/download?slug=skill-creator' -o skill-creator.zip成功响应(HTTP 302,非 JSON):
HTTP/1.1 302 Found
Location: https://cdn.aituring.com/skills/skill-creator-1.2.0.zip参数无效(code: 400,JSON):
{ "code": 400, "msg": "slug 参数无效" }资源不存在(code: 404,JSON):
{ "code": 404, "msg": "skill not found" }触发防刷(code: 429,JSON):
{ "code": 429, "msg": "rate limit exceeded" }
说明:
- 本端点固定下载该技能的最新已发布版本(由
skills.latest_version_id决定) - 与浏览器/Web 渠道
/download/{skillId}-{versionId}共享同一份"防刷 + 日志 + 计数"链路,区别仅在日志download_source字段:apivsweb - 单 IP 防刷阈值:10 次/分钟(与 Web 同阈值)
字段说明
| 字段 | 说明 |
|---|---|
skill_key | 技能标识(业务侧原始 ID,可重复,如 skill-creator) |
slug | 站内唯一 Slug(用于 URL 路由和 /api/skill 查询) |
name | 技能名称(展示用) |
short_description | 技能简短介绍 |
latest_version.version | 最新发布版本的版本号(如 1.2.0) |
latest_version.zip_url | 最新版本 ZIP 下载端点(绝对 URL,GET 返回 302 重定向到真实 ZIP,并自动计入下载次数) |
latest_version.created_at | 最新版本记录创建时间(YYYY-MM-DD HH:MM:SS) |
说明:
latest_version 来自 skills.latest_version_id 指向的最新已发布版本。若技能尚未发布版本,latest_version 内字段为 null。
使用建议
- 客户端建议加本地缓存(10 分钟),减少对服务端的请求
- 拉取热门列表时建议显式带上
&size=10拉满 - 下载 ZIP 前请校验最终字节流的 SHA-256(接口未来在响应里附
zip_sha256字段,目前可人工核对) - 下载端点
/api/download有单 IP 防刷(10 次/分钟);触发 429 时建议退避后重试