When to use this endpoint

Use with CRM1 Settings → Filters. This has positional arrays and a visibility rule; it is not interchangeable with the CRM2 mapped table route.

Authentication and permissions

Authenticate with signed API-key fields or a logged-in CRM session. A tenant login is required.

Reads expose only filters owned by the current user or marked public=1. Writes require ownership or client-administrator permission; another user’s public filter is not editable merely because it is visible. Assigning or transferring ownership to another active tenant user requires client-administrator permission.

Parameters

ParameterTypeRequiredDescription
drawNonnegative integer stringYesEchoed as integer.
startNonnegative integer stringYesZero-based SQL offset.
lengthPositive integer stringYesPage size, with no upper cap or -1 all-rows token.
nameStringNoName substring; SQL LIKE wildcards remain meaningful.
search[value]StringNoTrimmed substring over preset name, owner name and page_type.
orderNative DataTables listNoFirst entry only. column 0=id, 1=name, 2=page_type, 3=owner name; other numeric indices use name. dir must be asc or desc. Default id ascending; id ascending breaks ties.

Example request

$result = FM_api('UserFilters_getDT', ['draw' => '1', 'start' => '0', 'length' => '25', 'name' => 'Northwind']);

Example response

{"draw":1,"recordsTotal":"1","recordsFiltered":"1","data":[["1088","Northwind jobs","pageJobs",["1042","Alex Example"],"0","{\"searchValue\":\"Northwind\"}",""]]}

Errors and unusual responses

ResponseCondition
{"error":"not logged in"}No authenticated tenant context is available. Invalid signed credentials can be rejected by the dispatcher before the handler runs.
{"error":"missing or invalid parameter: draw"}Missing/invalid nonnegative draw; length/start have corresponding checks.
{"error":"missing or invalid parameter: order"}Malformed sort column/direction.
{"error":"configuration read failed"}A required database read fails; no write is committed.

Legacy application errors may be returned with HTTP 200. Check the decoded response for error, not only the HTTP status.

Behaviour and edge cases

  • Row positions: id, name, page_type, [owner ID, owner name], public, encoded data, empty action-cell placeholder. Database scalars/counts are strings; draw is numeric.
  • recordsTotal counts all visible own/public presets before name/search filters. recordsFiltered counts visible matches; it does not exceed recordsTotal.
  • Only the first requested sort is used. Owner sorting uses the actual owner name. No field projection, page_type restriction, feature flag or writes.

See it in Fieldmotion

CRM1

Open Settings → Filters, type a name/search term or sort a column. pageSettingsFilters.js forwards DataTables parameters and adds name.

CRM2

No direct CRM2 caller found. Settings → Filters uses UserFilters_getDataTable with mapped named fields.

Related endpoints