Skip to content
merran
GitHubInstall

Merran documentation API & integrations

The server's settings

GET
/api/settings/server
curl --request GET \
--url http://localhost:3000/api/settings/server \
--cookie merran.session_token=<merran.session_token>

Server admins only. Every server setting that can be seen here, with where its value comes from, and a little about the server.

The settings.

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"
}
}

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.