API リファレンス
Qualit.ly API
Weidian、Taobao、1688 の商品データ、QC 画像、メタデータ。Bearer トークン認証、寛大なレート制限、段階的なプラン。
はじめに
すべてのリクエストは https://backend.qualit.ly/api/v1 に送信します。3 つのステップ:
キーを取得
サインインして、開発者ダッシュボードから API キーを作成します。
リクエストを送信
キーを Bearer トークンとして Authorization ヘッダーに含めて送信します。
データを取得
商品データと QC 画像を含む JSON レスポンスを受け取ります。
簡単な例
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/products/weidian/1234567890認証
有効な API キーを Authorization ヘッダーに Bearer スキームで含めます。
Authorization: Bearer qc_live_xxxxxxxxxxxxxxxxxxxxxxxxキーの形式
キーは qc_{mode}_{random} の形式です。 mode は live または test で、 random は暗号学的にランダムな 32 文字です。
キーは作成時に一度だけ表示されます。保存するのは SHA-256 ハッシュのみのため、紛失したキーは復元できません。
IP 許可リスト
開発者ダッシュボードから、キーを特定の IP または CIDR 範囲に制限できます。許可リスト外の IP からのリクエストには 403 が返されます。許可リストが空の場合、すべての IP が許可されます。
レート制限
2 つのバケット: 毎分 と 毎月。制限はアカウントの段階に紐づき、すべてのキーに適用されます。
レート制限に達したとき
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_KEYAPI キーはダッシュボードで無効化されています。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+1 回のリクエストで複数の商品(最大 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/imagesURL で
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 / remainingcustom 段階では 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]
プラン・料金・特典の詳細を見る