Qualit.ly API
Données produit, images QC et métadonnées de Weidian, Taobao et 1688. Authentification par jeton Bearer, limites de débit généreuses, plans par paliers.
Premiers pas
Toutes les requêtes vont vers https://backend.qualit.ly/api/v1. Trois étapes :
- 1
Obtenir une clé
Connectez-vous et créez une clé d’API depuis le tableau de bord développeur.
- 2
Envoyer une requête
Envoyez votre clé comme jeton Bearer dans l’en-tête Authorization.
- 3
Recevoir les données
Recevez des réponses JSON avec les données produit et les images QC.
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/products/weidian/7231368393Authentification
Incluez une clé d’API valide dans l’en-tête Authorization en utilisant le schéma Bearer.
Authorization: Bearer qc_live_xxxxxxxxxxxxxxxxxxxxxxxxFormat de la clé
Les clés suivent le format qc_{mode}_{random}, où mode est live ou test, et random est composé de 32 caractères cryptographiquement aléatoires.
Les clés ne s’affichent qu’une fois, à leur création. Nous ne stockons que le hachage SHA-256 : une clé perdue ne peut donc pas être récupérée — révoquez-la et créez-en une nouvelle.
Liste d’IP autorisées
Vous pouvez restreindre une clé à des IP ou plages CIDR spécifiques depuis le tableau de bord développeur. Les requêtes provenant d’IP non listées reçoivent un 403. Une liste vide autorise toutes les IP.
Limites de débit
Deux compteurs : par minute et par mois. Votre palier est lu depuis votre compte à chaque requête — les mises à niveau prennent effet immédiatement — et les limites s’appliquent à l’ensemble de vos clés.
/me et /usage s’authentifient mais ne sont pas comptabilisés : demander où vous en êtes ne consomme pas le quota que vous consultez.
En-têtes
Envoyés sur chaque réponse, pas seulement en cas de rejet.
En cas de limitation
L’API renvoie 429 — RATE_LIMITED pour le pic par minute, QUOTA_EXCEEDED pour le quota mensuel — avec le nombre de secondes à attendre dans retry_after.
{
"error": {
"code": "RATE_LIMITED",
"message": "Per-minute rate limit exceeded",
"retry_after": 37
}
}Erreurs
Les erreurs renvoient un statut hors 2xx et un objet error de premier niveau avec un code stable et un message. Vérifiez le code, pas le message — les messages peuvent changer.
{
"error": {
"code": "NOT_FOUND",
"message": "Product not found"
}
}Points d’accès
Les chemins ci-dessous sont relatifs à https://backend.qualit.ly/api/v1. Les boutiques sont weidian, taobao et 1688. Les points d’accès sans badge fonctionnent avec tous les plans.
Obtenir un produit
/products/{storefront}/{listing_id}Une fiche produit unique par boutique et ID. Renvoie ses métadonnées et jusqu’à 5 miniatures d’aperçu QC. C’est le point d’accès par lequel la plupart des intégrations commencent.
Exemple
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/products/weidian/7231368393Réponse
{
"data": {
"id": 482910,
"storefront": "weidian",
"listing_id": "7231368393",
"name": "AJ1 Retro High OG",
"price": "¥470.00",
"pic_url": "https://cdn.qualit.ly/covers/62743f38.jpg",
"pic_gif": null,
"product_url": "https://weidian.com/item.html?itemID=7231368393",
"qualitly_url": "https://qualit.ly/weidian/7231368393?utm_source=api&utm_content=key_7",
"qc_count": 12,
"qc_preview": [
"https://cdn.qualit.ly/qc/91c614ef.jpg",
"https://cdn.qualit.ly/qc/b66b2442.jpg"
]
}
}Rechercher des produits
/products/searchRecherchez dans le catalogue par nom de produit — l’URL du produit est aussi prise en compte. Pas de pagination : chaque plan renvoie jusqu’à un nombre fixe de résultats.
Pas de pagination. Chaque plan renvoie jusqu’à un nombre fixe de résultats par recherche ; limit peut en demander moins, jamais plus.
Exemple
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
"https://backend.qualit.ly/api/v1/products/search?q=jordan+1&storefront=weidian&has_qc=true&limit=10"Réponse
{
"query": "jordan 1",
"count": 10,
"limit": 10,
"max_results": 100,
"data": [
{
"id": 482910,
"storefront": "weidian",
"listing_id": "7231368393",
"name": "AJ1 Retro High OG",
"price": "¥470.00",
"pic_url": "https://cdn.qualit.ly/covers/62743f38.jpg",
"product_url": "https://weidian.com/item.html?itemID=7231368393",
"qualitly_url": "https://qualit.ly/weidian/7231368393?utm_source=api&utm_content=key_7",
"qc_count": 12,
"qc_preview": ["https://cdn.qualit.ly/qc/91c614ef.jpg"]
}
]
}Champs
Produits par lot
Pro+/products/batchRésolvez jusqu’à 100 fiches produit en un seul appel. Chaque élément est résolu indépendamment : un produit manquant ne fait pas échouer le lot, il revient sous forme d’entrée d’erreur à la même position.
Corps de la requête
{
"items": [
{ "storefront": "weidian", "listing_id": "7231368393" },
{ "storefront": "taobao", "listing_id": "123456789" }
]
}Exemple
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/batchRéponse
{
"results": [
{
"data": {
"id": 482910,
"storefront": "weidian",
"listing_id": "7231368393",
"name": "AJ1 Retro High OG",
"price": "¥470.00",
"qualitly_url": "https://qualit.ly/weidian/7231368393?utm_source=api&utm_content=key_7",
"qc_count": 12,
"qc_preview": ["https://cdn.qualit.ly/qc/91c614ef.jpg"]
}
},
{ "error": { "code": "NOT_FOUND" } }
]
}Produit aléatoire
/products/randomUne fiche produit aléatoire ayant des photos QC — pour des vitrines, des flux, ou pour échantillonner le catalogue. Aucun corps de requête nécessaire.
Exemple
curl -X POST \
-H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/products/randomRéponse
{
"data": {
"id": 482910,
"storefront": "weidian",
"listing_id": "7231368393",
"name": "AJ1 Retro High OG",
"price": "¥470.00",
"pic_url": "https://cdn.qualit.ly/covers/62743f38.jpg",
"product_url": "https://weidian.com/item.html?itemID=7231368393",
"qualitly_url": "https://qualit.ly/weidian/7231368393?utm_source=api&utm_content=key_7",
"qc_count": 12,
"qc_preview": ["https://cdn.qualit.ly/qc/91c614ef.jpg"]
}
}Métadonnées QC
/qc/{storefront}/{listing_id}Le nombre de photos QC d’une fiche produit, plus les trois premières miniatures — sans récupérer la liste complète des images.
Exemple
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/qc/weidian/7231368393Réponse
{
"data": {
"storefront": "weidian",
"listing_id": "7231368393",
"qualitly_url": "https://qualit.ly/weidian/7231368393?utm_source=api&utm_content=key_7",
"qc_count": 12,
"thumbnails": [
"https://cdn.qualit.ly/qc/91c614ef.jpg",
"https://cdn.qualit.ly/qc/b66b2442.jpg",
"https://cdn.qualit.ly/qc/0f19ab77.jpg"
]
}
}Images QC
Pro+/qc/{id}/imagesToutes les photos QC indexées pour une fiche produit. Prend l’ID numérique du produit, ou passez ?url= avec n’importe quel lien produit pris en charge et laissez l’API le résoudre.
Par ID produit
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/qc/482910/imagesPar 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"Réponse
{
"data": {
"id": 482910,
"storefront": "weidian",
"listing_id": "7231368393",
"qualitly_url": "https://qualit.ly/weidian/7231368393?utm_source=api&utm_content=key_7",
"qc_count": 12,
"images": [
"https://cdn.qualit.ly/qc/91c614ef.jpg",
"https://cdn.qualit.ly/qc/b66b2442.jpg"
]
}
}Le paramètre ?url= accepte les liens produit de Weidian, Taobao et 1688, ainsi que de tous les agents pris en charge par le convertisseur de liens. Les images sont toujours des URL CDN.
Infos du compte
/meVotre compte, la clé ayant effectué la requête et le palier qui en découle. Utile comme vérification de bon fonctionnement.
Exemple
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/meRéponse
{
"user": { "id": 12345, "username": "you" },
"key": { "id": 7, "mode": "live" },
"tier": "pro_plus"
}Utilisation
/usageOù vous en êtes dans les deux compteurs de limite de débit, avec les horodatages de réinitialisation. Comme /me, ce point d’accès s’authentifie mais n’est pas comptabilisé — consulter votre quota ne le consomme pas.
Exemple
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/usageRéponse
{
"tier": "pro_plus",
"key": { "id": 7, "mode": "live" },
"minute": {
"limit": 1000,
"used": 12,
"remaining": 988,
"reset_in_seconds": 37,
"reset_at": "2026-08-20T18:42:00.000Z"
},
"month": {
"limit": 500000,
"used": 1843,
"remaining": 498157,
"reset_in_seconds": 1159200,
"reset_at": "2026-09-01T00:00:00.000Z",
"bucket": 202608
}
}Champs
Exemples de code
curl -H "Authorization: Bearer $QUALITLY_KEY" \
"https://backend.qualit.ly/api/v1/products/search?q=jordan+1&storefront=weidian"Serveur MCP
La même API est proposée sous forme de serveur Model Context Protocol hébergé, afin que Claude, Cursor, VS Code ou tout autre client MCP puisse interroger les fiches produit et les jeux de photos QC sans écrire de HTTP. Votre clé d’API, vos limites de débit et les règles de palier restent inchangées.
URL du serveur
https://backend.qualit.ly/api/mcpTransport
StreamableHTTP (POST)
Authentification
Authorization: Bearer qc_live_…
Outils
Seuls les outils accessibles à votre palier sont enregistrés : une clé Basic n’en voit jamais un qui lui serait refusé.
Claude Desktop, Cursor et VS Code
Ajoutez le serveur à claude_desktop_config.json (Claude → Paramètres → Développeur), ou aux paramètres MCP de votre éditeur.
Claude Desktop
{
"mcpServers": {
"qualitly": {
"url": "https://backend.qualit.ly/api/mcp",
"headers": {
"Authorization": "Bearer qc_live_YOUR_KEY"
}
}
}
}Cursor / VS Code
{
"mcp": {
"servers": {
"qualitly": {
"url": "https://backend.qualit.ly/api/mcp",
"headers": {
"Authorization": "Bearer qc_live_YOUR_KEY"
}
}
}
}
}Les clients qui prennent en charge la découverte OAuth — dont Claude.ai et ChatGPT — peuvent se passer entièrement de la clé codée en dur : une requête non authentifiée reçoit un en-tête WWW-Authenticate pointant vers les métadonnées OAuth du serveur, et le client fait passer vos utilisateurs par une page de connexion à la place.
Vérifier que ça fonctionne
# List the tools your key can see
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":{}}'Plans et paliers
Votre palier est déterminé à partir de votre compte à chaque requête, une mise à niveau s’applique donc dès le prochain appel — pas besoin d’une nouvelle clé. Les recherches par lot, les listes complètes d’images QC et l’extraction ?url= sont les seuls points d’accès réservés au-delà de Basic ; tout le reste ne varie qu’en volume.
| Plan | / minute | / mois | Résultats de recherche | Lot + Images |
|---|---|---|---|---|
| Basic | 30 | 1,000 | 5 | |
| Early Adopterhérité | 40 | 3,000 | 10 | |
| Pro | 300 | 25,000 | 50 | |
| Pro+ | 1,000 | 500,000 | 100 | |
| Sur mesure | Illimité | Illimité | 250 |
Early Adopter est hérité — réservé aux comptes existants, il n’est plus vendu. Besoin de plus que Pro+ ? [email protected] peut configurer des limites Custom.