Merran documentation API & integrations
AI photos across the library
GET
/api/recipes/photos
const url = 'http://localhost:3000/api/recipes/photos';const options = { method: 'GET', 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 GET \ --url http://localhost:3000/api/recipes/photos \ --cookie merran.session_token=<merran.session_token>How many recipes have no photo, whether AI photos can be made for the household and why not, its photo style, and the latest run making them. With an API key, it needs the recipes: read permission.
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”The library.
Media typeapplication/json
object
missing
required
Recipes without a photo.
integer
ready
required
Whether AI photos can be made for the household now.
boolean
why
required
Why not: turned off on the server, or no OpenAI or Google key for the household.
string | null
style
required
How the household’s photos look; change it at PATCH /settings/household (photos.style).
string
run
required
Any of:
object
id
required
string
status
required
string
total
required
integer
done
required
integer
made
required
integer
failed
required
integer
stopped
required
Why it stopped before the end, when it did.
string | null
startedAt
required
string | null format: date-time
finishedAt
required
string | null format: date-time
null
Example
{ "missing": 30, "ready": true, "why": null, "style": "marble", "run": { "id": "0199e8b0-5a10-7a01-8b00-000000000033", "status": "running", "total": 30, "done": 8, "made": 8, "failed": 0, "stopped": null, "startedAt": "2026-10-15T18: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." } }}© 2026 Kyle Johnson. Documentation: CC BY 4.0. Merran: AGPL-3.0-or-later.