Referencia de la API
Qualit.ly API
Datos de productos, imágenes QC y metadatos de Weidian, Taobao y 1688. Autenticación con token Bearer, límites de tasa generosos, planes por niveles.
Primeros pasos
Todas las solicitudes van a https://backend.qualit.ly/api/v1. Tres pasos:
Obtén una clave
Inicia sesión y crea una clave de API desde el panel de desarrollador.
Haz una solicitud
Envía tu clave como token Bearer en el encabezado Authorization.
Obtén los datos
Recibe respuestas JSON con los datos del producto e imágenes QC.
Ejemplo rápido
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/products/weidian/1234567890Autenticación
Incluye una clave de API válida en el encabezado Authorization usando el esquema Bearer.
Authorization: Bearer qc_live_xxxxxxxxxxxxxxxxxxxxxxxxFormato de la clave
Las claves siguen qc_{mode}_{random} donde mode es live o test, y random son 32 caracteres criptográficamente aleatorios.
Las claves se muestran una sola vez al crearlas. Solo almacenamos el hash SHA-256, por lo que las claves perdidas no se pueden recuperar.
Lista de IP permitidas
Opcionalmente, restringe las claves a IP o rangos CIDR específicos desde el panel de desarrollador. Las solicitudes de IP no incluidas reciben un 403. Una lista vacía permite todas las IP.
Límites de tasa
Dos contadores: por minuto y por mes. Los límites dependen del nivel de tu cuenta y se aplican a todas las claves.
Al alcanzar el límite
La API devuelve un 429 con un encabezado Retry-After.
{
"error": {
"code": "RATE_LIMITED",
"message": "Per-minute limit exceeded",
"retry_after": 12
}
}Errores
Todos los errores devuelven un objeto error de nivel superior con code y message.
{
"error": {
"code": "NOT_FOUND",
"message": "Product not found"
}
}BAD_REQUESTCuerpo o parámetros de la solicitud no válidos.INVALID_KEYClave de API ausente, malformada o desconocida.REVOKED_KEYLa clave de API fue revocada en el panel.IP_NOT_AUTHORIZEDLa IP de la solicitud no está en la lista permitida de la clave.FORBIDDENTu nivel no tiene acceso a este endpoint.NOT_FOUNDEl recurso solicitado no existe.RATE_LIMITEDLímite por minuto superado, consulta Retry-After.QUOTA_EXCEEDEDCuota mensual agotada; se reinicia al cambiar de mes en UTC.INTERNALError del servidor. Reintenta o contacta con soporte.Endpoints
Base: https://backend.qualit.ly/api/v1. Tiendas: weidian, taobao, 1688.
/products/:storefront/:listingIdBasicBusca un único producto por tienda e ID de listado. Devuelve metadatos y hasta 5 miniaturas de vista previa QC.
Parámetros
storefrontobligatorioUna de: weidian, taobao, 1688
listingIdobligatorioEl ID del listado del producto en la tienda
Ejemplo
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/products/weidian/7231368393Respuesta
{
"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+Busca varios productos en una sola solicitud (hasta 100). Cada resultado es independiente, así que un producto faltante no hace fallar el lote.
Cuerpo de la solicitud
{
"items": [
{ "storefront": "weidian", "listing_id": "7231368393" },
{ "storefront": "taobao", "listing_id": "123456789" }
]
}Ejemplo
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/batchRespuesta
{
"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/:listingIdBasicObtén los metadatos QC y las primeras 3 URL de imágenes en miniatura de un producto.
Ejemplo
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+Lista completa de imágenes QC. Acepta un ID de producto numérico o un parámetro ?url= para búsquedas por URL.
Por ID de producto
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/qc/482910/imagesPor 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"Respuesta
{
"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= acepta URL de producto completas de Weidian, Taobao, 1688 y agentes compatibles./meBasicDevuelve los datos de tu cuenta, la clave usada para la solicitud y tu nivel actual.
Ejemplo
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"
}/usageBasicConsulta tu uso actual de límites de tasa y cuota. Devuelve contadores por minuto y por mes con marcas de tiempo de reinicio. La propia llamada consume 1 solicitud de ambos contadores.
Ejemplo
curl -H "Authorization: Bearer qc_live_YOUR_KEY" \
https://backend.qualit.ly/api/v1/usageRespuesta
{
"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
}
}Campos
tierUno de: basic, early_adopter, pro, pro_plus, custom
limit / remainingnull en el nivel custom (ilimitado)
usedSolicitudes contadas en la ventana actual. El contador por minuto se reinicia cada 60 s; el mensual al cambiar de mes en UTC.
reset_atMarca de tiempo UTC ISO 8601
bucketClave interna AAAAMM del contador mensual
Errores
Iguales que en otras rutas /api/v1/*:401 INVALID_KEY /REVOKED_KEY,403 IP_NOT_AUTHORIZED,429 RATE_LIMITED /QUOTA_EXCEEDED.
Ejemplos de código
Fragmentos de inicio rápido en lenguajes populares.
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');Servidor MCP
La API de Qualit.ly está disponible como servidor Model Context Protocol (MCP). Conéctalo a Claude Desktop, Cursor, VS Code o cualquier cliente compatible con MCP y consulta productos, imágenes QC y datos de uso directamente desde tu asistente de IA, sin HTTP manual. Se aplican la misma clave de API, límites de tasa y reglas de nivel.
URL del servidor
https://backend.qualit.ly/api/mcpTransporte
StreamableHTTP (POST)
Autenticación
Authorization: Bearer qc_live_…
Herramientas disponibles
get_productget_products_batchget_qcget_qc_imagesget_meget_usagehttps://backend.qualit.ly/.well-known/oauth-authorization-server.Claude Desktop (clave codificada)
Añade esto a tu claude_desktop_config.json (Claude → Configuración → Desarrollador):
{
"mcpServers": {
"qualitly": {
"url": "https://backend.qualit.ly/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}Cursor / VS Code (clave codificada)
{
"mcp": {
"servers": {
"qualitly": {
"url": "https://backend.qualit.ly/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
}Verificación rápida
# 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":{}}'Planes y niveles
Tu nivel se resuelve en cada solicitud, por lo que las mejoras surten efecto de inmediato. Los endpoints por lote y de imágenes completas requieren Pro+.
¿Necesitas límites más altos? [email protected]
Ver todos los planes, precios y ventajas