July 13, 2026
Kiosk channel and Napster Station, text-only WebSocket sessions, pre-recorded video clips, v2 avatars from a still image, and clearer connection errors
Deploy to a Napster Station with the Kiosk channel
You can now deploy your Omniagent to a Napster Station — a dedicated device for in-person, walk-up conversations in lobbies, retail floors, showrooms, and events. The Station pairs a small screen showing the agent's avatar with a large screen that runs your custom experience, which the agent drives as it talks. You configure it through the kiosk channel.
PUT /public/agents/{agentId}/channels/kiosk— configure the kiosk channel (the experience URL, opening instructions, tools, knowledge, FAQs)- Kiosk conversations are recorded as sessions with
sessionType: "kiosk"
Kiosk requires a Napster Station. See napster.com/station for more details, and contact us to get set up.
See the Kiosk guide for details.
Text-only conversations over WebSocket
WebSocket sessions can now run in a text-only modality — a typed chat with no voice and no avatar. Set modality to "text" when you create a WebSocket connection: the user's messages go in and the agent's text replies come back over the same connection, with no audio streaming.
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": "websocket",
"modality": "text"
}'modality accepts audio (the default) or text, and is also available on POST /public/ws-connections. Text-only is a WebSocket modality, not a separate channel.
See WebSockets — Text sessions and Choosing a Channel for details.
Generate a v2 avatar from a still image
The v2 avatar model now accepts a still image, not only a video. If you don't have a reference video of the person, set version to "v2" and provide a pictureUrl — you get the v2 rendering model without needing to capture and upload video. A reference video (videoUrl) still produces the best lip sync and expressions.
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",
"pictureUrl": "https://example.com/images/sarah.png",
"version": "v2"
}'See Avatar Models for the full comparison.
Pre-recorded video clips
You can now generate a pre-recorded video of your Omniagent's avatar speaking text you provide — a video greeting, a training clip, an onboarding walkthrough, or an announcement. Give it the text and a voice; the API renders a lip-synced, voiced video you can preview, download, and reuse.
curl -X POST https://companion-api.napster.com/public/companions/comp_abc123/recordings \
-H "X-Api-Key: $NAPSTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "openAi",
"voiceId": "alloy",
"text": "Welcome to Acme. Here is everything you need to get started."
}'Recordings are generated asynchronously — poll the recording until its status is completed, then request a time-limited download URL for the video.
POST /public/companions/{companionId}/recordings— start a recordingGET /public/companions/{companionId}/recordingsand…/{recordingId}— list and check statusGET …/{recordingId}/download-url— get the video fileDELETE …/{recordingId}— remove it
See the Video Recordings guide for details.
Clearer errors on invalid connections
Creating a connection with invalid settings — an unsupported voiceId, malformed provider credentials, or a companion that isn't ready — now returns a 400 response with a descriptive error explaining what to fix. Previously such a request could connect and then fail silently; now it is aborted immediately and the reason comes back on the request.
Handle the 400 on your backend before handing a token to the client. See Session Configuration — Handling invalid configuration.