One API and one console in front of a conversation stack. This page is the map. For each capability it names the model that serves it, the endpoint you call, where it lives in the console, and — at the bottom — where it stops today. Nothing here is a roadmap. If it is on this page it is running.

Realtime interaction

The centre of the platform. A live session is one socket carrying audio in both directions, with turn-taking handled by the server. Live is audio in, audio out, one model. There is no transcribe-then-think-then-speak round trip, and barge-in, end-of-turn detection and cancellation happen on the server rather than in your client. Transcripts of both sides arrive on the same socket as the audio. See Live. Duet is not a separate endpoint. It is two live sessions with each one’s output piped into the other’s input, which is how a persona gets tested against a difficult counterpart before a customer meets one. It bills as two sessions and holds two connections. See Duet. Translation is its own session type rather than a prompt, because a conversational session carries a persona that answers you instead of interpreting you. See Live translation.

Speech

Synthesis takes up to 4,096 characters per request, at 0.25× to 4× speed, and returns mp3, wav or pcm. Transcription returns json, text or verbose_json; only verbose_json carries speakers, timings, per-segment confidence and the audibility read that says whether a turn was on mic, off mic, or too faint to trust. srt and vtt are in the request schema and no backend serves them — build the caption file from segments. See Speech to text. A voice is a resource, not a string. Cloned or built-in, it resolves to stored reference audio, and the same voice_id works in synthesis, in a live session and in interpretation. That id comes from GET /v1/voices and looks like ev_1a2b3c4d for both kinds; the display name beside it is not an id, and sending one — "voice": "nur" — answers 400 unknown_voice. See Voices.

What a session leaves behind

Every live conversation — browser, native client, one half of a duet, an interpretation — is the same kind of record, so tooling written against one works against all of them. Nur Live also has a private, per-account memory that is off until you turn it on. Only facts you keep enter a conversation; suggestions never do. See Memory.

The model catalog

Every backend is opt-in per environment, so a deployment advertises only what it can actually serve. The two ways an id can fail are different answers: an id no catalog entry has is 404 model_not_found, while a real id whose backend is not wired up here is 503 model_unavailable — a deployment fact rather than something you can fix in the request. Read the catalog rather than hardcoding an id:
Each id also has an unversioned spelling — nur-tts for nur-tts-v1 — which resolves but follows whatever version is current. Pin the one you tested against. See Models.

What it costs

Audio is metered at $0.001 per minute, the same rate for synthesis, transcription and realtime. A voice clone costs 100 credits. nur-llm-v1 is not metered today. One credit is one US cent, credits are prepaid, and an exhausted balance answers 429 insufficient_quota on paid models — including minutes into an established live session, because the balance is re-checked while a call is up. New accounts get a one-time grant worth 1,440 minutes of audio. It does not renew. See Pricing and limits.

Where it stops today

The parts worth knowing before you design around them.
POST /v1/audio/speech supports phrase-incremental synthesis with nur-tts-v1, response_format: "pcm" and stream_format: "sse". Audio deltas are signed PCM16 at 24 kHz, mono. MP3 and WAV still require complete-file synthesis; SSE only changes their framing. Live sessions stream model-generated phrases through the same speech engine. See Latency.
Speaker separation needs enough continuous speech per voice to be confident. On a file of two-second fragments it will sometimes split one person in two. The model handles roughly 90 minutes in a pass, but the serving GPU sets the real ceiling — about 20 minutes per file on current production hardware. Split longer recordings at silence boundaries.
The serving backend pins its pipeline rate and resamples whatever arrives as if it were already 16 kHz. Sending 24 kHz audio raises no error — it plays back fast and transcription accuracy collapses. It presents as a bad model. See Live.
Every audio response the API returns is marked as machine-generated, in a response header and in the container. It survives copying a file; it does not survive a re-encode. Use it to know audio came from here. Do not use it to prove audio found elsewhere is synthetic. See Synthetic audio.

Next

Realtime interaction

Which live surface to pick, and what they share.

Quickstart

A key, a synthesized line, and a live conversation.