Endpoints
OpenAI’s model names still resolve to Nur, so a ported app runs before
you touch it. Switch to
nur-v1 before you ship, so a
future model change is your decision.
Three differences to handle
Voices are ids. OpenAI has a fixed set of named voices. Here every voice, built-in or cloned, has an id likeev_d116d96b; list them with
GET /v1/voices. OpenAI names such as alloy still work and map to the
default voice, so they do not pick different voices. An unknown name is a
400, never audio in the wrong voice.
Audio formats. nur-v1 returns mp3 (the default), wav or pcm.
Other formats are a 400 that lists the ones you can use.
Realtime events. The server sends the current OpenAI event names, such as
response.output_audio.delta. It also sends a few eesi.* events (a session
id for reconnecting, a synthetic-audio notice, a recording disclosure). An
OpenAI client can ignore them safely.
What EESI adds
Extra fields on the same requests, ignored by clients that don’t send them:
Every audio response carries an
X-Synthetic-Audio header declaring it
machine-generated.
Some features have no OpenAI equivalent, so you call them directly with the
same key: voice cloning,
Live translation and
Audio intelligence.