Skip to main content

Searching using query language

Search using query language offers a unified and extensible mechanism for querying a resource. In GET list endpoints, it is exposed through the ?ql= parameter and enables clients to define structured queries based on the fields returned in the resource representation. Consumers can compose expressions to filter, combine, and refine results across any supported fields in a consistent way.

By comparison, search with classic query parameters relies on predefined filters (e.g., ?name=Ana&status=active) and typically supports only simple field-level matching. Query language–based search is better suited for advanced use cases, as it allows more complex conditions, logical operators, and scalable query construction within a single, standardized interface.

The query language is case-sensitive. For example, you cannot use [EQ] for “equal”; it must be written as [eq].

Separator

Parentheses () are used to group blocks of conditions within a query.

Logical operators

Operation operators

The operation operator is specified in square brackets before the field path, e.g.: metadata.documentTotals.vatAmount[eq]=1200.23.

Default operator

If no operator is specified, the standard equals sign = is applied by default and behaves the same as the [eq] operator.

Example: The two queries below will return the same result sets.

?ql=metadata.documentTotals.vatAmount=1200.23
?ql=metadata.documentTotals.vatAmount[eq]=1200.23
Number operators

For numeric values, the operator does not require the value to be enclosed in double quotes, e.g.: metadata.documentTotals.vatAmount[eq]=1200.23.

String operators

In the initial implementation phase, strings with accents are treated as different from strings without accents. For example, “La Férmé” is different from “La Ferme”. Therefore, when searching for “La Ferme”, the record of “La Férmé” will not match.

{
"legalName": "La Férmé"
}

Match:

?ql=legalName[eq]="La Férmé"

No match:

?ql=legalName[eq]="La Ferme"

The string operator must accept any of these cases:

  • enclosed value in double quotes “ ”, e.g. metadata.documentNumber[cont]=”ABC”
  • enclosed value in single quote ‘ ‘, e.g. metadata.documentNumber[cont]=’ABC’
  • value not enclosed, e.g. metadata.documentNumber[cont]=ABC
Other operators

Field path

Data types

Use the appropriate value format based on the data type of the field.

See also