Menu

Lists

Shopping and to-do lists and their items.

List lists#

GET/workspaces/{workspaceId}/listsscope lists:readMCP list_lists

All shopping and to-do lists of the workspace, oldest first (like in the app).

Path#

FieldTypeDescription
workspaceIdstringWorkspace id (from list_workspaces).

Request#

Shell
curl "https://api.lifebutler.io/v1/workspaces/f8Hn3wQz0a/lists" \
  -H "Authorization: Bearer $LIFEBUTLER_KEY"

Response 200#

FieldTypeDescription
dataarray of List
data[].idstring
data[].namestring
data[].typeshopping \todo
data[].openCountintegerItems not ticked off yet.
data[].createdAtstring or null
JSON
{
  "data": [
    {
      "id": "Ab3Cd5Ef7G",
      "name": "Einkauf",
      "type": "shopping",
      "openCount": 3,
      "createdAt": "2026-11-20T19:30:00+01:00"
    }
  ]
}

Create a list#

POST/workspaces/{workspaceId}/listsscope lists:writeMCP create_list

A new, empty list.

Path#

FieldTypeDescription
workspaceIdstringWorkspace id (from list_workspaces).

Body#

FieldTypeDescription
name (required)string
typeshopping \todoDefault: "shopping".

Request#

Shell
curl -X POST "https://api.lifebutler.io/v1/workspaces/f8Hn3wQz0a/lists" \
  -H "Authorization: Bearer $LIFEBUTLER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Einkauf"}'

Response 201#

FieldTypeDescription
idstring
namestring
typeshopping \todo
openCountintegerItems not ticked off yet.
createdAtstring or null
JSON
{
  "id": "Ab3Cd5Ef7G",
  "name": "Einkauf",
  "type": "shopping",
  "openCount": 3,
  "createdAt": "2026-11-20T19:30:00+01:00"
}

Rename a list#

PATCH/workspaces/{workspaceId}/lists/{listId}scope lists:writeMCP update_list

Changes the list's name.

Path#

FieldTypeDescription
workspaceIdstringWorkspace id (from list_workspaces).
listIdstring

Body#

FieldTypeDescription
name (required)string

Request#

Shell
curl -X PATCH "https://api.lifebutler.io/v1/workspaces/f8Hn3wQz0a/lists/Ls2Wq7Hd5N" \
  -H "Authorization: Bearer $LIFEBUTLER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Einkauf"}'

Response 200#

FieldTypeDescription
idstring
namestring
typeshopping \todo
openCountintegerItems not ticked off yet.
createdAtstring or null
JSON
{
  "id": "Ab3Cd5Ef7G",
  "name": "Einkauf",
  "type": "shopping",
  "openCount": 3,
  "createdAt": "2026-11-20T19:30:00+01:00"
}

Delete a list#

DELETE/workspaces/{workspaceId}/lists/{listId}scope lists:writeMCP delete_list

Deletes the list with all its items.

Path#

FieldTypeDescription
workspaceIdstringWorkspace id (from list_workspaces).
listIdstring

Request#

Shell
curl -X DELETE "https://api.lifebutler.io/v1/workspaces/f8Hn3wQz0a/lists/Ls2Wq7Hd5N" \
  -H "Authorization: Bearer $LIFEBUTLER_KEY"

Response 200#

FieldTypeDescription
idstring
deletedtrue
JSON
{
  "id": "Ab3Cd5Ef7G",
  "deleted": false
}

List items#

GET/workspaces/{workspaceId}/lists/{listId}/itemsscope lists:readMCP list_items

The items of a list, newest first. Ticked-off items only with includeChecked.

Path#

FieldTypeDescription
workspaceIdstringWorkspace id (from list_workspaces).
listIdstring

Query#

FieldTypeDescription
includeCheckedboolean or true \falseAlso return ticked-off items.

Request#

Shell
curl "https://api.lifebutler.io/v1/workspaces/f8Hn3wQz0a/lists/Ls2Wq7Hd5N/items" \
  -H "Authorization: Bearer $LIFEBUTLER_KEY"

Response 200#

FieldTypeDescription
listListA shared list (shopping or to-do).
list.idstring
list.namestring
list.typeshopping \todo
list.openCountintegerItems not ticked off yet.
list.createdAtstring or null
dataarray of ListItem
data[].idstring
data[].textstring
data[].checkedboolean
data[].categorystringShopping aisle (dairy, produce, …) or other.
data[].createdBystring or null
data[].checkedBystring or null
data[].createdAtstring or null
JSON
{
  "list": {
    "id": "Ab3Cd5Ef7G",
    "name": "Einkauf",
    "type": "shopping",
    "openCount": 3,
    "createdAt": "2026-11-20T19:30:00+01:00"
  },
  "data": [
    {
      "id": "Ab3Cd5Ef7G",
      "text": "Milch",
      "checked": false,
      "category": "string",
      "createdBy": "string",
      "checkedBy": "string",
      "createdAt": "2026-11-20T19:30:00+01:00"
    }
  ]
}

Add items#

POST/workspaces/{workspaceId}/lists/{listId}/itemsscope lists:writeMCP add_items

Adds one or more items, e.g. ["Milch", "Eier (10)"].

Path#

FieldTypeDescription
workspaceIdstringWorkspace id (from list_workspaces).
listIdstring

Body#

FieldTypeDescription
items (required)array of string

Request#

Shell
curl -X POST "https://api.lifebutler.io/v1/workspaces/f8Hn3wQz0a/lists/Ls2Wq7Hd5N/items" \
  -H "Authorization: Bearer $LIFEBUTLER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"items": ["string"]}'

Response 201#

FieldTypeDescription
dataarray of ListItem
data[].idstring
data[].textstring
data[].checkedboolean
data[].categorystringShopping aisle (dairy, produce, …) or other.
data[].createdBystring or null
data[].checkedBystring or null
data[].createdAtstring or null
JSON
{
  "data": [
    {
      "id": "Ab3Cd5Ef7G",
      "text": "Milch",
      "checked": false,
      "category": "string",
      "createdBy": "string",
      "checkedBy": "string",
      "createdAt": "2026-11-20T19:30:00+01:00"
    }
  ]
}

Change or tick off an item#

PATCH/workspaces/{workspaceId}/lists/{listId}/items/{itemId}scope lists:writeMCP update_item

Send checked: true to tick an item off (false to untick), text to rename it.

Path#

FieldTypeDescription
workspaceIdstringWorkspace id (from list_workspaces).
listIdstring
itemIdstring

Body#

FieldTypeDescription
textstring
checkedboolean

Request#

Shell
curl -X PATCH "https://api.lifebutler.io/v1/workspaces/f8Hn3wQz0a/lists/Ls2Wq7Hd5N/items/It9Fv3Jb6M" \
  -H "Authorization: Bearer $LIFEBUTLER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"checked": false}'

Response 200#

FieldTypeDescription
idstring
textstring
checkedboolean
categorystringShopping aisle (dairy, produce, …) or other.
createdBystring or null
checkedBystring or null
createdAtstring or null
JSON
{
  "id": "Ab3Cd5Ef7G",
  "text": "Milch",
  "checked": false,
  "category": "string",
  "createdBy": "string",
  "checkedBy": "string",
  "createdAt": "2026-11-20T19:30:00+01:00"
}

Remove an item#

DELETE/workspaces/{workspaceId}/lists/{listId}/items/{itemId}scope lists:writeMCP delete_item

Removes the item from the list.

Path#

FieldTypeDescription
workspaceIdstringWorkspace id (from list_workspaces).
listIdstring
itemIdstring

Request#

Shell
curl -X DELETE "https://api.lifebutler.io/v1/workspaces/f8Hn3wQz0a/lists/Ls2Wq7Hd5N/items/It9Fv3Jb6M" \
  -H "Authorization: Bearer $LIFEBUTLER_KEY"

Response 200#

FieldTypeDescription
idstring
deletedtrue
JSON
{
  "id": "Ab3Cd5Ef7G",
  "deleted": false
}