Dokumentacja API
Qualit.ly API
Dane produktów, obrazy QC i metadane z Weidian, Taobao i 1688. Uwierzytelnianie bearer tokenem, hojne limity, plany wielopoziomowe.
Pierwsze kroki
Wszystkie żądania trafiają do https://backend.qualit.ly/api/v1. Trzy kroki:
Uzyskaj klucz
Zaloguj się i utwórz klucz API w panelu dewelopera.
Wykonaj żądanie
Wyślij swój klucz jako bearer token w nagłówku Authorization.
Pobierz dane
Otrzymuj odpowiedzi JSON z danymi produktów i obrazami QC.
Szybki przykład
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/products/weidian/1234567890Uwierzytelnianie
Dołącz prawidłowy klucz API w nagłówku Authorization używając schematu Bearer.
Authorization: Bearer qc_live_xxxxxxxxxxxxxxxxxxxxxxxxFormat klucza
Klucze mają postać qc_{mode}_{random} gdzie mode to live lub test, a random to 32 kryptograficznie losowe znaki.
Klucze są pokazywane tylko raz przy tworzeniu. Przechowujemy jedynie hash SHA-256, więc zgubionych kluczy nie można odzyskać.
Lista dozwolonych IP
Opcjonalnie ogranicz klucze do konkretnych IP lub zakresów CIDR w panelu dewelopera. Żądania z niewymienionych IP otrzymują 403. Pusta lista dozwolonych zezwala na wszystkie IP.
Limity częstotliwości
Dwa koszyki: na minutę i na miesiąc. Limity są powiązane z poziomem twojego konta i obowiązują dla wszystkich kluczy.
Gdy zostaniesz ograniczony
API zwraca 429 z nagłówkiem Retry-After.
{
"error": {
"code": "RATE_LIMITED",
"message": "Per-minute limit exceeded",
"retry_after": 12
}
}Błędy
Wszystkie błędy zwracają obiekt error najwyższego poziomu z code i message.
{
"error": {
"code": "NOT_FOUND",
"message": "Product not found"
}
}BAD_REQUESTNieprawidłowe ciało żądania lub parametry.INVALID_KEYBrakujący, zniekształcony lub nieznany klucz API.REVOKED_KEYKlucz API został unieważniony w panelu.IP_NOT_AUTHORIZEDIP żądania nie znajduje się na liście dozwolonych klucza.FORBIDDENTwój poziom nie ma dostępu do tego endpointu.NOT_FOUNDŻądany zasób nie istnieje.RATE_LIMITEDPrzekroczono limit na minutę, sprawdź Retry-After.QUOTA_EXCEEDEDMiesięczny limit wyczerpany; resetuje się przy zmianie miesiąca UTC.INTERNALBłąd serwera. Spróbuj ponownie lub skontaktuj się ze wsparciem.Endpointy
Baza: https://backend.qualit.ly/api/v1. Sklepy: weidian, taobao, 1688.
/products/:storefront/:listingIdBasicWyszukaj pojedynczy produkt według sklepu i ID oferty. Zwraca metadane i do 5 miniatur podglądu QC.
Parametry
storefrontwymaganeJeden z: weidian, taobao, 1688
listingIdwymaganeID oferty produktu ze sklepu
Przykład
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/products/weidian/7231368393Odpowiedź
{
"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+Wyszukaj wiele produktów w jednym żądaniu (do 100). Każdy wynik jest niezależny, więc brakujący produkt nie spowoduje niepowodzenia całej partii.
Ciało żądania
{
"items": [
{ "storefront": "weidian", "listing_id": "7231368393" },
{ "storefront": "taobao", "listing_id": "123456789" }
]
}Przykład
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/batchOdpowiedź
{
"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/:listingIdBasicPobierz metadane QC i pierwsze 3 adresy URL miniatur dla produktu.
Przykład
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+Pełna lista obrazów QC. Akceptuje numeryczne ID produktu lub parametr zapytania ?url= dla wyszukiwań na podstawie URL.
Według ID produktu
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/qc/482910/imagesWedług 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"Odpowiedź
{
"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= akceptuje pełne adresy URL produktów z Weidian, Taobao, 1688 i obsługiwanych agentów./meBasicZwraca informacje o twoim koncie, klucz użyty do żądania i twój aktualny poziom.
Przykład
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"
}/usageBasicSprawdź swoje aktualne wykorzystanie limitów częstotliwości i limitu. Zwraca liczniki na minutę i na miesiąc ze znacznikami czasu resetu. Samo wywołanie zużywa 1 żądanie z obu liczników.
Przykład
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/usageOdpowiedź
{
"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
}
}Pola
tierJeden z: basic, early_adopter, pro, pro_plus, custom
limit / remainingnull na poziomie custom (nieograniczone)
usedŻądania zliczone w bieżącym oknie. Licznik na minutę resetuje się co 60s; miesięczny przy zmianie miesiąca UTC.
reset_atZnacznik czasu UTC ISO 8601
bucketWewnętrzny klucz YYYYMM dla licznika miesięcznego
Błędy
Tak samo jak w innych endpointach /api/v1/*:401 INVALID_KEY /REVOKED_KEY,403 IP_NOT_AUTHORIZED,429 RATE_LIMITED /QUOTA_EXCEEDED.
Przykłady kodu
Fragmenty na szybki start w popularnych językach.
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');Serwer MCP
API Qualit.ly jest dostępne jako serwer Model Context Protocol (MCP). Podłącz go do Claude Desktop, Cursor, VS Code lub dowolnego klienta zgodnego z MCP i odpytuj produkty, obrazy QC i dane o wykorzystaniu bezpośrednio z asystenta AI, bez ręcznego HTTP. Obowiązują ten sam klucz API, limity częstotliwości i zasady poziomów.
URL serwera
https://backend.qualit.ly/api/mcpTransport
StreamableHTTP (POST)
Uwierzytelnianie
Authorization: Bearer qc_live_…
Dostępne narzędzia
get_productget_products_batchget_qcget_qc_imagesget_meget_usagehttps://backend.qualit.ly/.well-known/oauth-authorization-server.Claude Desktop (klucz zakodowany na stałe)
Dodaj to do swojego claude_desktop_config.json (Claude → Ustawienia → Deweloper):
{
"mcpServers": {
"qualitly": {
"url": "https://backend.qualit.ly/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}Cursor / VS Code (klucz zakodowany na stałe)
{
"mcp": {
"servers": {
"qualitly": {
"url": "https://backend.qualit.ly/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
}Szybka weryfikacja
# 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":{}}'Plany i poziomy
Twój poziom jest ustalany przy każdym żądaniu, więc ulepszenia działają natychmiast. Endpointy zbiorcze i pełnych obrazów wymagają Pro+.
Potrzebujesz wyższych limitów? [email protected]
Zobacz pełne plany, ceny i korzyści