Skip to main content
GET
cURL

Authorizations

X-Session-Token
string
header
required

Session token for authentication.

Query Parameters

include
enum<string>[]

A comma separated list of related resources to include.

Available options:
appointment,
assignees,
forms,
operation_type,
organisation,
permits,
properties,
scheme,
streets,
teams,
template,
work_order
filter
string
default:""

Filters the response data based on the value provided.

Available filters:

  • id_in: Filter by ID(s)
  • in_schemes: Filter for operations that are part of a scheme(s) by their ID(s)
  • in_work_orders: Filter for operations that are part of a work order(s) by their ID(s)
  • assigned_to: Filter for operations assigned to a user(s) by their ID(s)
  • at_properties: Filter for operations at a property(s) by their ID(s)
  • unscheduled: Filter for unscheduled operations
  • no_start: Filter operations with no start time
  • no_end: Filter operations with no end time
  • has_appointment: Filter operations that have appointments
  • no_appointment: Filter operations that do not have appointments
  • has_property: Filter operations that have any related property - this does not accept arguments, it just checks for the existence of a related property. You can use at_properties to find operations at a specific property.

Project-role filters (cross-resource lookups against project role assignments):

  • has_role(<project_role_id>): Filter for operations that have at least one active assignment for the given project role. Example: has_role(11111111-1111-1111-1111-111111111111).
  • held_by(<user_id>): Filter for operations where the given user holds at least one role (any role). Example: held_by(22222222-2222-2222-2222-222222222222).
  • has_role_assignment(<project_role_id>,<user_id>): Filter for operations where the given user holds the given role specifically. Example: has_role_assignment(11111111-1111-1111-1111-111111111111,22222222-2222-2222-2222-222222222222).

Field filters (RQL expressions on Operation fields):

  • id: Filter by operation ID. Example: eq(id,11111111-1111-1111-1111-111111111111), or multiple with in(id,[<uuid>,<uuid>]).
  • organisation: Filter by owning organisation ID. Example: eq(organisation,<uuid>).
  • scheme: Filter by scheme ID. Example: eq(scheme,<uuid>), or multiple with in(scheme,[<uuid>,<uuid>]).
  • work-order: Filter by work order ID. Example: eq(work-order,<uuid>), or multiple with in(work-order,[<uuid>,<uuid>]).
  • type: Filter by operation type ID. Example: eq(type,<uuid>).
  • name: Filter by name. Example: eq(name,Excavation), or partial match with contains(name,exc).
  • assignees: Filter by assigned user ID. Matches operations that include the given user. Example: eq(assignees,<uuid>), or multiple with in(assignees,[<uuid>,<uuid>]).
  • properties: Filter by related property ID. Matches operations that include the given property. Example: eq(properties,<uuid>), or multiple with in(properties,[<uuid>,<uuid>]).
  • appointment: Filter by appointment ID. Example: eq(appointment,<uuid>).
  • status: Filter by status. Accepts todo, in_progress, done. Example: in(status,[todo,in_progress]).
  • done_reason: Filter by reason an operation is done. Accepts completed, cancelled, aborted. Only meaningful for operations whose status is done. Example: and(eq(status,done),in(done_reason,[completed,cancelled])).
  • dates.scheduled.start: Filter by scheduled start date. Accepts an RFC 3339 timestamp and supports the range operators ge, le, gt, lt (and eq). Example: ge(dates.scheduled.start,2026-07-01T00:00:00Z).
  • dates.scheduled.end: Filter by scheduled end date. Accepts an RFC 3339 timestamp and supports the range operators ge, le, gt, lt (and eq). Example: le(dates.scheduled.end,2026-07-14T23:59:59Z).
  • updated_at: Filter by the date an operation was last modified. Accepts an RFC 3339 timestamp and supports the range operators ge, le, gt, lt (and eq). Example (modified since a given time): ge(updated_at,2026-07-01T00:00:00Z). Example (modified within a window): and(ge(updated_at,2026-07-01T00:00:00Z),le(updated_at,2026-07-14T23:59:59Z)).

For more information on using named filters, see the docs

limit
integer<int64>
default:100

Limit the number of resources returned by the API

Required range: x >= 1
offset
integer<int64>
default:0

Offset the resources returned by the API

Required range: x >= 0
sort
enum<string>[]

A comma separated list of fields to sort by.

Available options:
code,
-code,
created_at,
-created_at,
name,
-name,
postcode,
-postcode,
updated_at,
-updated_at

Response

List of operations.

JSON API response object

data
A list of operations · object[]
required
meta
object
required
jsonapi
object
required
included
object[]

Related resources that can be included when an operation is returned

A form