Qualit.ly
Qualit.ly
GłównaBot DiscordSzukaj

Dokumentacja API

Qualit.ly API

Dane produktów, obrazy QC i metadane z Weidian, Taobao i 1688. Uwierzytelnianie bearer tokenem, hojne limity, plany wielopoziomowe.

Uzyskaj klucz API

Pierwsze kroki

Wszystkie żądania trafiają do https://backend.qualit.ly/api/v1. Trzy kroki:

1

Uzyskaj klucz

Zaloguj się i utwórz klucz API w panelu dewelopera.

2

Wykonaj żądanie

Wyślij swój klucz jako bearer token w nagłówku Authorization.

3

Pobierz dane

Otrzymuj odpowiedzi JSON z danymi produktów i obrazami QC.

Szybki przykład

bash
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
  https://backend.qualit.ly/api/v1/products/weidian/1234567890

Uwierzytelnianie

Dołącz prawidłowy klucz API w nagłówku Authorization używając schematu Bearer.

Authorization: Bearer qc_live_xxxxxxxxxxxxxxxxxxxxxxxx

Format 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.

Poziom
/ minutę
/ miesiąc
Basic
30
1,000
Early Adopter
40
3,000
Pro
300
25,000
Pro+
1,000
500,000

Gdy zostaniesz ograniczony

API zwraca 429 z nagłówkiem Retry-After.

json
{
  "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.

json
{
  "error": {
    "code": "NOT_FOUND",
    "message": "Product not found"
  }
}
400BAD_REQUESTNieprawidłowe ciało żądania lub parametry.
401INVALID_KEYBrakujący, zniekształcony lub nieznany klucz API.
401REVOKED_KEYKlucz API został unieważniony w panelu.
403IP_NOT_AUTHORIZEDIP żądania nie znajduje się na liście dozwolonych klucza.
403FORBIDDENTwój poziom nie ma dostępu do tego endpointu.
404NOT_FOUNDŻądany zasób nie istnieje.
429RATE_LIMITEDPrzekroczono limit na minutę, sprawdź Retry-After.
429QUOTA_EXCEEDEDMiesięczny limit wyczerpany; resetuje się przy zmianie miesiąca UTC.
500INTERNALBłąd serwera. Spróbuj ponownie lub skontaktuj się ze wsparciem.

Endpointy

Baza: https://backend.qualit.ly/api/v1. Sklepy: weidian, taobao, 1688.

GET/products/:storefront/:listingIdBasic

Wyszukaj pojedynczy produkt według sklepu i ID oferty. Zwraca metadane i do 5 miniatur podglądu QC.

Parametry

storefrontwymagane

Jeden z: weidian, taobao, 1688

listingIdwymagane

ID oferty produktu ze sklepu

Przykład

bash
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
  https://backend.qualit.ly/api/v1/products/weidian/7231368393

Odpowiedź

json
{
  "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/..."
    ]
  }
}
POST/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

json
{
  "items": [
    { "storefront": "weidian", "listing_id": "7231368393" },
    { "storefront": "taobao", "listing_id": "123456789" }
  ]
}

Przykład

bash
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/batch

Odpowiedź

json
{
  "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" } }
  ]
}
GET/qc/:storefront/:listingIdBasic

Pobierz metadane QC i pierwsze 3 adresy URL miniatur dla produktu.

Przykład

bash
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
  https://backend.qualit.ly/api/v1/qc/weidian/7231368393
json
{
  "data": {
    "storefront": "weidian",
    "listing_id": "7231368393",
    "qc_count": 12,
    "thumbnails": ["..."]
  }
}
GET/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

bash
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
  https://backend.qualit.ly/api/v1/qc/482910/images

Według URL

bash
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ź

json
{
  "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",
      "..."
    ]
  }
}
Tylko Pro+. Parametr ?url= akceptuje pełne adresy URL produktów z Weidian, Taobao, 1688 i obsługiwanych agentów.
GET/meBasic

Zwraca informacje o twoim koncie, klucz użyty do żądania i twój aktualny poziom.

Przykład

bash
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
  https://backend.qualit.ly/api/v1/me
json
{
  "user": { "id": 12345, "username": "you" },
  "key": { "id": 1, "mode": "live" },
  "tier": "basic"
}
GET/usageBasic

Sprawdź 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

bash
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
  https://backend.qualit.ly/api/v1/usage

Odpowiedź

json
{
  "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

tier

Jeden z: basic, early_adopter, pro, pro_plus, custom

limit / remaining

null 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_at

Znacznik czasu UTC ISO 8601

bucket

Wewnę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/mcp

Transport

StreamableHTTP (POST)

Uwierzytelnianie

Authorization: Bearer qc_live_…

Dostępne narzędzia

Narzędzie
Opis
Poziom
get_product
Wyszukaj produkt według sklepu i ID oferty
Basic
get_products_batch
Wyszukaj do 100 produktów w jednym wywołaniu
Pro+
get_qc
Liczba QC i 3 adresy URL miniatur
Basic
get_qc_images
Pełna lista obrazów CDN (według ID lub URL)
Pro+
get_me
Aktualny klucz, użytkownik i poziom
Basic
get_usage
Status limitu na minutę i miesięcznego
Basic
OAuth 2.0 obsługiwany. Klienci obsługujący automatyczne wykrywanie OAuth (Claude.ai, ChatGPT itp.) automatycznie poproszą twoich użytkowników o autoryzację przez stronę logowania, bez żadnego zakodowanego na stałe klucza. Serwer udostępnia swoje endpointy OAuth pod https://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):

json
{
  "mcpServers": {
    "qualitly": {
      "url": "https://backend.qualit.ly/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Cursor / VS Code (klucz zakodowany na stałe)

json
{
  "mcp": {
    "servers": {
      "qualitly": {
        "url": "https://backend.qualit.ly/api/mcp",
        "headers": {
          "Authorization": "Bearer YOUR_API_KEY"
        }
      }
    }
  }
}

Szybka weryfikacja

bash
# 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+.

Plan
/ minutę
/ miesiąc
Zbiorczo + obrazy
Basic
30
1,000
—
Early Adopter
40
3,000
—
Pro
300
25,000
—
Pro+
1,000
500,000
W zestawie

Potrzebujesz wyższych limitów? [email protected]

Zobacz pełne plany, ceny i korzyści
Qualit.ly

Free QC photos and the Discord link converter for Taobao, Weidian and 1688.

Tools

  • Search QC photos
  • Discord link converter
  • Curated spreadsheets
  • Order tracking
  • Public REST API

Marketplaces

  • Weidian QC photos
  • Taobao QC photos
  • 1688 QC photos

Resources

  • Plans & pricing
  • About Qualit.ly
  • Contact
  • Terms of Service
  • Privacy Policy
  • Discord community
  • r/qualitly
  • Telegram channel

© Qualit.ly. Free for the rep finds community.

Questions? [email protected]