Skip to content
merran
GitHubInstall

Merran documentation API & integrations

Change the server's settings

PATCH
/api/settings/server
curl --request PATCH \
--url http://localhost:3000/api/settings/server \
--header 'Content-Type: application/json' \
--cookie merran.session_token=<merran.session_token> \
--data '{ "errorTracking.environment": "home", "errorTracking.dsn": null }'

Server admins only. Send only what changes. Nothing is saved if anything is wrong, and settings from environment variables can’t be changed.

Media typeapplication/json

New values by key. Null puts a setting back to its default, and deletes a secret.

object
key
additional properties

Example

{
"errorTracking.environment": "home",
"errorTracking.dsn": null
}

Saved.

Media typeapplication/json
object
about
required
object
version
required
string
installMethod
required
string
Allowed values: source docker
database
required
string
Allowed values: sqlite postgres
publicUrl
required
string | null
settings
required
Array<object>
object
key
required
string
kind
required
string
Allowed values: text number switch choice list secret json
value

Its value, or null for a secret or a setting that isn’t set.

default
source
required
string
Allowed values: default saved environment
lockedBy
required

The environment variable that sets it, which means it can’t be changed here.

string | null
secret
object
set
required
boolean
hint
required

Its last four characters, when it’s long enough.

string | null
unreadable
required

Sealed with another master key, so it needs entering again.

boolean
choices
Array<string>
video
required

Video import’s tools, by their versions, or null when they aren’t there; and whether there’s a cookies.txt for sites that want a signed-in session.

object
ytDlp
required
string | null
ffmpeg
required
string | null
cookies
required
boolean
sites
required

The recipe sites Merran reads, the recipes it has from them, how many of the starter collections’ classics open, and when a site was last read.

object
sites
required
number
recipes
required
number
classics
required
object
working
required
number
all
required
number
readAt
required
string | null format: date-time
kroger
required

The redirect address to give the Kroger developer app: null without a public address set, when it’s this server’s address and /api/stores/kroger/callback.

object
redirectUri
required
string | null

Example

{
"about": {
"version": "0.1.0",
"installMethod": "docker",
"database": "sqlite",
"publicUrl": "https://merran.example.com"
},
"settings": [
{
"key": "errorTracking.environment",
"kind": "text",
"value": "home",
"default": "production",
"source": "saved",
"lockedBy": null
},
{
"key": "errorTracking.dsn",
"kind": "secret",
"value": null,
"default": null,
"source": "environment",
"lockedBy": "MERRAN_SENTRY_DSN",
"secret": {
"set": true,
"hint": "4f2a",
"unreadable": false
}
}
],
"video": {
"ytDlp": "2026.08.19",
"ffmpeg": "8.0",
"cookies": false
},
"sites": {
"sites": 12,
"recipes": 214,
"classics": {
"working": 71,
"all": 73
},
"readAt": "2026-10-15T18:30:00.000Z"
},
"kroger": {
"redirectUri": "https://merran.example.com/api/stores/kroger/callback"
}
}

Something isn’t right, field by field.

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 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.