Merran documentation API & integrations
Add to what a recipe goes with
const url = 'http://localhost:3000/api/recipes/lemon-chicken/pairings';const options = { method: 'POST', headers: { cookie: 'merran.session_token=<merran.session_token>', 'Content-Type': 'application/json' }, body: '{"recipes":["garlic-rice"]}'};
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/lemon-chicken/pairings \ --header 'Content-Type: application/json' \ --cookie merran.session_token=<merran.session_token> \ --data '{ "recipes": [ "garlic-rice" ] }'Recipes, or every recipe with a tag, so new ones join by themselves. Ones it already goes with, and the recipe itself, are skipped. With an API key, it needs the recipes: write permission.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The recipe’s id, or its slug.
Example
lemon-chickenThe recipe’s id, or its slug.
Request Bodyrequired
Section titled “Request Bodyrequired”object
Recipes it goes with, by id or slug.
Or every recipe with this tag, now and later.
Example
{ "recipes": [ "garlic-rice" ]}Responses
Section titled “Responses”What it goes with now.
object
What it goes with, as set.
object
object
Its card-sized photo, or null.
object
Every recipe with this tag.
Every recipe that adds up to: picked ones first, then tagged ones by name.
object
Its card-sized photo, or null.
Recipes it’s offered with: the other way round.
object
Its card-sized photo, or null.
Example
{ "pairings": [ { "id": "0199e8b0-5a10-7a01-8b00-00000000000e", "kind": "recipe", "recipe": { "id": "0199e8b0-5a10-7a01-8b00-000000000007", "slug": "garlic-rice", "name": "Garlic Rice", "photo": null, "servings": 4, "totalMinutes": 25 } }, { "id": "0199e8b0-5a10-7a01-8b00-00000000000f", "kind": "tag", "tag": "salad" } ], "options": [ { "id": "0199e8b0-5a10-7a01-8b00-000000000007", "slug": "garlic-rice", "name": "Garlic Rice", "photo": null, "servings": 4, "totalMinutes": 25 } ], "pairsWith": []}Nothing picked, or no tag by that name.
object
object
object
Example
{ "error": { "code": "not_found", "message": "There's nothing here.", "fields": { "name": "Give it a name." } }}Not signed in.
object
object
object
Example
{ "error": { "code": "not_found", "message": "There's nothing here.", "fields": { "name": "Give it a name." } }}Not allowed.
object
object
object
Example
{ "error": { "code": "not_found", "message": "There's nothing here.", "fields": { "name": "Give it a name." } }}No such recipe, or one of those to pair isn’t there.
object
object
object
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.