Merran documentation API & integrations
Whether the server reads aloud
GET
/api/voice
const url = 'http://localhost:3000/api/voice';const options = { method: 'GET', headers: {cookie: 'merran.session_token=<merran.session_token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url http://localhost:3000/api/voice \ --cookie merran.session_token=<merran.session_token>For the cook view: whether the server reads steps aloud for the household (Kokoro, or OpenAI on one of its keys), or each device reads in its own voice. With an API key, it needs the recipes: read permission.
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”The household’s voice.
Media typeapplication/json
object
provider
required
Who the server admin picked to read aloud.
string
on
required
Whether the server reads aloud for this household: false means each device reads in its own voice.
boolean
Example
{ "provider": "kokoro", "on": true}Not signed in.
Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
fields
object
key
additional properties
string
Example
{ "error": { "code": "not_found", "message": "There's nothing here.", "fields": { "name": "Give it a name." } }}Not allowed.
Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
fields
object
key
additional properties
string
Example
{ "error": { "code": "not_found", "message": "There's nothing here.", "fields": { "name": "Give it a name." } }}© 2026 Kyle Johnson. Documentation: CC BY 4.0. Merran: AGPL-3.0-or-later.