API-referentie
Qualit.ly API
Productdata, QC-afbeeldingen en metadata van Weidian, Taobao en 1688. Bearer-tokenauth, royale rate limits, gelaagde abonnementen.
Aan de slag
Alle verzoeken gaan naar https://backend.qualit.ly/api/v1. Drie stappen:
Haal een sleutel
Log in en maak een API-sleutel aan vanuit het developer-dashboard.
Doe een verzoek
Stuur je sleutel als Bearer-token in de Authorization-header.
Krijg data
Ontvang JSON-antwoorden met productdata en QC-afbeeldingen.
Snel voorbeeld
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/products/weidian/1234567890Authenticatie
Voeg een geldige API-sleutel toe aan de Authorization header met het Bearer-schema.
Authorization: Bearer qc_live_xxxxxxxxxxxxxxxxxxxxxxxxSleutelformaat
Sleutels hebben de vorm qc_{mode}_{random} waarbij mode is live of test, en random is 32 cryptografisch willekeurige tekens.
Sleutels worden bij het aanmaken één keer getoond. We bewaren alleen de SHA-256-hash, dus verloren sleutels kunnen niet worden hersteld.
IP-allowlisting
Beperk sleutels optioneel tot specifieke IP's of CIDR-bereiken via het developer-dashboard. Verzoeken van niet-vermelde IP's krijgen een 403. Een lege allowlist staat alle IP's toe.
Rate limits
Twee buckets: per minuut en per maand. Limieten zijn gekoppeld aan je accountniveau en gelden voor al je sleutels.
Bij rate limiting
De API geeft 429 terug met een Retry-After header.
{
"error": {
"code": "RATE_LIMITED",
"message": "Per-minute limit exceeded",
"retry_after": 12
}
}Fouten
Alle fouten geven een top-level error object terug met code en message.
{
"error": {
"code": "NOT_FOUND",
"message": "Product not found"
}
}BAD_REQUESTOngeldige verzoekbody of -parameters.INVALID_KEYOntbrekende, onjuist opgemaakte of onbekende API-sleutel.REVOKED_KEYDe API-sleutel is ingetrokken in het dashboard.IP_NOT_AUTHORIZEDVerzoek-IP staat niet op de allowlist van de sleutel.FORBIDDENJe niveau heeft geen toegang tot dit endpoint.NOT_FOUNDDe gevraagde resource bestaat niet.RATE_LIMITEDLimiet per minuut overschreden, controleer Retry-After.QUOTA_EXCEEDEDMaandquotum uitgeput; wordt gereset bij de UTC-maandwisseling.INTERNALServerfout. Probeer opnieuw of neem contact op met support.Endpoints
Basis: https://backend.qualit.ly/api/v1. Storefronts: weidian, taobao, 1688.
/products/:storefront/:listingIdBasicZoek één product op storefront en listing-ID. Geeft metadata en tot 5 QC-previewthumbnails terug.
Parameters
storefrontvereistEen van: weidian, taobao, 1688
listingIdvereistDe product-listing-ID van de storefront
Voorbeeld
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/products/weidian/7231368393Antwoord
{
"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/searchBasicDoorzoek de catalogus op productnaam (matcht ook de product-URL). Filter optioneel op een storefront of op producten met QC-foto's. Geen paginering — het aantal resultaten is begrensd door je abonnement.
Query-parameters
qvereistZoektekst. Meerdere woorden worden met AND gematcht tegen de productnaam en -URL. (vereist)
storefrontOptioneel. Beperk resultaten tot een van: weidian, taobao, 1688
has_qcOptioneel. Zet op true om alleen producten met QC-foto's terug te geven
limitOptioneel. Minder resultaten dan de limiet van je abonnement. Waarden boven de limiet worden omlaag bijgesteld — nooit omhoog.
Resultaatlimieten
Geen paginering. Elk abonnement geeft tot een vast aantal resultaten per zoekopdracht. Geef een kleinere limiet op om er minder te krijgen; je kunt de limiet van je abonnement niet overschrijden.
Voorbeeld
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"Antwoord
{
"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+Zoek meerdere producten op in één verzoek (tot 100). Elk resultaat is onafhankelijk, dus een ontbrekend product laat de batch niet mislukken.
Verzoekbody
{
"items": [
{ "storefront": "weidian", "listing_id": "7231368393" },
{ "storefront": "taobao", "listing_id": "123456789" }
]
}Voorbeeld
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/batchAntwoord
{
"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/:listingIdBasicHaal QC-metadata en de eerste 3 thumbnail-afbeeldings-URL's voor een product op.
Voorbeeld
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+Volledige lijst met QC-afbeeldingen. Accepteert een numerieke product-ID of een ?url=-queryparameter voor URL-gebaseerd opzoeken.
Op product-ID
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/qc/482910/imagesOp 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"Antwoord
{
"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=-parameter accepteert volledige product-URL's van Weidian, Taobao, 1688 en ondersteunde agents./meBasicGeeft je accountinfo, de sleutel die voor het verzoek is gebruikt en je huidige niveau terug.
Voorbeeld
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"
}/usageBasicControleer je huidige rate-limit- en quotumgebruik. Geeft tellers per minuut en per maand terug met resettijdstempels. De aanroep zelf verbruikt 1 verzoek van beide tellers.
Voorbeeld
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/usageAntwoord
{
"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
}
}Velden
tierEen van: basic, early_adopter, pro, pro_plus, custom
limit / remainingnull op het custom-niveau (onbeperkt)
usedVerzoeken geteld in het huidige venster. De minutenteller reset elke 60s; de maandteller reset bij de UTC-maandwisseling.
reset_atISO 8601 UTC-tijdstempel
bucketInterne YYYYMM-sleutel voor de maandteller
Fouten
Hetzelfde als andere /api/v1/* routes:401 INVALID_KEY /REVOKED_KEY,403 IP_NOT_AUTHORIZED,429 RATE_LIMITED /QUOTA_EXCEEDED.
Codevoorbeelden
Snelstartfragmenten in populaire talen.
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-server
De Qualit.ly API is beschikbaar als een Model Context Protocol (MCP)-server. Verbind hem met Claude Desktop, Cursor, VS Code of elke MCP-compatibele client en bevraag producten, QC-afbeeldingen en gebruiksgegevens rechtstreeks vanuit je AI-assistent, zonder handmatige HTTP. Dezelfde API-sleutel, rate limits en niveauregels gelden.
Server-URL
https://backend.qualit.ly/api/mcpTransport
StreamableHTTP (POST)
Auth
Authorization: Bearer qc_live_…
Beschikbare tools
get_productsearch_productsget_products_batchget_qcget_qc_imagesget_meget_usagehttps://backend.qualit.ly/.well-known/oauth-authorization-server.Claude Desktop (hardgecodeerde sleutel)
Voeg dit toe aan je claude_desktop_config.json (Claude → Instellingen → Ontwikkelaar):
{
"mcpServers": {
"qualitly": {
"url": "https://backend.qualit.ly/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}Cursor / VS Code (hardgecodeerde sleutel)
{
"mcp": {
"servers": {
"qualitly": {
"url": "https://backend.qualit.ly/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
}Snelle verificatie
# 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":{}}'Abonnementen & niveaus
Je niveau wordt bij elk verzoek bepaald, dus upgrades gaan meteen in. Batch- en volledige-afbeeldingen-endpoints vereisen Pro+.
Hogere limieten nodig? [email protected]
Bekijk volledige abonnementen, prijzen & extra's