@dodopayments/ingestion-blueprints npm package में उपलब्ध है, जैसे createLLMTracker()।
Quick Start
SDK install करें, meter बनाएँ और अपने LLM client को wrap करें।
API Reference - Events Ingestion
वह API endpoint जो usage events प्राप्त करता है।
API Reference - Meters
Billing के लिए meters बनाएँ और configure करें।
Usage-Based Billing Guide
Meters के साथ usage-based billing को शुरू से अंत तक set up करें।
इसे SaaS apps, AI chatbots, content generation tools और usage के आधार पर बिल करने वाले किसी भी अन्य LLM-powered application में उपयोग करें।
त्वरित शुरुआत
Token usage ट्रैक करने के लिए package install करें, meter बनाएँ और अपने LLM client को wrap करें।1
Install the SDK
Dodo Payments Ingestion Blueprints package install करें:अपने LLM provider के लिए SDK भी install करें, जैसे
openai, @anthropic-ai/sdk, groq-sdk, @google/genai, या ai को @ai-sdk/google के साथ।2
Get Your API Keys
आपको दो API keys चाहिए:
- Dodo Payments API key: Dodo Payments dashboard में Developer → API Keys के अंतर्गत एक बनाएँ और इसे
DODO_PAYMENTS_API_KEYमें store करें। Build करते समय test mode key का उपयोग करें। Test mode key केवलtest_modeके साथ काम करती है। - LLM provider API key: जिस provider को आप call करते हैं उसकी key, जैसे OpenAI, Anthropic, Groq, OpenRouter या Google। Examples इसे
OPENAI_API_KEYजैसे variables से पढ़ते हैं।
3
Create a Meter in Dodo Payments
Usage ट्रैक करने से पहले meter बनाएँ:विस्तृत instructions के लिए Usage-Based Billing Guide देखें।
- Dodo Payments dashboard में Products → Meters पर जाएँ।
- Create Meter पर click करें।
- Meter configure करें:
- Meter Name: एक वर्णनात्मक नाम, जैसे
LLM Token Usage। - Event Name: एक unique event identifier, जैसे
llm.chat_completion। - Aggregation Type: Sum, token counts को जोड़ने के लिए।
- Over Property: जिस token count के लिए बिल बनाना है:
inputTokens: input (prompt) tokens।outputTokens: output (completion) tokens, जिसमें model द्वारा report किए जाने पर reasoning tokens भी शामिल हैं।totalTokens: संयुक्त input और output tokens।
- Measurement Unit: invoices पर दिखाई जाने वाली unit, जैसे
tokens।
- Meter Name: एक वर्णनात्मक नाम, जैसे
- Create Meter पर click करें।
यहाँ set किया गया Event Name, SDK को pass किए गए
eventName से बिल्कुल match होना चाहिए (case-sensitive)।4
Track Token Usage
Tracker बनाएँ, अपने LLM client को wrap करें और client को सामान्य रूप से call करें:
अब wrapped client के माध्यम से की गई प्रत्येक पूर्ण call अपने token counts के साथ billing के लिए Dodo Payments को usage event भेजती है।
Configuration
Tracker Configuration
Application startup पर एक बार tracker बनाएँ और प्रत्येक customer के लिए उसका पुनः उपयोग करें।createLLMTracker() ये options लेता है और यदि apiKey या eventName missing या empty हो तो error throw करता है:
string
आवश्यक
आपकी Dodo Payments API key। इसे API Keys page से प्राप्त करें।
string
Tracker के लिए environment mode:
test_mode: development और testing के लिए। यह default है।live_mode: production के लिए।
live_mode पर सेट होते हैं, इसलिए production में live_mode को स्पष्ट रूप से set करें।string
आवश्यक
वह event name जो आपके meter को trigger करता है। इसे आपके Dodo Payments meter के Event Name से बिल्कुल match होना चाहिए (case-sensitive)।
यह event name आपके tracked usage को billing calculations के लिए सही meter से link करता है।
wrap() के अलावा, tracker में track(response, customerId, metadata) भी है, जो आपके पास पहले से मौजूद response से usage record करता है, और healthCheck() भी है, जो Dodo Payments API reachable होने पर true return करता है।
Wrapper Configuration
wrap() को ये parameters pass करें:
object
आवश्यक
आपका LLM client instance, जैसे OpenAI, Anthropic, Groq या Google GenAI client, या AI SDK functions रखने वाला object, जैसे
{ generateText }।string
आवश्यक
बिल किए जाने वाले customer की Dodo Payments customer ID। यह
cus_ से शुरू होती है।object
प्रत्येक tracking event से attach करने के लिए optional additional data, filtering और analysis हेतु। प्रत्येक value string, number या boolean होनी चाहिए।
inputTokens, outputTokens, totalTokens या model नाम की key tracked value को replace करती है।पूर्ण Configuration Example
यह example एक AI SDK call को track करता है और event मेंprovider metadata attach करता है:
Automatic Tracking: Wrapper provider का response unchanged return करता है, इसलिए आपका code original provider SDK की तरह ही रहता है। यह response return करने से पहले usage event भेजता है, इसलिए प्रत्येक call ingestion request का इंतज़ार करती है, और failed ingestion request wrapped call को throw करा देती है, भले ही provider call सफल रही हो। Streaming responses returned object पर final token counts नहीं रखतीं, इसलिए wrapper उन्हें track नहीं करता।
Supported Providers
Tracker इन providers और SDKs के response formats से token counts पढ़ता है:AI SDK (Vercel)
AI SDK (Vercel)
Vercel AI SDK के साथ usage track करें, जो कई LLM providers के लिए एक interface देता है।Tracked Metrics:
inputTokens→inputTokensoutputTokens+reasoningTokens→outputTokenstotalTokens→totalTokens- Model name: AI SDK results में top-level
modelfield नहीं होता, इसलिए trackerunknownrecord करता है। Model record करने के लिए इसे wrapper केmetadataमेंmodelके रूप में pass करें, जैसा इस example में किया गया है।
जब आप AI SDK के माध्यम से reasoning-capable model का उपयोग करते हैं, जैसे thinking mode वाला Google’s Gemini 2.5 Flash, tracker reported reasoning tokens को
outputTokens में जोड़ता है।OpenRouter
OpenRouter
OpenRouter के unified API के माध्यम से 200+ models में token usage track करें।Tracked Metrics:
prompt_tokens→inputTokenscompletion_tokens→outputTokenstotal_tokens→totalTokens- Model name
OpenAI
OpenAI
OpenAI के GPT models से token usage track करें।Tracked Metrics:
prompt_tokens→inputTokenscompletion_tokens→outputTokenstotal_tokens→totalTokens- Model name
Anthropic Claude
Anthropic Claude
Anthropic के Claude models से token usage track करें।Tracked Metrics:
input_tokens→inputTokensoutput_tokens→outputTokenstotalTokens, जिसकी गणनाinput_tokens+output_tokensके रूप में की जाती है- Model name
Groq
Groq
Groq द्वारा serve किए गए models से token usage track करें।Tracked Metrics:
prompt_tokens→inputTokenscompletion_tokens→outputTokenstotal_tokens→totalTokens- Model name
Google Gemini
Google Gemini
Google GenAI SDK के माध्यम से Google’s Gemini models से token usage track करें।Tracked Metrics:
promptTokenCount→inputTokenscandidatesTokenCount+thoughtsTokenCount→outputTokenstotalTokenCount→totalTokens- Model version,
modelVersionसे
Gemini Thinking Mode: ऐसे Gemini models के लिए जो उत्तर देने से पहले सोचते हैं, जैसे Gemini 2.5 Pro, tracker
thoughtsTokenCount (reasoning tokens) को outputTokens में जोड़ता है, ताकि event model द्वारा बनाए गए पूर्ण output को दर्शाए।उन्नत उपयोग
Multiple Providers
LLM providers के बीच usage को अलग-अलग track करने के लिए प्रत्येक provider के लिए एक tracker बनाएँ:Express.js API Integration
यह Express.js API request करने वाले customer के लिए प्रत्येक chat completion को track करती है। संक्षिप्तता के लिए, यह request body सेuserId पढ़ती है। userId user की Dodo Payments customer ID होनी चाहिए। Production में request body पर भरोसा करने के बजाय इसे authenticated session से पढ़ें।
क्या Track होता है
प्रत्येक tracked call इस structure के साथ Dodo Payments को एक usage event भेजती है:Event Fields
string
इस event के लिए unique identifier। SDK इसे generate करता है।Format:
llm_[timestamp]_[random], जहाँ timestamp milliseconds में समय है और random छह random characters हैं।string
Client को wrap करते समय pass की गई customer ID। Dodo Payments इस customer को बिल करता है।
string
वह event name जो आपके meter को trigger करता है। यह आपके tracker configuration से आता है।
string
ISO 8601 timestamp, जिसे provider के response देने के बाद tracker द्वारा event भेजे जाने पर set किया जाता है।
object
Token usage और additional tracking data:
inputTokens: उपयोग किए गए input (prompt) tokens की संख्या।outputTokens: उपयोग किए गए output (completion) tokens की संख्या, जहाँ लागू हो वहाँ reasoning tokens सहित।totalTokens: कुल tokens (input + output)।model: उपयोग किया गया LLM model, जैसेgpt-4, या यदि response में model का नाम न हो तोunknown।provider: LLM provider, यदि आपने इसे wrapper metadata में शामिल किया हो।- Client को wrap करते समय आपके द्वारा दिया गया कोई भी custom metadata।
Reasoning Tokens: Reasoning capabilities वाले models के लिए
outputTokens में completion tokens और reasoning tokens दोनों शामिल होते हैं।आपका Dodo Payments meter usage और billing की गणना करने के लिए
metadata fields, सामान्यतः inputTokens, outputTokens या totalTokens का उपयोग करता है।