Skip to content

Introduction to Filter Queries

Filter by (a) specific field(s) of a content type. The filter_query parameter accepts a field and an operation key. Separate the values by a comma to filter by multiple values. The following syntax applies:

stories/?filter_query[field][operation]=value1,value2

It is possible to use multiple filter queries per request. By default, the applied filters are connected by the AND operator, but it is also possible to apply filters by the OR operator using the following syntax:

stories/?filter_query[__or][][field][operation]=value&filter_query[__or][][field][operation]=value

Terminal window
https://api.storyblok.com/v2/cdn/stories?filter_query[field][operation]=value&token=ask9soUkv02QqbZgmZdeDAtt

The filter_query use cases throughout this section are based on the example story type for a simple blog article represented by the story object below.

The usage of filter_query is not limited to the fields of this example. Every custom field defined for a story type is included in the content object of a story object and can, therefore, be used as the field key in a filter_query.

  • is
    Matches a value type (empty, not_empty, empty_array, not_empty_array, true, false, null, not_null)
  • in
    Matches all with the exact specified value
  • not_in
    Matches all without the exact specified value
  • like
    Matches all with the specified value (wildcard allowed)
  • not_like
    Matches all without the specified value (wildcard allowed)
  • any_in_array
    Matches if any of the specified values is contained in the field value (array)
  • all_in_array
    Matches if all specified values are contained in the field value (array)
  • gt_date
    Greater than date (Format: YYYY-mm-dd HH:MM)
  • lt_date
    Earlier than date (Format: YYYY-MM-DD HH:MM)
  • gt_int
    Greater than integer value
  • lt_int
    Lower than integer value
  • gt_float
    Greater than float value
  • lt_float
    Lower than float value