Saltar al contenido principal
Esta referencia se genera a partir de la especificación openapi de Topsort e incluye bastantes operaciones. Sin embargo, solo dos son necesarias para una integración típica.

Una integración típica

1
Proporcione su catálogo a través de un feed de productos.
2
(Haga que los vendedores creen campañas).
3
Ejecute subastas a través de la API o usando nuestros clientes.Los detalles dependerán de su marketplace y necesidades. Una selección de ejemplos está disponible aquí.
4
Use una de las bibliotecas de analíticas para reportar eventos.

APIs Disponibles

Las integraciones típicas usarán estas APIs:
  • Auctions: Ejecuta subastas en su marketplace.
  • Events: Recopila datos sobre los resultados de las subastas.
Para integraciones avanzadas, es posible que desee consultar:
  • Audiences: Gestione audiencias.
  • Campaigns: Gestione campañas.
  • Catalog: Gestione productos, categorías y vendedores.
  • Billing: Gestione los saldos de los vendedores.
  • Reporting: Lea informes sobre el rendimiento del marketplace, campañas o productos.
  • Invitations: Invite vendedores a su marketplace.

URLs y redirecciones

Para minimizar el impacto de las subastas en el rendimiento de su aplicación, no hay redirección desde URLs con una barra diagonal final (/). Esto es para evitar un viaje de ida y vuelta adicional antes de que se devuelvan los ganadores de la subasta. Por ejemplo, cuando desee ejecutar una subasta, use /v2/auctions, no /v2/auctions/. Usar una URL con una barra diagonal final resultará en un error 404 Not Found.

Estado de la API

Puede monitorear y verificar el estado de la API aquí.

Límites de Tasa

Topsort aplica límites de tasa en algunos de los endpoints para garantizar que se mantenga la calidad del servicio para todos los usuarios. Los límites de tasa son diferentes para los entornos de producción y sandbox y son los siguientes:
EntornoEndpointLímite de Tasa
SandboxCatalog API4 rps
SandboxOtras APIs Avanzadas5 solicitudes cada 2 segundos
SandboxAuctions y EventsSin límite de tasa
ProductionCatalog API10 rps
ProductionOtras APIs Avanzadas45 solicitudes cada 2 segundos
ProductionAuctions y EventsSin límite de tasa

Encabezados de límite de tasa

Use estos encabezados para navegar los límites de tasa y saber cuándo puede hacer otra solicitud:
  • X-RateLimit-Limit - número total de solicitudes permitidas para el período de tiempo
  • X-RateLimit-Remaining - número restante de solicitudes para el período de tiempo
  • X-RateLimit-Reset - cuándo puede hacer otra solicitud

Cómo manejar los límites de tasa

Cuando exceda el límite de tasa, recibirá una respuesta 429 Too Many Requests. Para manejar esto, puede implementar un mecanismo de reintento con una estrategia de retroceso exponencial. Esto le ayudará a evitar alcanzar el límite de tasa nuevamente. Aquí hay un ejemplo de cómo puede implementar esto en Typescript:
/**
 * Wraps `fetch()` with a retry function that respects retry limits from the API
 *
 * @param {string|URL} url
 * @param {RequestInit} request
 * @param {number} retries = 1
 * @returns {Promise<Response>}
 */
async function fetchWithRetry(url, request, retries = 1) {
  const response = await fetch(url, request);
  if (!response.ok) {
    if (response.status === 429) {
      // Handle rate limit
      const ms = response.headers.get("X-RateLimit-Reset");
      await new Promise((resolve) => setTimeout(resolve, ms));
      return fetchWithRetry(url, request, retries + 1);
    }
    throw new Error(
      `Failed to upload: ${response.status} ${await response.text()}`,
    );
  }
}

Especificación OpenAPI

La especificación OpenAPI está disponible como un archivo JSON aquí.