Noma

Advanced Filtering

Advanced Filtering

List Entries accepts a where query parameter for structured filters. The server expects where as a nested array (typical for HTTP clients and the JavaScript SDK). Filters apply after the state and optional locale filters on content_entries.

Core columns

These columns live on content_entries:

id, uuid, locale, state, created_at, updated_at, published_at

Operators

OperatorMeaning
eqEqual
lt, lte, gt, gteComparisons
notNot equal (see implementation notes for custom fields)
likeSQL LIKE with %value% for core columns
in, not_inValue lists (comma-separated or array)
between, not_betweenTwo bounds (comma-separated or array)
null, not_nullNull checks

Example (query string style)

GET /api/products?state=published&where[title][eq]=Alpha%20Shirt
GET /api/products?state=published&where[price][gt]=79
GET /api/products?state=published&where[title][like]=shirt
GET /api/products?state=published&where[title][in]=Alpha%20Shirt,Gamma%20Shoes
GET /api/products?state=published&where[published_at][null]=true

For boolean-like custom fields, values such as true / false are matched against stored values.

Custom fields

For names that are not core columns, the API resolves the field on the collection and filters on content_field_values (text, number, boolean, JSON, and so on depending on type).

Relation and media fields support null / not_null in addition to the usual operators where implemented.

not and not_in

These are implemented as “does not match” semantics on field values (including JSON containment checks where applicable). Use the tests in the core codebase as the reference for edge cases.

You can filter on fields of related entries by nesting the related collection field name and a field on the related entry:

GET /api/products?state=published&where[category][name]=Apparel

You can combine operators under nested keys when the payload is structured as nested arrays.

OR conditions

Use where[or] as an array of alternative condition groups:

GET /api/products?state=published&where[or][0][title][like]=shirt&where[or][1][title][like]=jacket

SDK

Pass a nested object; the SDK serializes it to where[field][...] query parameters. See JavaScript SDK — Content.

  • List Entries - where, sort, pagination
  • JavaScript SDK - content.list and where

Search documentation

Find guides and reference pages