Query parameters¶
Pagination: - page: integer (>=1), default 1 - per_page: integer (1..100), default 10
Sorting:
- sort_by: the field name, e.g., name
- order: asc or desc
Filtering (two supported formats):
1) Simple (triplets repeated in the query string):
- field: the field/column name, e.g., name
- operator: one of
- eq, ne
- lt, lte, gt, gte
- in, not_in (comma-separated values)
- between (two comma-separated values)
- like, not_like
- ilike, not_ilike (if backend supports ILIKE)
- is_null, is_not_null
- contains, starts_with, ends_with (translated to LIKE patterns)
- value: raw string value (or list-like comma-separated depending on operator)
Examples (simple format):
- ?field=name&operator=eq&value=Deadpond
- ?field=age&operator=between&value=18,30
- ?field=name&operator=in&value=Deadpond,Rusty-Man
- ?field=name&operator=contains&value=man
- Chain multiple filters by repeating the triplet: ?field=age&operator=gte&value=18&field=name&operator=ilike&value=rust
2) Indexed format (useful for clients that handle arrays of objects):
- Use keys like filters[0][field], filters[0][operator], filters[0][value], then increment the index for additional filters (filters[1][...], etc.).
Example (indexed format):
?filters[0][field]=age&filters[0][operator]=gte&filters[0][value]=18&filters[1][field]=name&filters[1][operator]=ilike&filters[1][value]=joy
Notes: - Both formats are equivalent; the indexed format takes precedence if present. - If any filter is incomplete (missing operator or value in the indexed form, or mismatched counts of simple triplets), the API responds with HTTP 400.