Skip to main content

Documentation Index

Fetch the complete documentation index at: https://ekso.dev/llms.txt

Use this file to discover all available pages before exploring further.

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.
{
  "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.
  • clockStatusActive / 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

FieldTypeRequiredNotes
entitystring • nullableServer-setSet by the server. Read-only on writes.
containerIdstringRequiredThe container this item belongs to. Determines billing / cost-center inheritance.
processIdstringRequiredThe process whose workflow + field schema applies to this item.
sequenceintegerServer-setAuto-incrementing per-container sequence — the 123 in FEN-123. Server-managed.
boardIdstringOptionalBoard the item appears on. Items can exist without a board until placed.
cycleIdstringOptionalCycle (sprint / iteration) the item is assigned to.
resourceTypeResourceTypeOptionalType of the assigned resource: User or JobRole. See ResourceType.
resourceIdstringOptionalId of the assigned resource. User id when resourceType=User; job-role id when resourceType=JobRole.
dateOpenedstring • nullableOptionalSet on workflow transition into the open state. Pre-populate on create to backdate the open event.
dateWorkingstring • nullableOptionalSet on transition into the working state.
dateClosedstring • nullableOptionalSet on transition into a terminal state.
timearray<ItemTime>OptionalTime entries logged against this item. See ItemTime. The timeLogged format is Xh Ym (e.g. 2h 15m).
fieldarray<DataItemFieldValue>RequiredArray of DataItemFieldValue { id, data }. Carries every human attribute — Name, Description, Status, Priority, Severity, Resolution, plus any custom fields the process declares.
metaarray<{ key: string, value: string }>OptionalFree-form key/value metadata for fields not modelled by the process. Lossless — useful on imports.
clockStartstring (date-time)Server-setServer-set when the item enters a clock-eligible state.
clockFinishstring (date-time)Server-setServer-set when the item exits a clock-eligible state.
clockDeltanumberServer-setComputed elapsed duration between clockStart and clockFinish.
clockHoursintegerServer-setConvenience integer-hour view of clockDelta.
clockStatusClockStatusEnumServer-setActive / Paused / Breached / Stopped. See ClockStatusEnum.
dependencyKeystringServer-setHierarchy path key for tree views. Server-managed.
dependencyIndentintegerServer-setIndent depth in dependency tree. Server-managed.
dependencyChildintegerServer-setChild ordering within the dependency tree. Server-managed.
tenantIdstringServer-setSet by the server. Read-only on writes.
idstringServer-setSet by the server. Read-only on writes.
createdstring (date-time)Server-setSet by the server. Read-only on writes.
createdBystringServer-setSet by the server. Read-only on writes.
updatedstring (date-time)Server-setSet by the server. Read-only on writes.
updatedBystringServer-setSet by the server. Read-only on writes.
deletedbooleanServer-setSet 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 page for available verbs. Body for create / update verbs typically passed via --data @file.json matching the sample JSON above.