to navigate · to open See all results

Pagination and response formats

Read complete result sets and understand records, timestamps, and workflow responses.

Last updated

Paginated collections

Record lists, timelines, to-do lists, assignment lists, and paginated workflow options accept page (starting at 1) and per_page (1–100, default 25). Creation options and fixed-value workflow options return one object rather than a paginated list.

JSON
{
  "data": [],
  "links": {"next": null, "prev": null},
  "meta": {"current_page": 1, "last_page": 1, "per_page": 25, "total": 0}
}

This example shows the common pagination fields. Record and timeline collections also include Laravel’s additional pagination links and metadata. Follow links.next until it is null; keep the authorization and Accept headers on every request. Only follow URLs on your API host. Do not assume the first page is the entire inventory.

Inventory lists are ordered by descending numeric ID. Workflow choice and assignment lists generally use ascending ID. Timelines sort by event date newest first, then event ID descending and type ascending. Page-based results can move while the inventory changes; reconcile by record ID if you need to collect a changing inventory.

Filters

Inventory lists support pagination; this version has no documented inventory search, sort, or updated-since filter. Timeline endpoints additionally accept from and to as inclusive UTC calendar dates in YYYY-MM-DD format. Undated events sort last and are excluded by date filters.

Asset workflow options support specific kind values; location and storage options can also accept location_id when requesting sublocations. Consult that endpoint before adding query parameters.

Single records and writes

GET details return 200 with one object under data. Inventory POST returns 201 with the new record; PUT and PATCH both change only supplied fields and return 200. Inventory DELETE returns 204 with no body.

Workflow writes return 201 for POST and 200 for PUT, PATCH, or DELETE. Their data contains affected record IDs, generated event ID arrays, an optional to-do or space, and current state. They do not return the same shape as a record-detail request. Fetch the timeline to inspect generated events.

Values and dates

IDs are numeric except the timeline’s composite id, which combines its event type and numeric event ID. Timestamps use UTC ISO 8601. Date-only fields use YYYY-MM-DD. Workflow input event_date needs an explicit offset and seconds. Unset fields may be null; preserve nulls instead of treating them as zero or empty text.

Decimal costs can be strings in responses, such as "12.00"; avoid assuming all returned numbers have the same JSON type. Returned timeline descriptions and to-do notes may contain HTML from the product. Render them as text or sanitize before inserting HTML.

Writable fields

Send only fields listed on the endpoint. Unknown or protected body fields return 422. Record IDs, organization IDs, timestamps, assignments, lifecycle status, and file uploads cannot be set through record-detail writes. Use the dedicated workflow endpoint for supported assignments and state changes.

Custom fields

Asset and subscription category options include the fields for each category. Send custom_fields as an object keyed by numeric field ID. Required fields must be present when creating a record or changing its category. An update within the current category changes only supplied custom values.

Category field type JSON value
number A number.
boolean true or false.
date A YYYY-MM-DD string. Optionally add an HH:mm time under the same ID in custom_field_times.
yesno Exactly Yes, No, or N/A.
Other text types A string, up to 10,000 characters.
JSON
{
  "custom_fields": {
    "31": "2026-09-07",
    "32": true
  },
  "custom_field_times": {
    "31": "09:30"
  }
}

These IDs are illustrative; fetch the category’s fields before using them. A time requires a matching date value. Optional fields may be nullable; required fields cannot be cleared.

Asset event custom fields use the separate field_values object. The action’s options return each field’s datatype, required flag, and selectable option IDs. Select/dropdown event fields accept an option ID, not its label. Built-in event fields such as cost or responsible person are sent as the named properties on the endpoint, not inside field_values.