Settings bookmarks
Read the legacy visible bookmark list
/a/Links_getDT
Load all shared and personal bookmarks for the legacy table
When to use this endpoint
Populate CRM1 Settings → Links with the complete visible collection for client-side search, sort and paging. Use Links_getDataTable for server paging and named fields.
Authentication and permissions
Authenticate with signed API-key fields or a logged-in CRM session. All bookmark endpoints require Settings Links View (pageSettingsLinks_view); client administrators pass the standard permission helper. Missing permission fails closed. An API key acts as its associated user.
The authenticated tenant owns the rows. Reads expose userID=0 (shared) and the acting user’s rows, even for admins. Writes to existing rows require ownership unless the actor is a client administrator; non-admins cannot edit/delete shared rows. No bookmark-specific tenant setting, department filter or separate create/edit role is consulted.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
draw | Integer | No | Integer-converted and echoed only when present/non-null. |
search / order / start / length | DataTables controls | Ignored | No server search, order, page offset or limit; processing is local to CRM1. |
Example request
$table = FM_api('Links_getDT', ['draw'=>'1']);
Example response
{"recordsTotal":"1","recordsFiltered":"1","data":[["Operations handbook","https://example.test/handbook/","1042"]],"draw":1}
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":"permission denied"} | Missing page access, non-owned existing write target, or forbidden ownership assignment. |
{"error":"missing or invalid parameter: id/ids"} | Invalid explicit ID selector; absent required selectors can instead report missing or invalid parameter: id. |
{"error":"Bookmark not found or not editable"} | An update target does not exist. |
{"error":"Unable to save bookmark changes. Check the saved state before retrying."} | Failed database/history operation or uncertain commit. Read failures instead return Unable to read bookmarks. |
Legacy application errors may be returned with HTTP 200. Check the decoded response for error, not only the HTTP status.
Behaviour and edge cases
- Each row is [name,url,id]. Both counts are strings equal to the visible data length, including for an admin. Other owners are excluded. No ordering is established.
- No matches returns an empty data array and string zero counts. Read failure returns an error. No date/feature filter is applied.
- Native request arrays are required where stated; JSON strings are not decoded. No direct mobile app/m-service caller for this Settings-bookmark family was found. Bookmark IDs are unrelated to document share tokens.
Side effects
- Read-only, with no icon refresh or access audit.
See it in Fieldmotion
CRM1
Settings → Links calls Links_getDT; serverSide is disabled, so DataTables handles paging/search locally.
CRM2
No direct production caller found. Its Links table uses Links_getDataTable.
Related endpoints
- Link_save performs optional site/icon discovery; Link_createData stores mapped values directly.
- Link_getRequestedDetails returns a bare array; Links_getDataTable returns a table envelope.
- Link_updateData changes multiple fields; Link_updateField changes one.
- Link_delete removes one bookmark; Links_deleteData handles an explicit batch.
- LinkShareable_new creates a bearer document/file URL, a separate workflow.