Skip to content
merran
GitHubInstall

Merran documentation API & integrations

What changes, as it happens

GET
/api/events
curl --request GET \
--url 'http://localhost:3000/api/events?page=list' \
--cookie merran.session_token=<merran.session_token>

Server-sent events for the household, for as long as the connection stays open:

  • ready when it’s open, with the areas it hears about.
  • plan, list, pantry, recipes or household when something there changes, with who changed it (by). Fetch the area again to see what.
  • presence with who has page open, when someone opens or leaves it.
  • ping now and then, to keep the connection open.

A device that sends the same client with its own changes (in the X-Merran-Client header) isn’t told about them; your other devices are. An API key hears about the areas it can read. With an API key, it needs the any: read permission.

page

The page open, to say who else has it open.

string
Allowed values: list plan

The page open, to say who else has it open.

client

This device’s id, as sent with its changes.

string
<= 64 characters

This device’s id, as sent with its changes.

The events, until the connection closes.

Media typetext/event-stream
string

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.