Saved views and configuration
Retrieve page preference objects
/a/PageSettings_list
Load one or several pages of saved UI preferences and convert selected stored value types.
When to use this endpoint
Call on opening CRM2 screens to restore display, table and search preferences. Use the singular reader when exact stored text is required.
Authentication and permissions
Authenticate with signed API-key fields or a logged-in CRM session. Ordinary page keys, including the literal string false, use the current user; pageLayouts and pageGlobal use tenant-shared user ID 0.
Shared reads need no additional permission. Only the account administrator (user ID equals parent account ID) can write pageLayouts. pageGlobal retains its existing shared-write access for authenticated users.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
page | String or native array of strings | Yes | Single page returns its fields directly. A native page array returns a page-keyed object, even for one element. No JSON-string array parsing; empty array is invalid. |
Example request
$settings = FM_api('PageSettings_list', ['page' => ['pageJobs', 'pageTasks']]);
Example response
{"pageJobs":{"length":25,"columns":["id","name"]},"pageTasks":{}}
Errors and unusual responses
| Response | Condition |
|---|---|
{"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: page"} | Missing/empty page selector or a key over 100 characters. |
{"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
- JSON arrays decode to native arrays; JSON objects remain encoded strings for compatibility. Numeric text converts to numbers without integer truncation (12.75 remains 12.75); case-insensitive true/false tokens become booleans. Other values remain text.
- Missing pages return empty objects. No pagination or field filter. Duplicate field values resolve deterministically: shared user-ID-0 rows before legacy account-administrator fallback, and latest ID within that scope.
- Page keys are bound parameters. This is read-only: requesting any page does not migrate, remove or modify shared preferences.
See it in Fieldmotion
CRM1
No direct CRM1 production caller was found. These routes underpin CRM2 server-stored display preferences; CRM1 also keeps client-side display/filter state.
CRM2
CRM2 loads page preferences when opening a table or edit screen. Shared helpers saveSettings/saveSetting in lib.js persist display choices; filter the Network panel for this exact route. For example, opening Jobs loads its table defaults; the header also loads shared layouts/global settings.
Related endpoints
PageSetting_getValuepreserves exact raw text.PageSettings_updateMultiPagewrites multiple page objects using the corresponding shared-page rules.