Advanced Query DSL
By referencing most popular programming languages and technical frameworks, we have developed the Advanced Query DSL for advanced data querying. We describe the data filtering scheme using a multi-layer filter format.
The Advanced Query DSL requires the following query parameters:
- filter: Conditions for data filtering.
- offset: For pagination
- limit: For pagination
Filter Format
The filter parameter is used to specify conditions for data filtering. It follows a nested structure where you first specify the field name, then the operation, and finally the value.
Filter Parameter Structure
filter[field_name][operation]=value
Where:
- field_name: The name of the field you want to filter on. For nested fields, use dot notation (e.g.,
address.city). - operation: The filtering operation to perform (e.g.,
_eq,_gte,_contains). - value: The value to compare against.
Multiple Filter Conditions
You can specify multiple filter conditions by including multiple filter parameters in your request:
# Filter by both initial_total and correspondence_state
filter[initial_total][_gte]=100&filter[correspondence_state][_eq]=paid
Supported Value Types
- String: Enclosed in quotes if it contains spaces or special characters
- Number: Use numeric format (e.g.,
100,99.99) - Boolean: Use
0for false,1for true - Date/Time: Use ISO 8601 format with timezone (e.g.,
2026-01-05T15:43:18+08:00) - Array: Use comma-separated values for operations like
_in
Examples of Filter Usage
# Equality check
filter[status][_eq]=active
# Range check
filter[price][_gte]=100&filter[price][_lte]=500
# Text search
filter[name][_contains]=John
# Date range
filter[created_at][_gte]=2026-01-01T00:00:00+08:00&filter[created_at][_lte]=2026-01-01T00:00:00+08:00
# Boolean field
filter[is_active][_eq]=1
- FieldName: For the fields in specific API objects, please refer to the definitions in the corresponding API documentation.
- OP: For the types of data filtering conditions, please see the list below.
https://api-full-url-path?filter[$Field_Name][$OP]=value1&filter[$Field_Name][$OP]=value2
# All of paid order and initial_total >= 100
filter[initial_total][_gte]=100&filter[correspondence_state][_eq]=paid
info
- use
0or1for boolean field. - use
2026-01-05T15:43:18+08:00time format for datetime field.
Filter OP List
| Op Name | Comment |
|---|---|
| _eq | equal to |
| _neq | not equal to |
| _gt | greater than |
| _gte | greater than or equal to |
| _lt | less than |
| _lte | less than or equal to |
| _contains | LIKE |
| _not_contains | NOT LIKE |
Pagination
- offset: The starting record offset
- limit: The pagination size. how many records will be returned. up to 1000.