Python - Manual Tracking

Track AI usage when you have direct access to token counts from API responses.

OpenAI Example

manual_openai.py
1from paygent_sdk import Client, UsageData
2from openai import OpenAI
3
4paygent = Client.new_client(os.Getenv("PAYGENT_API_KEY"))
5openai_client = OpenAI(api_key=os.Getenv("OPENAI_API_KEY"))
6
7# Make OpenAI API call
8response = openai_client.chat.completions.create(
9    model="gpt-4o",
10    messages=[{"role": "user", "content": "Explain quantum physics"}]
11)
12
13# Extract usage data
14usage = response.usage
15cached_tokens = 0
16if hasattr(usage, 'prompt_tokens_details'):
17    cached_tokens = usage.prompt_tokens_details.cached_tokens or 0
18
19# Track with Paygent
20usage_data = UsageData(
21    service_provider="OpenAI",
22    model=response.model,
23    prompt_tokens=usage.prompt_tokens,
24    completion_tokens=usage.completion_tokens,
25    cached_tokens=cached_tokens,
26    total_tokens=usage.total_tokens
27)
28
29paygent.send_usage("qa-agent", "customer-456", "question-answered", usage_data)

Automate Onboarding

To simplify your workflow, call client.create_or_get_customer() before tracking usage. This ensures the customer exists in Paygent without needing manual setup in the dashboard.

Gemini Example

manual_gemini.py
1from paygent_sdk import Client, UsageData
2import google.generativeai as genai
3
4paygent = Client.new_client(os.Getenv("PAYGENT_API_KEY"))
5genai.configure(api_key=os.Getenv("GOOGLE_API_KEY"))
6
7# Make Gemini API call
8model = genai.GenerativeModel('gemini-2.0-flash-exp')
9response = model.generate_content('Write a poem about AI')
10
11# Extract usage data
12metadata = response.usage_metadata
13
14# Track with Paygent
15usage_data = UsageData(
16    service_provider="Google DeepMind",
17    model="gemini-2.0-flash-exp",
18    prompt_tokens=metadata.prompt_token_count,
19    completion_tokens=metadata.candidates_token_count,
20    total_tokens=metadata.total_token_count
21)
22
23paygent.send_usage("content-gen", "customer-789", "poem-created", usage_data)

Was this page helpful?

Need help? Contact us at support@withpaygent.com