入门
所有请求都发送到 https://backend.qualit.ly/api/v1。三个步骤:
获取密钥
登录并在开发者控制台中创建 API 密钥。
发起请求
将密钥作为 Bearer 令牌放在 Authorization 请求头中发送。
获取数据
接收包含商品数据和 QC 图片的 JSON 响应。
快速示例
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/products/weidian/1234567890认证
在 Authorization 请求头中使用 Bearer 方案附上有效的 API 密钥。
Authorization: Bearer qc_live_xxxxxxxxxxxxxxxxxxxxxxxx密钥格式
密钥遵循 qc_{mode}_{random} 格式,其中 mode 为 live 或 test,而 random 是 32 个加密随机字符。
密钥仅在创建时显示一次。我们只存储 SHA-256 哈希值,因此丢失的密钥无法恢复。
IP 白名单
可选择通过开发者控制台将密钥限制为特定 IP 或 CIDR 范围。来自未列入白名单 IP 的请求会收到 403。空白名单则允许所有 IP。
速率限制
两类配额: 每分钟 和 每月。限制与你的账户分级绑定,并对所有密钥生效。
触发速率限制时
API 会返回 429,并带有 Retry-After 请求头。
{
"error": {
"code": "RATE_LIMITED",
"message": "Per-minute limit exceeded",
"retry_after": 12
}
}错误
所有错误都会返回一个顶层 error 对象,包含 code 和 message。
{
"error": {
"code": "NOT_FOUND",
"message": "Product not found"
}
}BAD_REQUEST请求正文或参数无效。INVALID_KEYAPI 密钥缺失、格式错误或未知。REVOKED_KEY该 API 密钥已在控制台中被吊销。IP_NOT_AUTHORIZED请求 IP 不在该密钥的白名单中。FORBIDDEN你的分级无权访问此接口。NOT_FOUND请求的资源不存在。RATE_LIMITED已超过每分钟限制,请查看 Retry-After。QUOTA_EXCEEDED每月配额已用尽;将在 UTC 月度切换时重置。INTERNAL服务器错误。请重试或联系支持。接口
基础地址: https://backend.qualit.ly/api/v1。店铺: weidian, taobao, 1688.
/products/:storefront/:listingIdBasic按店铺和商品 ID 查询单个商品。返回元数据和最多 5 张 QC 预览缩略图。
参数
storefront必填以下之一: weidian、taobao、1688
listingId必填店铺中的商品列表 ID
示例
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/products/weidian/7231368393响应
{
"data": {
"id": 482910,
"storefront": "weidian",
"listing_id": "7231368393",
"name": "AJ1 Retro High OG",
"price": "¥470.00",
"pic_url": "https://cdn.qualit.ly/covers/...",
"product_url": "https://weidian.com/item.html?itemID=7231368393",
"qc_count": 12,
"qc_preview": [
"https://cdn.qualit.ly/qc/...",
"https://cdn.qualit.ly/qc/..."
]
}
}/products/batchPro+在单个请求中查询多个商品(最多 100 个)。每个结果相互独立,因此缺失某个商品不会导致整批失败。
请求正文
{
"items": [
{ "storefront": "weidian", "listing_id": "7231368393" },
{ "storefront": "taobao", "listing_id": "123456789" }
]
}示例
curl -X POST \
-H "Authorization: Bearer qc_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"items":[{"storefront":"weidian","listing_id":"7231368393"}]}' \
https://backend.qualit.ly/api/v1/products/batch响应
{
"results": [
{
"data": {
"id": 482910,
"storefront": "weidian",
"listing_id": "7231368393",
"name": "AJ1 Retro High OG",
"price": "¥470.00",
"qc_count": 12,
"qc_preview": ["..."]
}
},
{ "error": { "code": "NOT_FOUND" } }
]
}/qc/:storefront/:listingIdBasic获取商品的 QC 元数据和前 3 张缩略图的图片 URL。
示例
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/qc/weidian/7231368393{
"data": {
"storefront": "weidian",
"listing_id": "7231368393",
"qc_count": 12,
"thumbnails": ["..."]
}
}/qc/:id/imagesPro+QC 图片的完整列表。接受数字商品 ID,或用于按 URL 查询的 ?url= 查询参数。
按商品 ID
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/qc/482910/images按 URL
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
"https://backend.qualit.ly/api/v1/qc/0/images?url=https://weidian.com/item.html?itemID=7231368393"响应
{
"data": {
"id": 482910,
"storefront": "weidian",
"listing_id": "7231368393",
"qc_count": 12,
"images": [
"https://cdn.qualit.ly/qc/img1.jpg",
"https://cdn.qualit.ly/qc/img2.jpg",
"..."
]
}
}?url= 参数接受来自 Weidian、Taobao、1688 及支持的代理的完整商品 URL。/meBasic返回你的账户信息、本次请求所用的密钥以及你当前的分级。
示例
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/me{
"user": { "id": 12345, "username": "you" },
"key": { "id": 1, "mode": "live" },
"tier": "basic"
}/usageBasic查看你当前的速率限制和配额用量。返回带重置时间戳的每分钟和每月计数器。此调用本身会从两个计数器各消耗 1 次请求。
示例
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/usage响应
{
"tier": "pro_plus",
"key": { "id": 7, "mode": "live" },
"minute": {
"limit": 1000,
"used": 12,
"remaining": 988,
"reset_in_seconds": 37,
"reset_at": "2026-04-17T18:42:00.000Z"
},
"month": {
"limit": 500000,
"used": 1843,
"remaining": 498157,
"reset_in_seconds": 1159200,
"reset_at": "2026-05-01T00:00:00.000Z",
"bucket": 202604
}
}字段
tier以下之一: basic、early_adopter、pro、pro_plus、custom
limit / remaining在 custom 分级上为 null(无限制)
used当前窗口内计入的请求数。每分钟计数器每 60 秒重置一次;每月计数器在 UTC 月度切换时重置。
reset_atISO 8601 UTC 时间戳
bucket每月计数器的内部 YYYYMM 键
错误
与其他 /api/v1/* 路由相同:401 INVALID_KEY /REVOKED_KEY,403 IP_NOT_AUTHORIZED,429 RATE_LIMITED /QUOTA_EXCEEDED.
代码示例
热门语言的快速开始代码片段。
const res = await fetch(
'https://backend.qualit.ly/api/v1/products/weidian/7231368393',
{ headers: { Authorization: 'Bearer ' + process.env.QUALITLY_KEY } }
);
const { data } = await res.json();
console.log(data.name, data.qc_count, 'QC images');MCP 服务器
Qualit.ly API 可作为 Model Context Protocol(MCP)服务器 使用。将其连接到 Claude Desktop、Cursor、VS Code 或任何兼容 MCP 的客户端,无需手动发起 HTTP 请求,即可直接从你的 AI 助手查询商品、QC 图片和用量数据。适用相同的 API 密钥、速率限制和分级规则。
服务器 URL
https://backend.qualit.ly/api/mcp传输方式
StreamableHTTP (POST)
认证
Authorization: Bearer qc_live_…
可用工具
get_productget_products_batchget_qcget_qc_imagesget_meget_usagehttps://backend.qualit.ly/.well-known/oauth-authorization-server.Claude Desktop (硬编码密钥)
将此内容添加到你的 claude_desktop_config.json(Claude → 设置 → 开发者):
{
"mcpServers": {
"qualitly": {
"url": "https://backend.qualit.ly/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}Cursor / VS Code (硬编码密钥)
{
"mcp": {
"servers": {
"qualitly": {
"url": "https://backend.qualit.ly/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
}快速验证
# List available tools
curl -X POST https://backend.qualit.ly/api/mcp \
-H "Authorization: Bearer qc_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'套餐与分级
你的分级会在每次请求时确定,因此升级会立即生效。批量和完整图片接口需要 Pro+。
需要更高的限制? [email protected]
查看完整套餐、定价和权益