Kiosk
Deploy your Omniagent to a Napster Station for in-person, walk-up conversations
Kiosk puts your Omniagent on a Napster Station — a dedicated device for in-person, walk-up conversations in places like lobbies, retail floors, showrooms, and events. Unlike the other channels, kiosk runs on Napster hardware rather than a client you build and host.
Kiosk requires a Napster Station. See napster.com/station for more details, and contact us to get set up.
How a Station works
The agent screen and the experience screen
The experience
The branded app you build, host, and name in the config
Setting up kiosk
Create an agent, configure the channel, pair the Station
Channel overrides
Kiosk-specific settings, tools, knowledge, and timeout
Managing the kiosk channel
Get or remove the kiosk channel config
Reviewing kiosk conversations
Kiosk sessions in the Sessions API with transcripts
How a Station works
A Napster Station has two screens:
- The experience screen — a large display that runs your experience: a custom, branded app the agent presents and drives. In a retail mall, for instance, this is where a visitor sees products, wayfinding, or promotions.
- The agent screen — a smaller display embedded in the Station that shows the agent's avatar. This is who the visitor talks to.
A visitor speaks to the agent on the small screen, and the agent drives the experience on the large screen — surfacing the right content as the conversation unfolds.
The experience
The experience is a separate application you build and host — it isn't generated by Napster. Because it's bespoke to your Station and use case, building and wiring up the experience is done together with the Napster team. Contact us for the details, at least for now.
When you set up the kiosk channel, you define your experience — its name (the theme field) and the URL where it's hosted (the url field) — alongside the usual agent settings.
Setting up kiosk
Create an agent
If you don't already have one, create an agent. See Building Your Omniagent for the full walkthrough.
curl -X POST https://companion-api.napster.com/public/agents \
-H "X-Api-Key: $NAPSTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"companionId": "comp_abc123",
"name": "Lobby Concierge",
"voiceId": "alloy",
"providerSettings": {
"temperature": 0.7
}
}'Configure the kiosk channel
Call PUT /public/agents/{agentId}/channels/kiosk. Name the experience with theme, point the channel at it with url, and use initialSpeech to tell the agent how to open with each visitor.
curl -X PUT https://companion-api.napster.com/public/agents/agent_abc123/channels/kiosk \
-H "X-Api-Key: $NAPSTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"theme": "Lobby Concierge",
"url": "https://experiences.example.com/lobby-concierge",
"initialSpeech": "Welcome the visitor and offer to help them find their way around."
}'Pair the Station
Pairing the physical Station with your agent — and deploying your experience to it — is handled during setup with the Napster team. Once paired, the Station runs your agent and experience.
Channel overrides
You can override the agent's default settings specifically for the kiosk. Include any of these fields when configuring the channel:
curl -X PUT https://companion-api.napster.com/public/agents/agent_abc123/channels/kiosk \
-H "X-Api-Key: $NAPSTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"theme": "Exhibit Guide",
"url": "https://experiences.example.com/exhibit",
"initialSpeech": "Welcome the visitor to the exhibit and ask what they would like to explore.",
"functions": ["fn_kiosk_directory"],
"faqCollections": ["faq_venue_info"]
}'| Field | Description |
|---|---|
theme | The name of the experience that runs on the Station's main screen |
url | The hosted URL of the experience that runs on the Station's main screen |
initialSpeech | Instructions for how the agent should open with each visitor — see Session Configuration — Opening instructions |
providerSettings | Override temperature, turn detection, and noise reduction for the kiosk |
functions | Use different tools on the kiosk than on other channels |
faqCollections | Use different FAQs on the kiosk |
knowledgeBaseId | Use a different knowledge base on the kiosk |
useWebSearch | Enable or disable web search on the kiosk |
idleTimeoutSeconds | How long to wait before ending an inactive conversation and resetting for the next visitor |
If omitted, the agent's base configuration is used.
Managing the kiosk channel
# Get current kiosk config
curl https://companion-api.napster.com/public/agents/agent_abc123/channels/kiosk \
-H "X-Api-Key: $NAPSTER_API_KEY"
# Remove kiosk channel
curl -X DELETE https://companion-api.napster.com/public/agents/agent_abc123/channels/kiosk \
-H "X-Api-Key: $NAPSTER_API_KEY"Reviewing kiosk conversations
Every kiosk interaction is captured as a session. List them and filter by type in the Sessions API — the sessionType is kiosk, and each record includes timing, cost, and the full transcript. Because walk-up visitors are anonymous, kiosk sessions typically have no externalClientId.