Skip to main content
L’API Gateway Blueprint envoie un événement d’utilisation à Dodo Payments pour chaque appel d’API traité par votre service, et un compteur Count transforme ces événements en frais par appel pour chaque client. Utilisez-le pour suivre l’utilisation des points de terminaison d’API, alimenter les limites de débit et facturer l’utilisation de l’API. Il est fourni dans le package npm @dodopayments/ingestion-blueprints sous le nom trackAPICall(), qui envoie un événement par appel, et createBatch(), qui met les événements en file d’attente pour les volumes élevés de requêtes.

Cas d’utilisation

L’API Gateway Blueprint convient aux scénarios suivants :

API-as-a-Service

Suivez le nombre d’appels par client sur une plateforme d’API et facturez en fonction du nombre d’appels.

Rate Limiting

Enregistrez le volume d’appels de chaque client afin d’alimenter des limites de débit basées sur l’utilisation. Le blueprint enregistre l’utilisation, mais n’applique pas les limites.

Performance Monitoring

Enregistrez les temps de réponse et les codes d’état avec chaque événement, afin que les taux d’erreur apparaissent à côté des données de facturation.

Multi-Tenant SaaS

Facturez les clients pour leur consommation d’API sur différents points de terminaison.
Chaque événement nécessite l’identifiant client Dodo Payments du client que vous facturez, qui commence par cus_. Enregistrez-le avec les informations de votre utilisateur lors de la création du client, puis transmettez-le en tant que customerId.

Démarrage rapide

Pour suivre les appels d’API, installez le package, créez un compteur et envoyez un événement pour chaque appel.
1

Install the SDK

Installez le package Dodo Payments Ingestion Blueprints :
2

Get Your API Keys

Créez une clé API Dodo Payments dans Developer → API Keys du tableau de bord Dodo Payments, puis stockez-la dans la variable d’environnement DODO_PAYMENTS_API_KEY. Utilisez une clé de mode test pendant le développement. Une clé de mode test fonctionne uniquement avec test_mode.
3

Create a Meter

Dans le tableau de bord Dodo Payments, accédez à Products → Meters et cliquez sur Create Meter. Définissez les champs suivants :
  • Meter Name : un nom descriptif, tel que API Calls.
  • Event Name : api_call, ou un nom de votre choix. Il doit correspondre exactement à eventName dans votre code (sensible à la casse).
  • Aggregation Type : Count, pour facturer en fonction du nombre d’appels.
  • Measurement Unit : l’unité affichée sur les factures, telle que calls.
Pour ne comptabiliser que certains appels, activez Enable Event Filtering et ajoutez des conditions sur des clés de métadonnées telles que endpoint, method ou status_code.
4

Track API Calls

Créez une instance Ingestion avec votre clé API et le nom de l’événement, puis choisissez un modèle : un événement par appel, un lot pour les volumes élevés ou un middleware Express.js qui suit chaque requête. Dans le middleware, req.user provient de votre middleware d’authentification, et son id doit être un identifiant client Dodo Payments. Les requêtes sans utilisateur connecté sont envoyées avec l’identifiant client anonymous, qui ne correspond à aucun client.

Configuration

Configuration de l’ingestion

Transmettez ces options à new Ingestion() :
string
requis
Votre clé API Dodo Payments provenant du tableau de bord.
string
Mode d’environnement : test_mode ou live_mode. La valeur par défaut est test_mode. Les SDK Dodo Payments utilisent par défaut live_mode ; définissez donc explicitement live_mode en production.
string
requis
Nom de l’événement correspondant à Event Name de votre compteur (sensible à la casse). Chaque événement envoyé par cette instance l’utilise.

Options de suivi des appels d’API

Transmettez ces options à trackAPICall() et batch.add() :
string
requis
L’identifiant client Dodo Payments à facturer pour l’appel, par exemple cus_123.
object
Métadonnées facultatives sur l’appel d’API, telles que le point de terminaison, la méthode, le code d’état et le temps de réponse. Chaque valeur doit être une chaîne, un nombre ou une valeur booléenne. L’API rejette les objets imbriqués, les tableaux et les valeurs null.

Configuration des lots

createBatch(ingestion, options) met les événements en file d’attente en mémoire et renvoie un objet comportant trois méthodes : add() met un événement en file d’attente, flush() envoie les événements en file d’attente, et cleanup() les envoie et arrête le minuteur. Une vidange envoie une requête d’ingestion par événement, en parallèle.
number
Nombre d’événements en file d’attente qui déclenche une vidange immédiate. Valeur par défaut : 100.
number
Nombre de millisecondes à attendre après le dernier add() avant la vidange du lot. Chaque add() redémarre le minuteur. Valeur par défaut : 5000 (5 secondes).

Bonnes pratiques

Utilisez le traitement par lots pour les volumes élevés : Pour les applications à fort trafic, utilisez createBatch(). batch.add() renvoie immédiatement, de sorte que le suivi n’ajoute pas de latence à votre gestionnaire de requêtes.
Un lot conserve les événements en mémoire jusqu’à sa vidange et ne réessaie pas d’envoyer les événements qui échouent. Une vidange automatique consigne l’erreur avec console.error. Un appel à flush() ou cleanup() la lève.
Nettoyez les lots à l’arrêt : appelez batch.cleanup() lorsque votre application s’arrête, afin que les événements en attente soient vidés au lieu d’être perdus.
Dernière modification le 26 septembre 2026