> ## Documentation Index
> Fetch the complete documentation index at: https://ekso.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# DataItem

> Work item — a ticket, task, story, change request, or any unit of work.

Work item — a ticket, task, story, change request, or any unit of work. The core primitive of Ekso. Items live inside a container, carry process-defined values in `field`, time history in `time`, and free-form metadata in `meta`. Every human attribute (name, description, status, priority, …) lives in `field` rather than as a top-level property.

## Sample JSON

Copy, edit, paste. Server-set fields (`id`, `created`, `tenantId`, …) are omitted from the example — they're populated by the server on response.

```json theme={null}
{
  "containerId": "container_01HCONTAINER_FEN",
  "processId": "process_01HPROCESS_DEFAULT",
  "boardId": "board_01HBOARD_FEN",
  "cycleId": "cycle_01HCYCLE_SPRINT_42",
  "resourceType": "User",
  "resourceId": "user_01HUSER_ASSIGNEE",
  "dateOpened": "2026-04-15T09:30:00Z",
  "field": [
    {
      "id": "field_01HFIELD_NAME",
      "data": "Investigate intermittent timeout in login flow"
    },
    {
      "id": "field_01HFIELD_DESCRIPTION",
      "data": "Customers report 500 errors after 30s of inactivity. Repro on Safari 17 + 3G throttling."
    },
    {
      "id": "field_01HFIELD_STATUS",
      "data": "fielddata_01HSTATUS_OPEN"
    },
    {
      "id": "field_01HFIELD_PRIORITY",
      "data": "fielddata_01HPRIORITY_HIGH"
    },
    {
      "id": "field_01HFIELD_SEVERITY",
      "data": "fielddata_01HSEVERITY_MAJOR"
    },
    {
      "id": "field_01HFIELD_RESOLUTION",
      "data": "fielddata_01HRESOLUTION_UNRESOLVED"
    },
    {
      "id": "field_01HFIELD_AREA",
      "data": "area_01HAREA_BACKEND"
    },
    {
      "id": "field_01HFIELD_PERCENTCOMPLETE",
      "data": "25"
    },
    {
      "id": "field_01HFIELD_WORKESTIMATE",
      "data": "4h 30m"
    },
    {
      "id": "field_01HFIELD_OWNEDBY",
      "data": "user_01HUSER_ASSIGNEE"
    },
    {
      "id": "field_01HFIELD_SKU",
      "data": "sku_01HSKU_DEV_HOURS"
    }
  ],
  "time": [
    {
      "userId": "user_01HUSER_ASSIGNEE",
      "dated": "2026-04-29T14:30:00Z",
      "timeLogged": "2h 15m",
      "comment": "Initial triage and reproduction.",
      "timeTypeId": "timetype_01HTIMETYPE_BILLABLE",
      "status": "Pending"
    }
  ],
  "meta": [
    {
      "key": "external_url",
      "value": "https://acme.example.com/tickets/T-1234"
    }
  ]
}
```

## What Ekso fills in

These fields are managed by the server. You don't pass them on writes — they appear on the response.

* **`sequence`** — Auto-incrementing per-container number — the `123` in `FEN-123`. Server assigns it when the item is created.
* **`clockStart`** — Set by the clock subsystem when the item enters a clock-eligible state.
* **`clockFinish`** — Set by the clock subsystem when the item exits a clock-eligible state.
* **`clockDelta`** — Computed elapsed duration between `clockStart` and `clockFinish`. Server-maintained.
* **`clockHours`** — Convenience integer-hour view of `clockDelta`. Server-maintained.
* **`clockStatus`** — `Active` / `Paused` / `Breached` / `Stopped`. Updated by the clock subsystem as the item moves through workflow states.
* **`dependencyKey`** — Hierarchy path for tree views. Maintained by the dependency engine when parent/child links change.
* **`dependencyIndent`** — Indent depth in the dependency tree. Server-maintained.
* **`dependencyChild`** — Child ordering within the dependency tree. Server-maintained.

## Fields

| Field              | Type                                                              | Required     | Notes                                                                                                                                                                               |
| ------------------ | ----------------------------------------------------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `entity`           | string • nullable                                                 | Server-set   | Set by the server. Read-only on writes.                                                                                                                                             |
| `containerId`      | string                                                            | **Required** | The container this item belongs to. Determines billing / cost-center inheritance.                                                                                                   |
| `processId`        | string                                                            | **Required** | The process whose workflow + field schema applies to this item.                                                                                                                     |
| `sequence`         | integer                                                           | Server-set   | Auto-incrementing per-container sequence — the `123` in `FEN-123`. Server-managed.                                                                                                  |
| `boardId`          | string                                                            | Optional     | Board the item appears on. Items can exist without a board until placed.                                                                                                            |
| `cycleId`          | string                                                            | Optional     | Cycle (sprint / iteration) the item is assigned to.                                                                                                                                 |
| `resourceType`     | [`ResourceType`](/data-model/constants#resource-type)             | Optional     | Type of the assigned resource: `User` or `JobRole`. See [`ResourceType`](/data-model/constants#resource-type).                                                                      |
| `resourceId`       | string                                                            | Optional     | Id of the assigned resource. User id when `resourceType=User`; job-role id when `resourceType=JobRole`.                                                                             |
| `dateOpened`       | string • nullable                                                 | Optional     | Set on workflow transition into the open state. Pre-populate on create to backdate the open event.                                                                                  |
| `dateWorking`      | string • nullable                                                 | Optional     | Set on transition into the working state.                                                                                                                                           |
| `dateClosed`       | string • nullable                                                 | Optional     | Set on transition into a terminal state.                                                                                                                                            |
| `time`             | array\<[`ItemTime`](/data-model/item-time)>                       | Optional     | Time entries logged against this item. See [`ItemTime`](/data-model/item-time). The `timeLogged` format is `Xh Ym` (e.g. `2h 15m`).                                                 |
| `field`            | array\<[`DataItemFieldValue`](/data-model/data-item-field-value)> | **Required** | Array of `DataItemFieldValue { id, data }`. Carries every human attribute — Name, Description, Status, Priority, Severity, Resolution, plus any custom fields the process declares. |
| `meta`             | `array<{ key: string, value: string }>`                           | Optional     | Free-form key/value metadata for fields not modelled by the process. Lossless — useful on imports.                                                                                  |
| `clockStart`       | string (date-time)                                                | Server-set   | Server-set when the item enters a clock-eligible state.                                                                                                                             |
| `clockFinish`      | string (date-time)                                                | Server-set   | Server-set when the item exits a clock-eligible state.                                                                                                                              |
| `clockDelta`       | number                                                            | Server-set   | Computed elapsed duration between `clockStart` and `clockFinish`.                                                                                                                   |
| `clockHours`       | integer                                                           | Server-set   | Convenience integer-hour view of `clockDelta`.                                                                                                                                      |
| `clockStatus`      | [`ClockStatusEnum`](/data-model/constants#clock-status-enum)      | Server-set   | Active / Paused / Breached / Stopped. See [`ClockStatusEnum`](/data-model/constants#clock-status-enum).                                                                             |
| `dependencyKey`    | string                                                            | Server-set   | Hierarchy path key for tree views. Server-managed.                                                                                                                                  |
| `dependencyIndent` | integer                                                           | Server-set   | Indent depth in dependency tree. Server-managed.                                                                                                                                    |
| `dependencyChild`  | integer                                                           | Server-set   | Child ordering within the dependency tree. Server-managed.                                                                                                                          |
| `tenantId`         | string                                                            | Server-set   | Set by the server. Read-only on writes.                                                                                                                                             |
| `id`               | string                                                            | Server-set   | Set by the server. Read-only on writes.                                                                                                                                             |
| `created`          | string (date-time)                                                | Server-set   | Set by the server. Read-only on writes.                                                                                                                                             |
| `createdBy`        | string                                                            | Server-set   | Set by the server. Read-only on writes.                                                                                                                                             |
| `updated`          | string (date-time)                                                | Server-set   | Set by the server. Read-only on writes.                                                                                                                                             |
| `updatedBy`        | string                                                            | Server-set   | Set by the server. Read-only on writes.                                                                                                                                             |
| `deleted`          | boolean                                                           | Server-set   | Set by the server. Read-only on writes.                                                                                                                                             |

## Used by

### Request body

* `POST /api/item`
* `PUT /api/item/{id}`

### Response body

* `GET /api/board/{boardId}/cycle/{cycleId}/item`
* `GET /api/item/{id}/dependency`
* `POST /api/item/copy`
* `POST /api/item/find`
* `POST /api/item/list`
* `POST /api/item/resource`
* `POST /api/item/{id}`
* `POST /api/time/resource/{userId}`

### CLI

`ekso item` — see the [command branches](/cli/branches) page for available verbs. Body for create / update verbs typically passed via `--data @file.json` matching the [sample JSON](#sample-json) above.
