Riferimento API
Qualit.ly API
Dati dei prodotti, immagini QC e metadati da Weidian, Taobao e 1688. Autenticazione con bearer token, limiti di frequenza generosi, piani a livelli.
Per iniziare
Tutte le richieste vanno a https://backend.qualit.ly/api/v1. Tre passaggi:
Ottieni una chiave
Accedi e crea una chiave API dalla dashboard per sviluppatori.
Effettua una richiesta
Invia la tua chiave come bearer token nell'header Authorization.
Ottieni i dati
Ricevi risposte JSON con dati dei prodotti e immagini QC.
Esempio rapido
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/products/weidian/1234567890Autenticazione
Includi una chiave API valida nell'header Authorization usando lo schema Bearer.
Authorization: Bearer qc_live_xxxxxxxxxxxxxxxxxxxxxxxxFormato della chiave
Le chiavi seguono qc_{mode}_{random} dove mode è live o test, e random è composto da 32 caratteri crittograficamente casuali.
Le chiavi vengono mostrate una sola volta alla creazione. Memorizziamo solo l'hash SHA-256, quindi le chiavi smarrite non possono essere recuperate.
Allowlist degli IP
Facoltativamente, limita le chiavi a IP o intervalli CIDR specifici tramite la dashboard per sviluppatori. Le richieste da IP non elencati ricevono un 403. Una allowlist vuota consente tutti gli IP.
Limiti di frequenza
Due bucket: al minuto e al mese. I limiti sono legati al livello del tuo account e si applicano a tutte le chiavi.
Quando vieni limitato
L'API restituisce 429 con un header Retry-After.
{
"error": {
"code": "RATE_LIMITED",
"message": "Per-minute limit exceeded",
"retry_after": 12
}
}Errori
Tutti gli errori restituiscono un oggetto error di primo livello con code e message.
{
"error": {
"code": "NOT_FOUND",
"message": "Product not found"
}
}BAD_REQUESTCorpo della richiesta o parametri non validi.INVALID_KEYChiave API mancante, malformata o sconosciuta.REVOKED_KEYLa chiave API è stata revocata nella dashboard.IP_NOT_AUTHORIZEDL'IP della richiesta non è nell'allowlist della chiave.FORBIDDENIl tuo livello non ha accesso a questo endpoint.NOT_FOUNDLa risorsa richiesta non esiste.RATE_LIMITEDLimite al minuto superato, controlla Retry-After.QUOTA_EXCEEDEDQuota mensile esaurita; si azzera al cambio di mese UTC.INTERNALErrore del server. Riprova o contatta il supporto.Endpoint
Base: https://backend.qualit.ly/api/v1. Negozi: weidian, taobao, 1688.
/products/:storefront/:listingIdBasicCerca un singolo prodotto per negozio e ID inserzione. Restituisce i metadati e fino a 5 anteprime QC.
Parametri
storefrontobbligatorioUno tra: weidian, taobao, 1688
listingIdobbligatorioL'ID dell'inserzione del prodotto dal negozio
Esempio
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/products/weidian/7231368393Risposta
{
"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+Cerca più prodotti in un'unica richiesta (fino a 100). Ogni risultato è indipendente, quindi un prodotto mancante non fa fallire il blocco.
Corpo della richiesta
{
"items": [
{ "storefront": "weidian", "listing_id": "7231368393" },
{ "storefront": "taobao", "listing_id": "123456789" }
]
}Esempio
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/batchRisposta
{
"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/:listingIdBasicOttieni i metadati QC e i primi 3 URL delle anteprime per un prodotto.
Esempio
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+Elenco completo delle immagini QC. Accetta un ID prodotto numerico o un parametro di query ?url= per le ricerche basate su URL.
Per ID prodotto
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/qc/482910/imagesPer 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"Risposta
{
"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= accetta URL completi di prodotti da Weidian, Taobao, 1688 e agenti supportati./meBasicRestituisce le info del tuo account, la chiave usata per la richiesta e il tuo livello attuale.
Esempio
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"
}/usageBasicControlla il tuo utilizzo attuale di limiti di frequenza e quota. Restituisce i contatori al minuto e al mese con i timestamp di reset. La chiamata stessa consuma 1 richiesta da entrambi i contatori.
Esempio
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/usageRisposta
{
"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
}
}Campi
tierUno tra: basic, early_adopter, pro, pro_plus, custom
limit / remainingnull sul livello custom (illimitato)
usedRichieste conteggiate nella finestra attuale. Il contatore al minuto si azzera ogni 60s; quello mensile al cambio di mese UTC.
reset_atTimestamp UTC ISO 8601
bucketChiave interna YYYYMM per il contatore mensile
Errori
Come per gli altri endpoint /api/v1/*:401 INVALID_KEY /REVOKED_KEY,403 IP_NOT_AUTHORIZED,429 RATE_LIMITED /QUOTA_EXCEEDED.
Esempi di codice
Snippet di avvio rapido nei linguaggi più popolari.
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');Server MCP
L'API di Qualit.ly è disponibile come server Model Context Protocol (MCP). Collegalo a Claude Desktop, Cursor, VS Code o a qualsiasi client compatibile con MCP e interroga prodotti, immagini QC e dati di utilizzo direttamente dal tuo assistente IA, senza HTTP manuale. Si applicano la stessa chiave API, gli stessi limiti di frequenza e le stesse regole di livello.
URL del server
https://backend.qualit.ly/api/mcpTrasporto
StreamableHTTP (POST)
Autenticazione
Authorization: Bearer qc_live_…
Strumenti disponibili
get_productget_products_batchget_qcget_qc_imagesget_meget_usagehttps://backend.qualit.ly/.well-known/oauth-authorization-server.Claude Desktop (chiave hardcoded)
Aggiungi questo al tuo claude_desktop_config.json (Claude → Impostazioni → Sviluppatore):
{
"mcpServers": {
"qualitly": {
"url": "https://backend.qualit.ly/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}Cursor / VS Code (chiave hardcoded)
{
"mcp": {
"servers": {
"qualitly": {
"url": "https://backend.qualit.ly/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
}Verifica rapida
# 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":{}}'Piani e livelli
Il tuo livello viene risolto a ogni richiesta, quindi gli upgrade hanno effetto immediato. Gli endpoint per blocchi e immagini complete richiedono Pro+.
Ti servono limiti più alti? [email protected]
Vedi tutti i piani, prezzi e vantaggi