Skip to content

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.