Qualit.ly
Qualit.ly
AcasăBot DiscordCăutare

Referință API

Qualit.ly API

Date despre produse, imagini QC și metadate de pe Weidian, Taobao și 1688. Autentificare cu token Bearer, limite de rată generoase, planuri pe niveluri.

Obține cheia API

Primii pași

Toate cererile merg către https://backend.qualit.ly/api/v1. Trei pași:

1

Obține o cheie

Autentifică-te și creează o cheie API din panoul pentru dezvoltatori.

2

Fă o cerere

Trimite-ți cheia ca token Bearer în antetul Authorization.

3

Obține date

Primești răspunsuri JSON cu date despre produse și imagini QC.

Exemplu rapid

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

Autentificare

Include o cheie API validă în antetul Authorization folosind schema Bearer.

Authorization: Bearer qc_live_xxxxxxxxxxxxxxxxxxxxxxxx

Formatul cheii

Cheile urmează formatul qc_{mode}_{random} unde mode este live sau test, iar random reprezintă 32 de caractere aleatorii criptografic.

Cheile sunt afișate o singură dată, la creare. Stocăm doar hash-ul SHA-256, așa că cheile pierdute nu pot fi recuperate.

Listă de permisiuni IP

Opțional, poți restricționa cheile la anumite IP-uri sau intervale CIDR din panoul pentru dezvoltatori. Cererile de la IP-uri nelistate primesc un 403. O listă de permisiuni goală permite toate IP-urile.

Limite de rată

Două praguri: pe minut și pe lună. Limitele sunt legate de nivelul contului tău și se aplică tuturor cheilor.

Nivel
/ minut
/ lună
Basic
30
1,000
Early Adopter
40
3,000
Pro
300
25,000
Pro+
1,000
500,000

Când ești limitat de rată

API-ul returnează 429 cu antetul Retry-After.

json
{
  "error": {
    "code": "RATE_LIMITED",
    "message": "Per-minute limit exceeded",
    "retry_after": 12
  }
}

Erori

Toate erorile returnează un obiect error de nivel superior, cu code și message.

json
{
  "error": {
    "code": "NOT_FOUND",
    "message": "Product not found"
  }
}
400BAD_REQUESTCorp sau parametri de cerere nevalizi.
401INVALID_KEYCheie API lipsă, malformată sau necunoscută.
401REVOKED_KEYCheia API a fost revocată în panou.
403IP_NOT_AUTHORIZEDIP-ul cererii nu se află în lista de permisiuni a cheii.
403FORBIDDENNivelul tău nu are acces la acest endpoint.
404NOT_FOUNDResursa solicitată nu există.
429RATE_LIMITEDLimita pe minut a fost depășită, verifică Retry-After.
429QUOTA_EXCEEDEDCota lunară a fost epuizată; se resetează la trecerea în luna următoare, ora UTC.
500INTERNALEroare de server. Reîncearcă sau contactează asistența.

Endpoint-uri

Bază: https://backend.qualit.ly/api/v1. Magazine: weidian, taobao, 1688.

GET/products/:storefront/:listingIdBasic

Caută un singur produs după magazin și ID de anunț. Returnează metadate și până la 5 miniaturi de previzualizare QC.

Parametri

storefrontobligatoriu

Unul dintre: weidian, taobao, 1688

listingIdobligatoriu

ID-ul anunțului produsului din magazin

Exemplu

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

Răspuns

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/..."
    ]
  }
}
GET/products/searchBasic

Caută în catalog după numele produsului (potrivește și URL-ul produsului). Opțional, filtrează după un magazin sau după produse care au fotografii QC. Fără paginare — numărul de rezultate este limitat de planul tău.

Parametri de interogare

qobligatoriu

Text de căutare. Mai multe cuvinte sunt potrivite cu AND față de numele și URL-ul produsului. (obligatoriu)

storefront

Opțional. Limitează rezultatele la unul dintre: weidian, taobao, 1688

has_qc

Opțional. Setează la true ca să returnezi doar produse care au fotografii QC

limit

Opțional. Mai puține rezultate decât plafonul planului tău. Valorile peste plafon sunt reduse — niciodată mărite.

Limite de rezultate

Fără paginare. Fiecare plan returnează până la un număr fix de rezultate per căutare. Trimite o limită mai mică ca să obții mai puține; nu poți depăși plafonul planului tău.

Plan
Rezultate maxime
Basic
5
Early Adopter
10
Pro
50
Pro+
100
Custom
250

Exemplu

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

Răspuns

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

Caută mai multe produse într-o singură cerere (până la 100). Fiecare rezultat este independent, așa că un produs lipsă nu va face lotul să eșueze.

Corpul cererii

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

Exemplu

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

Răspuns

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

Obține metadate QC și primele 3 URL-uri de imagini miniatură pentru un produs.

Exemplu

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+

Lista completă de imagini QC. Acceptă un ID numeric de produs sau un parametru de interogare ?url= pentru căutări bazate pe URL.

După ID de produs

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

După 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"

Răspuns

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",
      "..."
    ]
  }
}
Doar Pro+. Parametrul ?url= acceptă URL-uri complete de produs de pe Weidian, Taobao, 1688 și agenții acceptați.
GET/meBasic

Returnează informațiile contului tău, cheia folosită pentru cerere și nivelul tău actual.

Exemplu

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

Verifică-ți utilizarea actuală a limitei de rată și a cotei. Returnează contoare pe minut și pe lună, cu marcaje de timp de resetare. Apelul în sine consumă o cerere din ambele contoare.

Exemplu

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

Răspuns

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
  }
}

Câmpuri

tier

Unul dintre: basic, early_adopter, pro, pro_plus, custom

limit / remaining

null pe nivelul custom (nelimitat)

used

Cereri numărate în fereastra curentă. Contorul pe minut se resetează la fiecare 60 s; contorul lunar se resetează la trecerea în luna următoare, ora UTC.

reset_at

Marcaj de timp ISO 8601 UTC

bucket

Cheie internă YYYYMM pentru contorul lunar

Erori

La fel ca celelalte rute /api/v1/*:401 INVALID_KEY /REVOKED_KEY,403 IP_NOT_AUTHORIZED,429 RATE_LIMITED /QUOTA_EXCEEDED.

Exemple de cod

Fragmente de start rapid în limbaje populare.

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

API-ul Qualit.ly este disponibil ca server Model Context Protocol (MCP). Conectează-l la Claude Desktop, Cursor, VS Code sau orice client compatibil MCP și interoghează produse, imagini QC și date de utilizare direct din asistentul tău AI, fără HTTP manual. Se aplică aceeași cheie API, aceleași limite de rată și reguli de nivel.

URL server

https://backend.qualit.ly/api/mcp

Transport

StreamableHTTP (POST)

Autentificare

Authorization: Bearer qc_live_…

Instrumente disponibile

Instrument
Descriere
Nivel
get_product
Caută un produs după magazin și ID de anunț
Basic
search_products
Caută produse după nume, cu filtre pentru magazin / prezența QC
Basic
get_products_batch
Caută până la 100 de produse într-un singur apel
Pro+
get_qc
Număr QC și 3 URL-uri de miniatură
Basic
get_qc_images
Listă completă de imagini CDN (după ID sau URL)
Pro+
get_me
Cheia, utilizatorul și nivelul curent
Basic
get_usage
Starea cotei pe minut și lunare
Basic
OAuth 2.0 acceptat. Clienții care acceptă descoperirea automată OAuth (Claude.ai, ChatGPT etc.) le vor cere automat utilizatorilor tăi să autorizeze printr-o pagină de autentificare, fără cheie codificată în cod. Serverul își anunță endpoint-urile OAuth la https://backend.qualit.ly/.well-known/oauth-authorization-server.

Claude Desktop (cheie codificată în cod)

Adaugă asta în claude_desktop_config.json (Claude → Setări → Dezvoltator):

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

Cursor / VS Code (cheie codificată în cod)

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

Verificare rapidă

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":{}}'

Planuri și niveluri

Nivelul tău este determinat la fiecare cerere, așa că upgrade-urile intră în vigoare imediat. Endpoint-urile pentru loturi și imagini complete necesită Pro+.

Plan
/ minut
/ lună
Loturi + imagini
Basic
30
1,000
—
Early Adopter
40
3,000
—
Pro
300
25,000
—
Pro+
1,000
500,000
Inclus

Ai nevoie de limite mai mari? [email protected]

Vezi planurile complete, prețurile și avantajele
Qualit.ly

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

Tools

  • Search QC photos
  • QC photo finder
  • Discord link converter
  • 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]