OpenAI Realtime (STS)
Prerequisite
If you haven't set up a voice agent in the Paygent dashboard yet, please follow our setup guide first. You'll need an Agent ID to start tracking.
Track OpenAI's Realtime API usage using the explicit track_openai_sts method. This supports the production-style SDK pattern with full multimodal tracking.
Core Workflow
- Initialize: Create a Paygent Client instance.
- Session Setup: Call
initialize_voice_sessionat the start of the call. - Event Tracking: Feed raw server events to
track_openai_sts. - Finalize: Set the voice indicator with the total session duration.
openai_realtime_sts.py
1import time
2from paygent_sdk import Client
3from paygent_sdk.models import CustomerCreateOrGetRequest
4
5paygent = Client("your-paygent-api-key")
6session_id = f"voice_call_{int(time.time() * 1000)}"
7customer_id = "your-customer-id"
8
9# 1. Ensure Customer exists (Automatic Onboarding)
10paygent.create_or_get_customer(CustomerCreateOrGetRequest(
11 name="Customer Name",
12 external_id=customer_id
13))
14
15# 2. Initialize Voice Session
16paygent.initialize_voice_session(
17 session_id=session_id,
18 agent_id="your-external-agent-id",
19 customer_id=customer_id
20)
21
22# 3. Handle Realtime Events
23async def _on_event(self, event: RealtimeSessionEvent) -> None:
24 if event.type == "audio":
25 ...
26 elif event.type == "audio_interrupted":
27 ...
28 elif event.type == "raw_model_event":
29 # Direct tracking from raw server events
30 # The SDK automatically extracts usage from 'response.done'
31 paygent.track_openai_sts(
32 usage_metadata=event.data,
33 session_id=self.session_id,
34 model="gpt-realtime-2025-08-28"
35 )
36
37# 4. On Session End
38duration_minutes = (time.time() - start_time) / 60.0
39paygent.set_voice_indicator(session_id, indicator_name, duration_minutes)Was this page helpful?
Need help? Contact us at support@withpaygent.com