Skip to content

Query Reference

Entities are queried via GET /api/{db}/entity using URL query parameters. The same filter syntax is used in menu query parameters and in reference_query on reference property definitions.

Filters

Filters follow the pattern propertyName.type=value. The type must match the property's data type.

FilterExampleDescription
prop.string=value_type.string=invoiceExact string match
prop.string.regex=/pattern/flagsname.string.regex=/acme/iRegular expression match
prop.string.in=a,b,cstatus.string.in=active,pendingMatch any of the listed values
prop.string.exists=true|falseemail.string.exists=trueCheck whether a property has a value
prop.reference=idowner.reference=abc123Exact reference match
prop.reference.in=id1,id2owner.reference.in=abc,defMatch any of the listed entity IDs
prop.number=nbudget.number=1000Exact number match
prop.number.gt=nbudget.number.gt=500Greater than
prop.number.gte=nbudget.number.gte=500Greater than or equal
prop.number.lt=nbudget.number.lt=1000Less than
prop.number.lte=nbudget.number.lte=1000Less than or equal
prop.number.ne=nbudget.number.ne=0Not equal
prop.date=YYYY-MM-DDdue_date.date=2025-01-01Exact date match
prop.date.gt=datedue_date.date.gt=2025-01-01Date comparison (also .gte, .lt, .lte)
prop.boolean=true|falseactive.boolean=trueBoolean match

Multiple filters are combined with & and all must match (AND logic). There is no built-in OR between different filter keys — use .in to match multiple values for the same property:

?_type.string=project&status.string=active&owner.reference=USER_ID

Sorting

Prefix the sort field with - for descending order.

ParameterExampleDescription
sort=prop.typesort=name.stringSort ascending
sort=-prop.typesort=-date.dateSort descending
sort=a,-bsort=status.string,-date.dateMulti-field sort

Pagination

ParameterExampleDescription
limit=nlimit=50Max results to return (default: 100)
skip=nskip=100Results to skip — use with limit for paging
bash
# Page 1
GET /api/db/entity?limit=100&skip=0

# Page 2
GET /api/db/entity?limit=100&skip=100
bash
GET /api/{db}/entity?q=acme+corp

Searches across all properties that have search enabled on their definition.

TIP

Enable search on properties users naturally search by (name, title, code). Without it, q= will not find values in that field.

Field Selection

Return only specific properties to reduce response size:

bash
GET /api/{db}/entity?props=name,status,_created

Common Patterns

bash
# All entities of a type
?_type.string=invoice

# Children of a parent
?_parent.reference=PARENT_ID

# Check if property exists
?photo.reference.exists=true

# Case-insensitive name search
?name.string.regex=/john/i

# Date range
?due_date.date.gte=2025-01-01&due_date.date.lte=2025-12-31

# Multiple statuses
?status.string.in=active,pending,review