Appearance
Querying
Every endpoint has a list operation that allows you to query for resources. The list operation supports various query parameters to filter, sort, and paginate the results. In the docs for each endpoint, you will find a section called Query Parameters that describes the available query parameters. Depending on the data type of a property you can use various operators to filter the results.
If you have a particular use case you are not sure how to implement, please reach out to us.
Pagination
Results are returned in pages. Use page (zero-based, default 0) and size (default 10, maximum 20) to page through a list, e.g. /v1/assignment-events?page=1&size=20. Each list response is wrapped in a { page, pages, size, items } envelope — see Getting Started → Pagination for details.
Date Operators
When a property needs to be exactly one date, you don't need to use any operator. You can simply pass the date as a string in ISO 8601 format, e.g., /v1/assignment-events?updatedAt=2025-01-01T00:00:00Z.
$gt/$gte: If you need items that are after a certain date, use the$gt(greater than) or the$gte(greater then equal) operator. For example,/v1/assignment-events?updatedAt[$gt]=2025-01-01T00:00:00Zwill return items that were updated after January 1, 2025.$lt/$lte: If you need items that are before a certain date, use the$lt(less than) or the$lte(less then equal) operator. For example,/v1/assignment-events?updatedAt[$lt]=2025-01-01T00:00:00Zwill return items that were updated before January 1, 2025.$ne: If you need items that are not equal to a certain date, use the$ne(not equal) operator. For example,/v1/assignment-events?updatedAt[$ne]=2025-01-01T00:00:00Zwill return items that were not updated on January 1, 2025.
You also can chain operators which will combine them to a logical AND. For example, /v1/assignment-events?updatedAt[$gt]=2025-01-01T00:00:00Z&updatedAt[$lt]=2025-01-02T00:00:00Z will return items that were updated on January 1, 2025.
Number Operators
When a property needs to be exactly one number, you don't need to use any operator. You can simply pass the number as a string, e.g., /v1/assignment-events?assignmentId=123.
$in: If you need items that have a property with one of the given values, use the$inoperator. For example,/v1/assignment-events?assignmentId[$in]=123,456,789will return items that have anassignmentIdof123,456, or789.$nin: If you need items that have a property with none of the given values, use the$ninoperator. For example,/v1/assignment-events?assignmentId[$nin]=123,456,789will return items that have anassignmentIdthat is not123,456, or789.$ne: If you need items that are not equal to a certain number, use the$ne(not equal) operator. For example,/v1/assignment-events?assignmentId[$ne]=123will return items that do not have anassignmentIdof123.
Note:
$in/$ninaccept up to 100 values per filter.
Null values
Some properties can be empty (null). For example, a time sheet day that has not been submitted yet has an empty submittedAt, and one that has not been approved has an empty approvedAt. You can filter by whether such a property is set:
- Is empty:
/v1/time-sheet-days?approvedAt=nullor/v1/time-sheet-days?approvedAt[$eq]=nullreturns days that have not been approved. - Is not empty:
/v1/time-sheet-days?submittedAt[$ne]=nullreturns days that have already been submitted. Likewise,/v1/time-entries?daySubmittedAt[$ne]=nullreturns time entries whose day has been submitted. - Include null among other values:
/v1/time-entries?eventId[$in]=null,123returns entries witheventId123or no event at all.
Notes:
- Pass the literal token
nullas shown above. If you build requests with aqs-based client (for example the JavaScript Feathers client), passing a JavaScriptnullis serialized correctly as well and behaves identically. - An empty value with an
=sign (e.g.?submittedAt[$ne]=) is not treated as null and is rejected. - The
nulltoken only has this special meaning on properties that can actually be empty. On a property that is never empty it is treated as the ordinary string"null".