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/searchBasicCerca nel catalogo per nome prodotto (corrisponde anche all'URL del prodotto). Puoi filtrare facoltativamente per store o per prodotti con foto QC. Nessuna paginazione: il numero di risultati è limitato dal tuo piano.
Parametri di query
qobbligatorioTesto da cercare. Più parole vengono confrontate in AND con il nome e l'URL del prodotto. (obbligatorio)
storefrontFacoltativo. Limita i risultati a uno tra: weidian, taobao, 1688
has_qcFacoltativo. Imposta su true per restituire solo i prodotti con foto QC
limitFacoltativo. Meno risultati rispetto al limite del tuo piano. I valori superiori al limite vengono ridotti, mai aumentati.
Limiti dei risultati
Nessuna paginazione. Ogni piano restituisce al massimo un numero fisso di risultati per ricerca. Passa un limite più basso per ottenerne meno; non puoi superare il limite del tuo piano.
Esempio
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"Risposta
{
"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/...",
"product_url": "https://weidian.com/item.html?itemID=7231368393",
"qc_count": 12,
"qc_preview": ["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_productsearch_productsget_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