Necesitas permitir que los usuarios busquen un catálogo de tarjetas de intercambio y tracen el historial de precios de una tarjeta calificada específica, sin construir scrapers o mantener conjuntos de datos. Al final de este artículo, podrás buscar una tarjeta de intercambio deportiva y obtener sus precios en serie por grado utilizando la API de Tarjetas Deportivas y Tarjetas de Intercambio en Zyla API Hub, y luego integrar esas llamadas en tu aplicación o en un agente de codificación de IA a través de MCP.
Lo que esta API te ofrece
La API de Tarjetas Deportivas y Tarjetas de Intercambio proporciona dos capacidades:
- Búsqueda de Tarjetas: búsqueda difusa de tarjetas de intercambio mediante una única cadena de búsqueda (por ejemplo, jugador, conjunto, año). La API devuelve una lista de tarjetas coincidentes con metadatos y un card_id que usarás en llamadas posteriores.
- Obtener Precios de Tarjetas: recuperar series de precios recientes para un card_id y grado específicos (por ejemplo, PSA 10) durante un número determinado de días.
Los desarrolladores lo utilizan para potenciar herramientas de inventario, calculadoras de comparaciones, paneles de portafolio, bots de compra/venta y asistentes de listado en mercados. Todo se devuelve como JSON, por lo que puedes integrarlo directamente en tu backend o en una aplicación cliente.
Trabajarás completamente en Zyla API Hub, que centraliza la autenticación y la facturación a través de más de 10,000 APIs públicas. Una cuenta, una clave API, suscripción + cuota (no pago por llamada), y la primera API en tu cuenta puede comenzar con una prueba de 7 días o 50 solicitudes. Consulta la página de la API para las opciones de acceso y precios actuales.
Comenzando en Zyla API Hub
Abre la página de la API, suscríbete y obtén tu clave:
- Ve a la lista de la API de Tarjetas Deportivas y Tarjetas de Intercambio y haz clic en Suscribirse o Comenzar Prueba Gratuita cuando esté disponible: Comenzar prueba de 7 días en la API de Tarjetas Deportivas y Tarjetas de Intercambio.
- Copia tu clave API del panel de control.
- Usa Authorization: Bearer YOUR_API_KEY en cada solicitud.
Todas las solicitudes van a las URL del hub de zylalabs.com; no llames a los hosts de origen directamente. Los ejemplos a continuación son copiables tal como están (reemplaza YOUR_API_KEY con tu clave).
Puntos finales que usarás
1) Búsqueda de Tarjetas
Busca tarjetas de intercambio deportivas coincidentes mediante una única cadena de consulta difusa. Puedes combinar detalles como jugador, año, conjunto y variante en una sola cadena.
- Método: GET
- URL: https://zylalabs.com/api/2511/sports-card-and-trading-card-api/2494/card-search
- Parámetro de consulta requerido:
- search (cadena): Texto de búsqueda libre, por ejemplo, “Lebron James”.
Ejemplo oficial de cURL:
curl -s -X GET "https://zylalabs.com/api/2511/sports-card-and-trading-card-api/2494/card-search?search=Lebron+James" \
-H "Authorization: Bearer YOUR_API_KEY"
Ejemplo oficial de respuesta JSON:
[
{
"description": "LeBron James 2003 Topps Basketball",
"player": "Lebron James",
"set": "2003 Topps Basketball",
"number": "221",
"variant": "Base",
"card_id": "1588290260620x609083468203688000",
"image": "//s3.amazonaws.com/appforest_uf/f1588290324330x374737296708651100/2003-Topps-Basketball-LeBron-James-graded.jpg",
"category": "Basketball",
"category_group": "Sports Cards",
"set_type": "Topps Basketball"
},
{
"description": "LeBron James 2003 Upper Deck Rookie Exclusives Basketball",
"player": "Lebron James",
"set": "2003 Upper Deck Rookie Exclusives Basketball",
"number": "1",
"variant": "Base",
"card_id": "1593982609906x272877681796710400",
"image": "//s3.amazonaws.com/appforest_uf/f1593982606419x316822824595257800/2003-Upper-Deck-Rookie-Exclusives-Lebron-James-1.jpg",
"category": "Basketball",
"category_group": "Sports Cards",
"set_type": "Upper Deck Rookie Exclusives Basketball"
},
{
"description": "LeBron James 2025 Topps Chrome Cactus Jack Basketball",
"player": "LeBron James",
"set": "2025 Topps Chrome Cactus Jack Basketball",
"number": "46",
"variant": "Base",
"card_id": "1782184797693x851477815192830800",
"image": "//s3.amazonaws.com/appforest_uf/f1598843985116x489100344198574160/05-Basketball.jpg",
"category": "Basketball",
"category_group": "Sports Cards",
"set_type": "Topps Chrome Cactus Jack Basketball"
},
{
"description": "LeBron James 2003 Topps Chrome Basketball",
"player": "Lebron James",
"set": "2003 Topps Chrome Basketball",
"number": "111",
"variant": "Base",
"card_id": "1586412050491x786559417729941500",
"image": "//942284f33c575895b4be9de571ca6e40.cdn.bubble.io/d112/f1766768512710x492230808547762700/resize",
"category": "Basketball",
"category_group": "Sports Cards",
"set_type": "Topps Chrome Basketball"
},
{
"description": "LeBron James 2024 Panini Prizm Basketball",
"player": "LeBron James",
"set": "2024 Panini Prizm Basketball",
"number": "130",
"variant": "Base",
"card_id": "1740403688997x505339465151470000",
"image": "//942284f33c575895b4be9de571ca6e40.cdn.bubble.io/d112/f1757384268822x692013733346557700/resize",…
Campos que realmente usarás:
- description: Etiqueta legible por humanos que puedes mostrar en los resultados de búsqueda.
- player, set, number, variant: Metadatos para filtrar y mostrar.
- card_id: Identificador principal; pásalo a Obtener Precios de Tarjetas.
- image: Ruta a una imagen que puedes renderizar (prefija con https: si es necesario en tu cliente).
- category, category_group, set_type: Útil para categorización.
2) Obtener Precios de Tarjetas
Devuelve precios recientes (series de tiempo) para una tarjeta y grado durante un intervalo de días. Usa el card_id de la Búsqueda de Tarjetas.
- Método: GET
- URL: https://zylalabs.com/api/2511/sports-card-and-trading-card-api/2495/get-card-prices
- Parámetros de consulta requeridos:
- card_id (cadena): Un identificador de tarjeta de la Búsqueda de Tarjetas.
- days (cadena): Número de días anteriores a incluir (por ejemplo, “90”).
- grade (cadena): Etiqueta de calificación (por ejemplo, “PSA 10”).
Ejemplo oficial de cURL:
Ejemplo oficial de respuesta JSON:
[
{
"closing_date": "2026-08-03T23:59:00.000Z",
"Grade": "PSA 10",
"card_id": "1586412050491x786559417729941500",
"price": "16150.00"
},
{
"closing_date": "2026-08-01T23:59:00.000Z",
"Grade": "PSA 10",
"card_id": "1586412050491x786559417729941500",
"price": "18250.00"
},
{
"closing_date": "2026-07-31T23:59:00.000Z",
"Grade": "PSA 10",
"card_id": "1586412050491x786559417729941500",
"price": "17900.00"
},
{
"closing_date": "2026-07-27T23:59:00.000Z",
"Grade": "PSA 10",
"card_id": "1586412050491x786559417729941500",
"price": "17303.00"
},
{
"closing_date": "2026-07-21T23:59:00.000Z",
"Grade": "PSA 10",
"card_id": "1586412050491x786559417729941500",
"price": "17373.00"
},
{
"closing_date": "2026-07-17T23:59:00.000Z",
"Grade": "PSA 10",
"card_id": "1586412050491x786559417729941500",
"price": "15337.20"
},
{
"closing_date": "2026-07-15T23:59:00.000Z",
"Grade": "PSA 10",
"card_id": "1586412050491x786559417729941500",…
Campos que realmente usarás:
- closing_date: Marca de tiempo ISO 8601 en UTC (el sufijo “Z”). Úsalo como tu eje x para gráficos.
- Grade: Cadena de grado que refleja tu consulta (por ejemplo, “PSA 10”).
- card_id: Identifica a qué tarjeta pertenece la serie.
- price: Precio como cadena. Convierte a decimal/número en tu idioma para evitar desviaciones de punto flotante al sumar o promediar.
Flujo de trabajo de extremo a extremo
- Llama a la Búsqueda de Tarjetas con una única cadena de consulta como “Lebron James 2003 Topps Chrome 111”.
- Inspecciona los resultados y elige la fila correcta por jugador, conjunto, número y variante.
- Obtén su card_id.
- Llama a Obtener Precios de Tarjetas con ese card_id, tu ventana de días y un grado como “PSA 10”.
- Renderiza un gráfico usando closing_date en el eje x y price en el eje y; o calcula promedios móviles, min/max o volatilidad para clasificar.
Ejemplos para copiar y pegar
cURL: Búsqueda de Tarjetas (oficial)
Esto está listo para pegar en una terminal. Reemplaza YOUR_API_KEY con tu clave.
Python: Búsqueda de Tarjetas y seleccionar un card_id
El fragmento a continuación consulta la Búsqueda de Tarjetas, filtra por Topps Chrome Basketball y imprime el card_id que pasarás a Obtener Precios de Tarjetas. También muestra cómo prefijar de manera segura la URL de la imagen.
import os
import requests
API_KEY = os.getenv("ZYLALABS_API_KEY", "YOUR_API_KEY")
BASE_URL = "https://zylalabs.com/api/2511/sports-card-and-trading-card-api/2494/card-search"
params = {"search": "Lebron James"}
headers = {"Authorization": f"Bearer {API_KEY}"}
resp = requests.get(BASE_URL, params=params, headers=headers, timeout=30)
resp.raise_for_status()
results = resp.json()
# Elige la tarjeta base de 2003 Topps Chrome Basketball, si está presente:
target = None
for item in results:
if item.get("set") == "2003 Topps Chrome Basketball" and item.get("variant") == "Base":
target = item
break
if not target and results:
target = results[0] # fallback: primer resultado
if not target:
raise SystemExit("No hay resultados de la Búsqueda de Tarjetas")
card_id = target["card_id"]
image_url = target.get("image")
if image_url and image_url.startswith("//"):
image_url = "https:" + image_url
print("Descripción:", target.get("description"))
print("Jugador:", target.get("player"))
print("Conjunto:", target.get("set"))
print("Número:", target.get("number"))
print("Variante:", target.get("variant"))
print("card_id:", card_id)
print("URL de la imagen:", image_url)
A continuación, toma el card_id de la salida y llama al punto final Obtener Precios de Tarjetas (a través de cURL o tu propio código) para recuperar la serie de tiempo para tu grado elegido.
Notas de implementación que ahorran tiempo
- Autenticación: Siempre envía Authorization: Bearer YOUR_API_KEY.
- Marcas de tiempo: closing_date utiliza UTC (sufijo Z). Convierte una vez en el borde y mantén todo en UTC para agregaciones consistentes.
- Precios: price es una cadena. En código fuertemente tipado, analiza a Decimal/BigNumber para preservar centavos.
- Imágenes: las rutas de las imágenes pueden ser relativas al protocolo (comienzan con //). Prefija con https: en tu frontend para evitar problemas de contenido mixto.
- Filtrado: la Búsqueda de Tarjetas puede devolver múltiples coincidencias cercanas. Deja que el usuario elija por conjunto + número + variante antes de llamar a Obtener Precios de Tarjetas.
- Cacheo: Almacena en caché las respuestas de la Búsqueda de Tarjetas para consultas populares (por ejemplo, “Lebron James”) ya que los metadatos cambian con menos frecuencia que los precios.
- Ventanas: days controla cuán atrás obtienes datos. Mantén alineado con tu marco de tiempo de gráficos (por ejemplo, 30/90/180) para evitar obtener datos en exceso.
Casos de uso prácticos en deportes que puedes implementar esta semana
- Inventario de coleccionista: Permite a los usuarios buscar una tarjeta, almacenar el card_id en tu base de datos y mostrar la tendencia de precios actual de 30 a 90 días en su vista de colección.
- Estimador de comparaciones: En una página de listado, busca por jugador + conjunto + número, obtén los últimos precios de 90 días para “PSA 10” y muestra una comparación de promedio reciente.
- Alertas de ofertas: Un trabajo nocturno llama a Obtener Precios de Tarjetas para card_ids en la lista de seguimiento y envía correos electrónicos sobre caídas de precios en comparación con promedios móviles de 7 días o 30 días.
- Páginas de exhibición: Para jugadores destacados, prefetch resultados de Búsqueda de Tarjetas y vincula cada uno a un desglose de gráfico de precios por grado.
Llamadas desde un agente de IA a través de MCP
Si automatizas flujos de trabajo con un cliente compatible con MCP, puedes enrutar llamadas a través del servidor MCP de Zyla. Configura tu cliente MCP con el punto final MCP y tu clave API, y luego haz que el agente emita las mismas solicitudes GET HTTPS que se muestran arriba contra las URL del hub de Zyla. Consulta la referencia de MCP aquí: MCP.
El flujo es el mismo: llama a la Búsqueda de Tarjetas para obtener card_id, luego llama a Obtener Precios de Tarjetas con card_id, días y grado. Usa las URL y encabezados exactos de los ejemplos de cURL; tu cliente MCP maneja el transporte y la sesión.
Manejo de errores y casos extremos
- Resultados de búsqueda vacíos: Si la Búsqueda de Tarjetas devuelve un array vacío, solicita al usuario que amplíe la consulta o elimine los calificadores de conjunto/variante de la cadena de búsqueda.
- Múltiples casi duplicados: Prefiere coincidencias exactas en conjunto y número para desambiguar variantes y reimpresiones.
- Grado no encontrado: Si Obtener Precios de Tarjetas devuelve un array vacío para un grado raro, prueba con un grado diferente (por ejemplo, “PSA 9”) o relaja la ventana de días.
- Limitaciones y cuotas: El acceso es por suscripción + cuota, no pago por llamada. Usa caché local y debounce en tu UI de autosugerencias para minimizar llamadas. Para opciones de acceso actuales, consulta la página de la API.
Referencia: puntos finales y parámetros exactos
Búsqueda de Tarjetas
- Método: GET
- URL: https://zylalabs.com/api/2511/sports-card-and-trading-card-api/2494/card-search
- Parámetros requeridos:
- search: cadena (ejemplo: Lebron James)
Obtener Precios de Tarjetas
- Método: GET
- URL: https://zylalabs.com/api/2511/sports-card-and-trading-card-api/2495/get-card-prices
- Parámetros requeridos:
- card_id: cadena (de la Búsqueda de Tarjetas)
- days: cadena (ejemplo: 90)
- grade: cadena (ejemplo: PSA 10)
Lista de verificación de QA antes de enviar
- UX de búsqueda: Muestra descripción, conjunto, número, variante e imagen. Permite al usuario elegir una sola tarjeta para reducir desajustes.
- Tipos de datos: Analiza el precio como decimal, no como flotante. Trata las marcas de tiempo como UTC.
- Grados: Proporciona un pequeño menú desplegable de grados comunes (por ejemplo, “PSA 10”, “PSA 9”) para que los usuarios no escriban mal un grado y obtengan cero resultados.
- Resiliencia: Maneja arrays vacíos y campos inesperados sin hacer que tu trabajo o UI se bloqueen.
- Caché: Almacena en caché los resultados de la Búsqueda de Tarjetas por un corto TTL (por ejemplo, horas), y almacena en caché las series de precios por un TTL más corto si actualizas gráficos con frecuencia.
FAQ
¿Cómo obtengo un card_id?
Usa el punto final de Búsqueda de Tarjetas con una única cadena de búsqueda (por ejemplo, “Lebron James 2003 Topps Chrome 111”). La respuesta incluye un card_id para cada resultado. Elige el correcto (conjunto + número + variante) y pásalo a Obtener Precios de Tarjetas.
¿Qué zona horaria tiene closing_date?
UTC. El sufijo “Z” indica UTC. Convierte en tu UI si deseas mostrar la hora local; mantén el almacenamiento y la analítica en UTC para consistencia.
¿Por qué el precio es una cadena?
Analizar como decimal evita problemas de precisión de punto flotante al calcular promedios o sumas. Convierte cadenas a Decimal/BigNumber en tu lenguaje de elección.
¿Hay un plan gratuito?
No hay plan gratuito. El acceso es por suscripción + cuota. La primera API en tu cuenta puede comenzar con una prueba de 7 días o 50 solicitudes. Consulta la página de la API para las opciones de acceso y precios actuales.
¿Puedo llamar a estos puntos finales desde un IDE/agente de IA?
Sí. Configura tu cliente compatible con MCP con el servidor MCP de Zyla y tu clave API, luego emite las mismas solicitudes GET que se muestran en los ejemplos de cURL. Consulta la página de MCP para más detalles.
¿Listo para integrar esto en tu aplicación? Suscríbete y obtén tu clave en la página de listado: Comenzar prueba de 7 días en la API de Tarjetas Deportivas y Tarjetas de Intercambio. Luego copia el cURL anterior, reemplaza tu clave y estarás en vivo.
Respuesta oficial de la API
[
{
"description": "LeBron James 2003 Topps Basketball",
"player": "Lebron James",
"set": "2003 Topps Basketball",
"number": "221",
"variant": "Base",
"card_id": "1588290260620x609083468203688000",
"image": "//s3.amazonaws.com/appforest_uf/f1588290324330x374737296708651100/2003-Topps-Basketball-LeBron-James-graded.jpg",
"category": "Basketball",
"category_group": "Sports Cards",
"set_type": "Topps Basketball"
},
{
"description": "LeBron James 2003 Upper Deck Rookie Exclusives Basketball",
"player": "Lebron James",
"set": "2003 Upper Deck Rookie Exclusives Basketball",
"number": "1",
"variant": "Base",
"card_id": "1593982609906x272877681796710400",
"image": "//s3.amazonaws.com/appforest_uf/f1593982606419x316822824595257800/2003-Upper-Deck-Rookie-Exclusives-Lebron-James-1.jpg",
"category": "Basketball",
"category_group": "Sports Cards",
"set_type": "Upper Deck Rookie Exclusives Basketball"
},
{
"description": "LeBron James 2025 Topps Chrome Cactus Jack Basketball",
"player": "LeBron James",
"set": "2025 Topps Chrome Cactus Jack Basketball",
"number": "46",
"variant": "Base",
"card_id": "1782184797693x851477815192830800",
"image": "//s3.amazonaws.com/appforest_uf/f1598843985116x489100344198574160/05-Basketball.jpg",
"category": "Basketball",
"category_group": "Sports Cards",
"set_type": "Topps Chrome Cactus Jack Basketball"
},
{
"description": "LeBron James 2003 Topps Chrome Basketball",
"player": "Lebron James",
"set": "2003 Topps Chrome Basketball",
"number": "111",
"variant": "Base",
"card_id": "1586412050491x786559417729941500",
"image": "//942284f33c575895b4be9de571ca6e40.cdn.bubble.io/d112/f1766768512710x492230808547762700/resize",
"category": "Basketball",
"category_group": "Sports Cards",
"set_type": "Topps Chrome Basketball"
},
{
"description": "LeBron James 2024 Panini Prizm Basketball",
"player": "LeBron James",
"set": "2024 Panini Prizm Basketball",
"number": "130",
"variant": "Base",
"card_id": "1740403688997x505339465151470000",
"image": "//942284f33c575895b4be9de571ca6e40.cdn.bubble.io/d112/f1757384268822x692013733346557700/resize",…
Respuesta oficial de la API
[
{
"description": "LeBron James 2003 Topps Basketball",
"player": "Lebron James",
"set": "2003 Topps Basketball",
"number": "221",
"variant": "Base",
"card_id": "1588290260620x609083468203688000",
"image": "//s3.amazonaws.com/appforest_uf/f1588290324330x374737296708651100/2003-Topps-Basketball-LeBron-James-graded.jpg",
"category": "Basketball",
"category_group": "Sports Cards",
"set_type": "Topps Basketball"
},
{
"description": "LeBron James 2003 Upper Deck Rookie Exclusives Basketball",
"player": "Lebron James",
"set": "2003 Upper Deck Rookie Exclusives Basketball",
"number": "1",
"variant": "Base",
"card_id": "1593982609906x272877681796710400",
"image": "//s3.amazonaws.com/appforest_uf/f1593982606419x316822824595257800/2003-Upper-Deck-Rookie-Exclusives-Lebron-James-1.jpg",
"category": "Basketball",
"category_group": "Sports Cards",
"set_type": "Upper Deck Rookie Exclusives Basketball"
},
{
"description": "LeBron James 2025 Topps Chrome Cactus Jack Basketball",
"player": "LeBron James",
"set": "2025 Topps Chrome Cactus Jack Basketball",
"number": "46",
"variant": "Base",
"card_id": "1782184797693x851477815192830800",
"image": "//s3.amazonaws.com/appforest_uf/f1598843985116x489100344198574160/05-Basketball.jpg",
"category": "Basketball",
"category_group": "Sports Cards",
"set_type": "Topps Chrome Cactus Jack Basketball"
},
{
"description": "LeBron James 2003 Topps Chrome Basketball",
"player": "Lebron James",
"set": "2003 Topps Chrome Basketball",
"number": "111",
"variant": "Base",
"card_id": "1586412050491x786559417729941500",
"image": "//942284f33c575895b4be9de571ca6e40.cdn.bubble.io/d112/f1766768512710x492230808547762700/resize",
"category": "Basketball",
"category_group": "Sports Cards",
"set_type": "Topps Chrome Basketball"
},
{
"description": "LeBron James 2024 Panini Prizm Basketball",
"player": "LeBron James",
"set": "2024 Panini Prizm Basketball",
"number": "130",
"variant": "Base",
"card_id": "1740403688997x505339465151470000",
"image": "//942284f33c575895b4be9de571ca6e40.cdn.bubble.io/d112/f1757384268822x692013733346557700/resize",…