filter query parameter. The syntax is SFS-1 (Soluts Filter Syntax v1) — a lightweight, predictable expression language designed for both API integrators and ad-hoc tooling.
This page is the complete normative reference. For an overview of when and how to use filters, see Filtering concepts.
Restrictions in v1
SFS-1 intentionally supports onlyAND logic. The following are explicitly rejected with INVALID_FILTER (HTTP 400):
ORoperatorNOToperator and negation with-- Parentheses for grouping
- Functions
(call(arg...)) - Wildcards
*with special semantics - Loose literals without a field (e.g.,
Victor Hugo) - Collection-specific operators (
has,contains,any)
OR, NOT, and parentheses without breaking v1 semantics.
Request parameter
APIs adopting SFS expose exactly one filter field:Syntax
A filter is a list of comparisons joined byAND, and, or ;.
Comparison format:
status=ACTIVE;name=production-mainstatus = SUCCESS AND createdAt >= 2026-01-01createdAt >= "2026-01-15T00:00:00Z" and direction = OUT
Field names
Field names are explicitly allowlisted per endpoint. Referencing a field not in the allowlist returnsINVALID_FILTER. The allowlist is documented in each endpoint’s reference page.
Supported field types:
Literals
String escaping. Inside a quoted string,
\ escapes the next character:
"a\"b"resolves toa"b'a\'b'resolves toa'b
timestamp literal must parse as RFC 3339. Failures return INVALID_FILTER.
Operators
string, boolean, and enum types accept only = and !=. Using < / <= / > / >= on these types returns UNSUPPORTED_FILTER_OPERATION.
Validation
Filters are fully schema-validated before execution.- Only fields listed in the endpoint’s allowlist are accepted.
- Each literal must be coercible to the declared field type.
- Enum fields only accept values from their allowed set.
- Operators must be compatible with the field type.
- Servers enforce limits on filter length, comparison count, and token count.
INVALID_FILTER or UNSUPPORTED_FILTER_OPERATION with HTTP 400.
Examples
Basic equality
Multiple clauses (AND)
status=ACTIVE AND createdAt>=2026-01-01
Numeric range
amount>=10000;amount<100000
Timestamp range
createdAt>="2026-01-01T00:00:00Z"
Enum + direction
direction=IN AND status=SUCCESS
Formal grammar (EBNF)
Errors
Both return HTTP 400. See Errors for the full envelope contract.
Versioning
SFS-1 guarantees onlyAND semantics and the six comparison operators. Future versions may add OR, NOT, and parentheses — those will be released as SFS-2 (or higher), additively, without changing v1 behavior.
Next
Filtering concepts
When to filter, how to choose fields, performance considerations.
Pagination
filter combines with order_by, page_size, page_token.