Merran documentation API & integrations
Import a checked file from another app
POST
/api/households/current/import/files/{fileId}/start
const url = 'http://localhost:3000/api/households/current/import/files/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/start';const options = { method: 'POST', headers: { cookie: 'merran.session_token=<merran.session_token>', 'Content-Type': 'application/json' }, body: '{"group":"0199e8b0-5a10-7a01-8b00-000000000019"}'};
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/households/current/import/files/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/start \ --header 'Content-Type: application/json' \ --cookie merran.session_token=<merran.session_token> \ --data '{ "group": "0199e8b0-5a10-7a01-8b00-000000000019" }'Household admins only. Imports a file checked at /households/current/import/files, in the background: follow the job at /households/current/jobs/{jobId}. Recipes an earlier import brought in are skipped.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”fileId
required
string format: uuid
Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
group
Which of a Mealie backup’s groups to import. All of them if left out.
string | null
Example
{ "group": "0199e8b0-5a10-7a01-8b00-000000000019"}Responses
Section titled “Responses”Importing.
Media typeapplication/json
object
id
required
string
kind
required
What it does, like “household.import”.
string
status
required
string
scheduled
required
Whether it comes round on a schedule, like the nightly purge.
boolean
householdId
required
string | null
progress
required
How far it’s got, once it says.
object
done
required
number
total
required
number
result
required
What it did, once it’s done. A job followed item by item, like importing several links, says what it’s done so far as it goes.
object | null
error
required
Why it last failed.
string | null
attempts
required
number
maxAttempts
required
number
runAt
required
Not before then.
string format: date-time
startedAt
required
string | null format: date-time
finishedAt
required
string | null format: date-time
createdAt
required
string format: date-time
Example
{ "id": "0199e8b0-5a10-7a01-8b00-00000000000b", "kind": "household.import", "status": "running", "scheduled": false, "householdId": "0199e8b0-5a10-7a01-8b00-000000000003", "progress": { "done": 42, "total": 128 }, "result": null, "error": null, "attempts": 1, "maxAttempts": 3, "runAt": "2026-10-15T18:30:00.000Z", "startedAt": "2026-10-15T18:30:00.000Z", "finishedAt": null, "createdAt": "2026-10-15T18:30:00.000Z"}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." } }}The file isn’t here any more.
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.