Skip to main content
Platform features are currently in invite-only beta. You can sign up here if you want to be considered for one of our next phases. The open source CLI, the compiler and the standalone generator are not part of the beta and are available now.

List

integer
default:"1"
1-based page number.
integer
default:"50"
Records per page.
string
Field to sort by.
boolean
default:"false"
Include soft-deleted records.
Any other query parameter is read as an equality filter on the field of that name.

Filters

Anything past equality goes in filters, a URL-encoded JSON array of { field, operator, value }.
Operators: eq, neq, gt, gte, lt, lte, contains, in, notIn, isEmpty, isNotEmpty.

Aggregate

Aggregation happens on the server, so the answer is correct across the whole entity rather than across one page.
List and aggregate treat hidden fields differently, on purpose. A list silently drops a filter on a field you may not read, because a smaller result set leaks nothing. An aggregate refuses with a 403 instead, because silently dropping a field, groupBy or filter would hand back a confidently wrong number.

Read one

Create

Creating a record runs whatever the definition says happens on creation: computed fields, workflow effects, cascades to related records. The API is the same door the product uses, so it gets the same behaviour.

Replace

Delete

onDelete behaviour declared in the definition is honoured here too.

Field visibility

Responses drop fields your role may not read. A write touching a field your role may not set is rejected rather than partially applied.