Skip to main content
This guide explains how items and fields work at the API level. It covers the JSON shape of an item, how to discover which fields are available for a given container and process, and how the permission model affects what you can read and write. For the conceptual overview, see Items, Fields, and Processes.

DataItem schema

Every work item in Ekso is a DataItem. When you fetch or create an item through the API, the JSON looks like this:

Top-level properties

The field array

The field array is where most of the item’s data lives. Each entry is a simple pair:
All field values are strings. A date field stores "2025-12-15T00:00:00Z", an integer stores "42", a toggle stores "true" or "false". Your integration must interpret the string according to the field’s type — use the screen endpoint to get the full field definition alongside each value.

Field definitions

The GET /api/field endpoint returns every field definition in your tenant. Each field definition describes the field’s type, validation rules, and configuration.

Field types

Ekso supports ten field types. Each type serializes its value as a string in the data property: For a full explanation of each type and the system fields, see Fields.

Key field properties

Every field definition includes these properties:

Picker scopes

Picker fields reference a specific entity type. The scope property tells you what kind of entity the picker selects:

List field values

List fields (e.g., Priority, Severity, Status, Resolution) have a data array containing the valid options:
When setting a list field value, always send the list item id, not the display text. For example, send "p-high" not "High".

Process field configuration

A process controls which fields appear on an item and whether each field is required. The GET /api/process endpoint returns process definitions, each with a fields array:
The same field can be required in one process and optional in another. For example, Severity might be required for Defects but optional for Change Requests.
Every process always includes certain system fields — Name, Description, Status, OwnedBy, RestrictedTo, and audit fields — even if they’re not listed in the fields array. These are always present on every item.

The screen endpoint

The POST /api/item/screen endpoint is the primary discovery tool for API consumers. It combines field definitions, current values, required flags, and permission filtering into a single response — giving you exactly the fields the current user can work with.

Request

Send an ItemScreenRequest:

Screen stages

The stage parameter controls which permission column the endpoint evaluates:

Response

The endpoint returns an ItemScreenModel:
Each entry in the field array contains:
The screen endpoint only returns fields the current user has permission to access. If a field is missing from the response, the user’s group does not have the required access level for that field at the requested stage.

Field-level permissions

Each container can configure per-field permissions for every process. Three access levels control who can interact with each field: By default, all three levels are set to Everyone — all users in the workspace can see, set, and change every field. Admins can restrict any level to specific user groups. The screen endpoint respects these permissions automatically. When you call it with a particular stage, the response includes only the fields that the authenticated user’s groups have access to for that stage. For the conceptual explanation and configuration details, see Field-level access control.
If you send field values for fields the user cannot edit, the API will reject the request. Always use the screen endpoint to discover which fields are available before building your request payload.

Creating an item via the API

1

Discover available fields

Call the screen endpoint with stage Set to find out which fields the current user can provide:
The response field array tells you every field you can set, its type, default value, and whether it’s required.
2

Build the field array

Using the screen response, build your field array. Include all required fields and any optional fields you want to set:
Use the field definition’s name as the fieldId. For List and Picker fields, use the list item id or entity id as the data value.
3

Create the item

Send a POST to /api/item with the container, process, and field values:
The response includes the created item with its generated key (e.g., GEM-42), all field values, and default values applied by the system.
4

Handle validation errors

If required fields are missing or values are invalid, the API returns a 400 with details:
Check the fields array to identify which values need correction.

Updating an item via the API

1

Fetch the item

Retrieve the current item by ID:
2

Discover editable fields

Call the screen endpoint with stage Change to find which fields the user can modify:
The response includes each field’s current value in the data property. The workflow array shows the valid next statuses.
3

Update the item

Send a PUT to /api/item/{id} with the updated field values:
Only include the fields you want to change. The API merges your updates with the existing field values.

Next steps

Fields

Full reference for system fields, custom field types, and default values.

Processes

How processes define workflows, field configuration, and access control.

API reference

Complete endpoint documentation with request and response schemas.