Merran documentation API & integrations
Stop a tidy up run
POST
/api/recipes/tidy/{runId}/stop
const url = 'http://localhost:3000/api/recipes/tidy/0199e8b0-5a10-7a01-8b00-00000000002a/stop';const options = { method: 'POST', 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 POST \ --url http://localhost:3000/api/recipes/tidy/0199e8b0-5a10-7a01-8b00-00000000002a/stop \ --cookie merran.session_token=<merran.session_token>The suggestions it made stay in Review. The recipe it’s on finishes first, so the answer may still say it’s running. With an API key, it needs the recipes: write permission.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”runId
required
string
Example
0199e8b0-5a10-7a01-8b00-00000000002aResponses
Section titled “Responses”Stopped, or stopping.
Media typeapplication/json
object
id
required
string
status
required
string
library
required
Every recipe not tidied yet, rather than ones picked.
boolean
total
required
number
done
required
number
suggested
required
Recipes with suggestions waiting in Review.
number
fine
required
Recipes with nothing to change.
number
failed
required
number
stopped
required
Why it stopped before the end, when it did: no AI, this month’s limit, no credit, or three failures in a row.
string | null
startedAt
required
string | null format: date-time
finishedAt
required
string | null format: date-time
Example
{ "id": "0199e8b0-5a10-7a01-8b00-00000000002a", "status": "running", "library": true, "total": 52, "done": 12, "suggested": 9, "fine": 3, "failed": 0, "stopped": null, "startedAt": "2026-10-01T17:30:00.000Z", "finishedAt": null}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." } }}No such run in this household.
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." } }}It has already finished.
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.