Filter Operators
Filters are passed as query parameters using the format:
?<column>=<operator>.<value>
For example, to get users with id greater than 5:
GET /minimal/api/rest/auto/v1/acme/demo/ms/demo_db/users?id=gt.5&pg=0&ps=10
Filters work on GET, PUT, and DELETE. POST does not support filters — it always inserts new rows.
Supported Operators
Comparison
| Operator | Meaning | Example |
|---|---|---|
eq | Equals | id=eq.10 |
ne | Not equals | id=ne.10 |
lt | Less than | id=lt.100 |
gt | Greater than | id=gt.5 |
le | Less than or equal | id=le.50 |
ge | Greater than or equal | id=ge.10 |
Range
| Operator | Meaning | Example |
|---|---|---|
bw | Between (inclusive) | id=bw.10.20 |
String Pattern
| Operator | Meaning | Example |
|---|---|---|
li | LIKE %value% — contains | name=li.alice |
rli | LIKE value% — starts with | name=rli.ali |
nli | NOT LIKE %value% — does not contain | name=nli.admin |
il | ILIKE %value% — contains, case-insensitive | name=il.ALICE |
lli (left LIKE) is not supported. The API returns 417 if used.
Set
| Operator | Meaning | Example |
|---|---|---|
in | Value is in list | id=in.6,7,8 |
nin | Value is not in list | id=nin.1,2,3 |
Do not use parentheses for in / nin. Correct: id=in.6,7,8 — not id=in.(6,7,8).
Unsupported Operators
| Operator | Status |
|---|---|
is (IS NULL) | ❌ Not supported — returns 417 |
lli (left LIKE) | ❌ Not supported — returns 417 |
| Any unknown operator | ❌ Returns 417 |
Combining Multiple Filters
Pass multiple filter params in the same request. All filters are combined with AND:
GET /minimal/api/rest/auto/v1/acme/demo/ms/demo_db/users?id=gt.5&is_active=eq.1&pg=0&ps=10
Returns only users where id > 5 AND is_active = 1.
Try It — GET with Filters
Use the query params box to try any filter. Examples to paste in:
id=gt.5&pg=0&ps=10id=bw.10.20&pg=0&ps=20id=in.6,7,8&pg=0&ps=10name=li.alice&pg=0&ps=10id=nin.1,2,3&pg=0&ps=20
Try It — PUT with Filters
Filter selects which row(s) to update. Use the query params box for the filter and the body box for the new values. Example query param:
id=eq.10
Try It — DELETE with Filters
Filter selects which row(s) to delete. Example query param:
id=eq.10
Always use a precise filter with DELETE. A missing or overly broad filter may delete all rows in the table.
Pagination is Always Required
Filters do not remove the pagination requirement. Every GET request must include pg and ps:
GET /minimal/api/rest/auto/v1/acme/demo/ms/demo_db/users?id=gt.5&pg=0&ps=10
Omitting pg / ps returns 406 Not Acceptable.
Real-World Examples
Find users by email domain:
GET /minimal/api/rest/auto/v1/acme/demo/ms/demo_db/users?email=li.@example.com&pg=0&ps=50
Find usernames starting with a prefix:
GET /minimal/api/rest/auto/v1/acme/demo/ms/demo_db/users?name=rli.ali&pg=0&ps=20
Get a specific ID range:
GET /minimal/api/rest/auto/v1/acme/demo/ms/demo_db/users?id=bw.10.20&pg=0&ps=50
Exclude a set of IDs:
GET /minimal/api/rest/auto/v1/acme/demo/ms/demo_db/users?id=nin.1,2,3,4,5&pg=0&ps=20
Active users with high IDs:
GET /minimal/api/rest/auto/v1/acme/demo/ms/demo_db/users?id=gt.5&is_active=eq.1&pg=0&ps=20
Update a single row by ID:
PUT /minimal/api/rest/auto/v1/acme/demo/ms/demo_db/users?id=eq.10
Delete a single row by ID:
DELETE /minimal/api/rest/auto/v1/acme/demo/ms/demo_db/users?id=eq.10
Error Reference
| Code | Cause |
|---|---|
406 | pg or ps missing from GET request |
417 | Unknown or unsupported filter operator used |
400 | Filter value type does not match column type |