Makini
v4 (Latest)
  • v4 (Latest)
  • v3 (Legacy)
User Guide
API ReferenceMCPPlatforms
User Guide
API ReferenceMCPPlatforms
Website
v4 (Latest)
  • v4 (Latest)
  • v3 (Legacy)
v4 (Latest)
  • v4 (Latest)
  • v3 (Legacy)
  1. Working with the API
  • Getting Started
    • On-premise systems
    • Authentication
    • Testing with API Tools
    • Account setup
    • Connection Credits
  • Core Concepts
    • Connections
    • Unified Data Model
    • Custom mappings
    • Data mappings
    • Sync schedules and history
  • Admin API
  • Account & Team
    • Team access and SSO
  • Makini Link
    • Embedded connection settings
    • Launching Makini Link
    • Magic links
  • Management API
    • Management API authentication
    • Managing connections
    • Managing your application
  • Webhooks
    • Signatures and retries
    • Webhook events
  • Working with the API
    • Access tokens
    • Errors
    • Filtering
    • Makini Query Language
    • Raw data and passthrough
    • Reading data
    • Relations and expand
    • Writing data
  1. Working with the API

Filtering

Narrow any list to exactly the records you need, right in the query string. The same filter syntax works on every entity and every connected system, so one integration serves them all.
Request
Response

Match a field#

Name the field in a filter query parameter. filter[<field>]=<value> matches by equality, and an operator goes in the key, filter[<field>:<op>]=<value>:
GET /v4/work-orders?filter[priorityLevel]=1
GET /v4/work-orders?filter[dueAt:lt]=2026-10-01
GET /v4/work-orders?filter[title:contains]=pump
OperatorMeaningWorks on
eqEquals (the default)Every field type
neqNot equalEvery field type
inOne of a comma-separated listEvery type except boolean
gtGreater thanText, number, date
gteGreater or equalText, number, date
ltLess thanText, number, date
lteLess or equalText, number, date
containsText contains, case-insensitiveText
startsWithText starts with, case-insensitiveText
endsWithText ends with, case-insensitiveText
Text fields take all ten operators, and relations and enumerations take eq, neq and in. Each filter parameter in the API Reference lists its own set.
in takes a comma-separated list: filter[statusCategory:in]=open,on_hold. In the text operators, % and _ are literal characters.
neq on a non-relation field also matches records where the field is null. On a relation, records with no link are left out.

Write filter values#

Relations filter by the related record's Makini id: filter[asset]=<id>. On a many-relation, this matches records whose relation includes that id. A work order's status is a relation too, so it filters by id. To filter by lifecycle state, use the statusCategory enumeration.
Dates take a date (2026-09-01, meaning midnight UTC) or an RFC 3339 date-time with an offset (2026-09-01T00:00:00Z).
Numbers are plain numbers. priorityLevel runs from 1 (highest) to 5 (lowest), so filter[priorityLevel:lte]=2 finds the two highest levels.
Booleans take true or false.
Enumerations take one of the values listed on the parameter. For a work order's statusCategory these are draft, pending_approval, open, in_progress, on_hold, completed, closed and cancelled.
null means "no value" with eq and neq on a non-relation field: filter[dueAt]=null finds records with no due date.
Lists never include soft-deleted records, whatever the filter.

Filter by a range#

Use the same field under two operators: filter[dueAt:gte]=2026-09-01&filter[dueAt:lt]=2026-10-01.
The same field under the same operator twice is a 400.

Reference#

Limits
Errors
Aliases

Next steps#

Reading data
Paging, sorting and incremental sync on every list.
Relations and expand
Pull related records into the same response.
Makini Query Language
Combine filters with or, patterns and ranges in one statement.
Errors
What an error response looks like.
Modified at 2026-10-16 14:20:56
Previous
Errors
Next
Makini Query Language
Built with