Overview

Items are the core data objects in Obeya Cloud. Each item belongs to a group on a board and has values for each column.

List Items

List items on a board, optionally filtered by group.
GET /api/trpc/items.list?input={"json":{"boardId":"brd_01HXK5..."}}
Input Parameters:
ParameterTypeRequiredDescription
boardIdstringYesBoard ID
groupIdstringNoFilter by group
cursorstringNoPagination cursor
limitnumberNoResults per page (default: 50, max: 200)
sortBystringNoColumn ID to sort by
sortDirstringNoasc or desc (default: asc)
filtersarrayNoArray of filter conditions
Response:
{
  "result": {
    "data": {
      "json": {
        "items": [
          {
            "id": "itm_01HXK5QJBN3YZXM8KJP2RSNV4C",
            "name": "Implement drag-and-drop",
            "boardId": "brd_01HXK5...",
            "groupId": "grp_01HXK5...",
            "position": 0,
            "createdBy": "usr_01HXK5...",
            "createdAt": "2026-03-01T10:00:00.000Z",
            "updatedAt": "2026-03-19T14:30:00.000Z",
            "values": {
              "col_01HXK5...": { "label": "In Progress", "color": "#f59e0b" },
              "col_01HXK6...": ["usr_01HXK5..."],
              "col_01HXK7...": "2026-03-25T00:00:00.000Z"
            }
          }
        ],
        "nextCursor": "itm_01HXK6..."
      }
    }
  }
}

Get Item

Retrieve a single item with all its values, sub-items, and comments.
GET /api/trpc/items.get?input={"json":{"id":"itm_01HXK5..."}}
Response:
{
  "result": {
    "data": {
      "json": {
        "id": "itm_01HXK5QJBN3YZXM8KJP2RSNV4C",
        "name": "Implement drag-and-drop",
        "description": "Add drag-and-drop support for the board view...",
        "boardId": "brd_01HXK5...",
        "groupId": "grp_01HXK5...",
        "position": 0,
        "values": { ... },
        "subItems": [
          {
            "id": "itm_01HXK6...",
            "name": "Research DnD libraries",
            "values": { ... }
          }
        ],
        "commentCount": 5,
        "fileCount": 2,
        "createdBy": "usr_01HXK5...",
        "createdAt": "2026-03-01T10:00:00.000Z",
        "updatedAt": "2026-03-19T14:30:00.000Z"
      }
    }
  }
}

Create Item

POST /api/trpc/items.create
Request:
{
  "json": {
    "boardId": "brd_01HXK5...",
    "groupId": "grp_01HXK5...",
    "name": "Design new dashboard layout",
    "description": "Create wireframes for the updated dashboard",
    "position": 0,
    "values": {
      "col_01HXK5...": { "label": "To Do", "color": "#6366f1" },
      "col_01HXK6...": ["usr_01HXK5..."],
      "col_01HXK7...": "2026-04-01T00:00:00.000Z"
    }
  }
}
FieldTypeRequiredDescription
boardIdstringYesBoard ID
groupIdstringYesGroup ID
namestringYesItem name (1-500 characters)
descriptionstringNoRich text description
positionnumberNoPosition within group (default: end)
valuesobjectNoInitial column values keyed by column ID
parentIdstringNoParent item ID (for sub-items)

Update Item

POST /api/trpc/items.update
{
  "json": {
    "id": "itm_01HXK5...",
    "name": "Design new dashboard layout (revised)",
    "description": "Updated wireframes with feedback"
  }
}

Set Value

Set a specific column value for an item.
POST /api/trpc/items.setValue
{
  "json": {
    "itemId": "itm_01HXK5...",
    "columnId": "col_01HXK5...",
    "value": { "label": "Done", "color": "#22c55e" }
  }
}
The setValue endpoint triggers real-time updates, automations, and webhook events. Use it instead of bulk updating the values object when changing a single field.

Move Item

Move an item to a different group or board.
POST /api/trpc/items.move
{
  "json": {
    "id": "itm_01HXK5...",
    "groupId": "grp_01HXK6...",
    "position": 0
  }
}
To move to a different board:
{
  "json": {
    "id": "itm_01HXK5...",
    "boardId": "brd_01HXK6...",
    "groupId": "grp_01HXK8...",
    "position": 0
  }
}

Reorder Items

Reorder items within a group.
POST /api/trpc/items.reorder
{
  "json": {
    "groupId": "grp_01HXK5...",
    "itemIds": ["itm_01HXK7...", "itm_01HXK5...", "itm_01HXK6..."]
  }
}

Delete Item

POST /api/trpc/items.delete
{
  "json": {
    "id": "itm_01HXK5..."
  }
}
Items are moved to Trash and can be recovered within 30 days.

Archive Item

POST /api/trpc/items.archive
{
  "json": {
    "id": "itm_01HXK5..."
  }
}

Bulk Operations

Bulk Update

POST /api/trpc/items.bulkUpdate
{
  "json": {
    "itemIds": ["itm_01HXK5...", "itm_01HXK6...", "itm_01HXK7..."],
    "changes": {
      "col_01HXK5...": { "label": "Done", "color": "#22c55e" },
      "col_01HXK6...": ["usr_01HXK5..."]
    }
  }
}

Bulk Delete

POST /api/trpc/items.bulkDelete
{
  "json": {
    "itemIds": ["itm_01HXK5...", "itm_01HXK6..."]
  }
}
Bulk operations are limited to 100 items per request to prevent timeout issues.