June 26, 2026
Session cost, opening instructions, and v2 digital twins that take voice from the reference video
Session cost
Session records now include a cost field — the billed cost of the session in USD, calculated from the minutes the agent was active and your API key's model configuration.
cost is returned on both GET /public/sessions and GET /public/sessions/{sessionId}. It is null while a session is pending or started, and is populated once the session closes and billing is finalized.
Use it to attribute spend per session, per companion, or per end user — list sessions and sum cost, filtering by companionId or externalClientId.
See the Sessions guide — Session cost for details.
Give the agent opening instructions
You can now instruct the agent on how to start a session, before the user speaks. Pass initialSpeech with guidance for how it should open that conversation — it's an instruction the agent follows in its own voice, not a verbatim line to read.
curl -X POST https://companion-api.napster.com/public/agents/agent_abc123/connections \
-H "X-Api-Key: $NAPSTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"channelType": "webrtc",
"initialSpeech": "Greet the customer warmly, introduce yourself as Acme Support, and ask what they need help with."
}'initialSpeech is available on every connection endpoint (POST /public/agents/{agentId}/connections, POST /public/connections, POST /public/ws-connections) and on the channel config (PUT /public/agents/{agentId}/channels/{channelType}) to set a default for every session on a channel.
See Session Configuration — Opening instructions for details.
v2 digital twins can take voice from the video
When you create a v2 digital twin from a video that includes audio, the voice is now cloned from the video's own audio track — you no longer need to provide a separate voice recording. voiceUrl becomes optional for v2: pass a videoUrl with clear speech and it supplies both the appearance and the voice.
curl -X POST https://companion-api.napster.com/public/digital-twins \
-H "X-Api-Key: $NAPSTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"firstName": "Sarah",
"lastName": "Johnson",
"description": "VP of Customer Success at Acme Corp.",
"gender": "female",
"ethnicity": "Caucasian",
"externalClientId": "sarah-johnson-001",
"videoUrl": "https://example.com/videos/sarah-speaking.mp4",
"version": "v2"
}'Providing a separate voiceUrl is still supported — use it when you want to clone the voice from a different or higher-quality recording than the video's audio.
See the Digital Twins guide for details.