Change settings
PUT
/v1/settings
const url = 'https://your-machine.your-tailnet.ts.net/v1/settings';const options = { method: 'PUT', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"geminiApiKey":"example","geminiModel":"example","publicUrl":"https://example.com","webhookUrl":"https://example.com","docsUrl":"https://example.com","incomingStreamUrl":"example","incomingStreamFormat":"raw"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://your-machine.your-tailnet.ts.net/v1/settings \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "geminiApiKey": "example", "geminiModel": "example", "publicUrl": "https://example.com", "webhookUrl": "https://example.com", "docsUrl": "https://example.com", "incomingStreamUrl": "example", "incomingStreamFormat": "raw" }'Send only the fields to change. An empty string clears a value (back to the .env default).
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
geminiApiKey
string
geminiModel
string
publicUrl
string format: uri
webhookUrl
Receives every call event.
string format: uri
docsUrl
string format: uri
incomingStreamUrl
ws:// or wss://. Every incoming call is answered and streamed here.
string
incomingStreamFormat
raw: 16 kHz s16le binary frames. twilio: Twilio Media Streams JSON with 8 kHz mu-law,
compatible with Twilio integrations such as Pipecat’s.
string
Responses
Section titled “Responses”Saved settings.
Media typeapplication/json
object
settings
object
publicUrl
string | null
webhookUrl
string | null
docsUrl
string | null
incomingStreamUrl
string | null
incomingStreamFormat
raw: 16 kHz s16le binary frames. twilio: Twilio Media Streams JSON with 8 kHz mu-law,
compatible with Twilio integrations such as Pipecat’s.
string
geminiModel
string | null
geminiApiKey
object
configured
boolean
hint
string | null
source
string | null
Example
{ "settings": { "incomingStreamFormat": "raw", "geminiApiKey": { "hint": "…PEXg", "source": "console" } }}The request didn’t validate.
Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
issues
Validation details
Array
Example
{ "error": { "code": "VALIDATION_ERROR", "message": "invalid request", "issues": [] }}