Skip to content
merran
GitHubInstall

Merran documentation API & integrations

The newest recipes from followed sites

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

Up to 24, newest first, from every site the household follows: for Recipes’ spotlight and Today’s idea for tonight. With an API key, it needs the recipes: read permission.

Their newest recipes.

Media typeapplication/json
object
recipes
required
Array<object>
object
id
required
string
url
required

The recipe’s page, to import at POST /recipes/import.

string
name
required
string
site
required
string
description
required

The recipe’s own short description, when the site gives one.

string | null
minutes
required
number | null
courses
required

What its site says it is, in Merran’s words; empty when it doesn’t say.

Array<string>
Allowed values: main side soup salad dessert baking breakfast snack drink sauce
photo
required

A small copy of its photo, through Merran.

string | null
publishedAt
required
string | null format: date-time
inLibrary
required

The household’s recipe from it, if it has one.

object
slug
required
string
name
required
string
suits
required

False when it has a food the household avoids, or is off its diets.

boolean

Example

{
"recipes": [
{
"id": "0199e8b0-5a10-7a01-8b00-000000000031",
"url": "https://www.recipetineats.com/honey-garlic-chicken/",
"name": "Honey Garlic Chicken",
"site": "RecipeTin Eats",
"description": "Juicy chicken in a sticky honey garlic sauce, in 12 minutes.",
"minutes": 12,
"courses": [
"main"
],
"photo": "/api/sites/recipes/0199e8b0-5a10-7a01-8b00-000000000031/photo",
"publishedAt": "2026-10-01T17:30:00.000Z",
"inLibrary": null,
"suits": true
},
{
"id": "0199e8b0-5a10-7a01-8b00-000000000032",
"url": "https://www.recipetineats.com/lemon-chicken/",
"name": "Lemon Chicken",
"site": "RecipeTin Eats",
"description": null,
"minutes": 35,
"courses": [
"main"
],
"photo": "/api/sites/recipes/0199e8b0-5a10-7a01-8b00-000000000031/photo",
"publishedAt": "2026-10-01T17:30:00.000Z",
"inLibrary": {
"slug": "lemon-chicken",
"name": "Lemon Chicken"
},
"suits": 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.