Add filters as query params: field=op.value
# Equals GET /api/posts?published=eq.true # Comparison GET /api/posts?created_at=gte.2025-01-01 # Pattern match GET /api/posts?title=like.Hello% # Multiple values GET /api/posts?status=in.draft,published # Null checks GET /api/posts?deleted_at=is_null # Combine filters GET /api/posts?published=eq.true&created_at=gte.2025-01-01&sort=created_at.desc
| Operator | SQL | Example |
|---|---|---|
eq | = | name=eq.Alice |
neq | != | status=neq.draft |
gt, gte | >, >= | age=gte.18 |
lt, lte | <, <= | price=lt.100 |
like | LIKE | name=like.A% |
in | IN | role=in.user,admin |
is_null | IS NULL | bio=is_null |
not_null | IS NOT NULL | bio=not_null |
GET /api/posts?sort=created_at.desc GET /api/posts?sort=title.asc,created_at.desc
# Offset-based GET /api/posts?limit=20&offset=40 # Cursor-based (use next_cursor from response meta) GET /api/posts?limit=20&cursor=eyJ...
# Select specific fields GET /api/posts?select=id,title,created_at # Include related records (via ref columns) GET /api/posts?include=user_id