Passer au contenu principal
Cette référence est générée à partir de la spécification openapi de Topsort et inclut de nombreuses opérations. Cependant, seulement deux sont nécessaires pour une intégration typique.

Une intégration typique

1
Fournissez votre catalogue via un flux de produits.
2
(Faites créer des campagnes aux vendeurs).
3
Exécutez des enchères via l’API ou en utilisant nos clients.Les détails dépendront de votre marketplace et de vos besoins. Une sélection d’exemples est disponible ici.
4
Utilisez l’une des bibliothèques d’analytics pour rapporter les événements.

APIs Disponibles

Les intégrations typiques utiliseront ces APIs :
  • Auctions: Exécute des enchères sur votre marketplace.
  • Events: Collecte des données sur les résultats des enchères.
Pour les intégrations avancées, vous pourriez vouloir consulter :
  • Audiences: Gérez les audiences.
  • Campaigns: Gérez les campagnes.
  • Catalog: Gérez les produits, catégories et vendeurs.
  • Billing: Gérez les soldes des vendeurs.
  • Reporting: Lisez les rapports sur les performances du marketplace, des campagnes ou des produits.
  • Invitations: Invitez des vendeurs sur votre marketplace.

URLs et redirections

Pour minimiser l’impact des enchères sur les performances de votre application, il n’y a pas de redirection depuis les URLs avec une barre oblique finale (/). Cela permet d’éviter un aller-retour supplémentaire avant que les gagnants de l’enchère ne soient retournés. Par exemple, lorsque vous voulez exécuter une enchère, utilisez /v2/auctions, pas /v2/auctions/. L’utilisation d’une URL avec une barre oblique finale entraînera une erreur 404 Not Found.

État de l’API

Vous pouvez surveiller et vérifier l’état de l’API ici.

Limites de Débit

Topsort applique des limites de débit sur certains des endpoints pour garantir que la qualité du service est maintenue pour tous les utilisateurs. Les limites de débit sont différentes pour les environnements de production et sandbox et sont les suivantes :
EnvironnementEndpointLimite de Débit
SandboxCatalog API4 rps
SandboxAutres APIs Avancées5 requêtes toutes les 2 secondes
SandboxAuctions et EventsPas de limite de débit
ProductionCatalog API10 rps
ProductionAutres APIs Avancées45 requêtes toutes les 2 secondes
ProductionAuctions et EventsPas de limite de débit

En-têtes de limite de débit

Utilisez ces en-têtes pour naviguer dans les limites de débit et savoir quand vous pouvez faire une autre requête :
  • X-RateLimit-Limit - nombre total de requêtes autorisées pour la période de temps
  • X-RateLimit-Remaining - nombre restant de requêtes pour la période de temps
  • X-RateLimit-Reset - quand vous pouvez faire une autre requête

Comment gérer les limites de débit

Lorsque vous dépassez la limite de débit, vous recevrez une réponse 429 Too Many Requests. Pour gérer cela, vous pouvez implémenter un mécanisme de nouvelle tentative avec une stratégie de backoff exponentiel. Cela vous aidera à éviter d’atteindre à nouveau la limite de débit. Voici un exemple de comment vous pouvez implémenter cela 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()}`,
    );
  }
}

Spécification OpenAPI

La spécification OpenAPI est disponible sous forme de fichier JSON ici.