Data Querying
All Query* endpoints support a subset of the OData query protocol. Parameters are appended to the request URL as query string arguments and can be combined freely.
Query Parameters
| Parameter | Description | Example |
|---|---|---|
$filter |
Filter results by conditions | $filter=status eq 'Active' |
$orderby |
Sort results | $orderby=created desc |
$select |
Choose specific fields | $select=id,name,email |
$top |
Limit number of results | $top=10 |
$skip |
Skip first N results | $skip=20 |
Multiple parameters are separated with &:
$filter=status eq 'Active'&$orderby=created desc&$top=50
Filter Operators
| Operator | Description | Example |
|---|---|---|
eq |
Equal | status eq 'Active' |
ne |
Not equal | status ne 'Inactive' |
gt |
Greater than | salary gt 50000 |
ge |
Greater or equal | age ge 18 |
lt |
Less than | hours lt 40 |
le |
Less or equal | count le 100 |
String Functions
| Function | Description | Example |
|---|---|---|
contains |
Test for substring | contains(name, 'John') |
startswith |
Test string start | startswith(email, 'admin') |
endswith |
Test string end | endswith(email, '@company.com') |
Logical Operators
| Operator | Description | Example |
|---|---|---|
and |
Logical AND | status eq 'Active' and age gt 18 |
or |
Logical OR | role eq 'Admin' or role eq 'Manager' |
not |
Logical NOT | not contains(name, 'Test') |
Ordering
Sort by one or more fields. Default direction is ascending (asc); use desc to reverse:
$orderby=identifier,created desc
Selection
Limit the fields returned to reduce payload size:
$select=identifier,name,description
Paging
Page through large result sets using $top and $skip:
$top=100&$skip=1400
Always paginate large datasets. Combine $filter and $select to reduce payload before paging.
Best Practices
- Always paginate large datasets using
$topand$skip - Use
$selectto reduce payload size - Combine filters with
andto narrow results early