When to use this endpoint

Use this to load saved widget configuration before rendering or editing it. The plural list is the production dashboard path; the mapped detail endpoint provides alternate field names and selection controls.

Authentication and permissions

Authenticate with signed API-key fields or a logged-in CRM session. All lookups and writes are tenant-local.

Only owned or effectively view/edit-shared groups and their active widgets can be read. A group can be copied when it is readable. None disables its share array; otherwise string user IDs or All grant that share. No reporting-feature or additional CRM2 page-role check is applied.

For signed form requests, sign numeric scalar values as strings, including values inside native nested arrays. Send JSON text only for parameters explicitly accepting JSON strings; see Getting started.

These reporting handlers require tenant schema upgrade 794 before deployment. No request path creates or repairs schema.

Parameters

ParameterTypeRequiredDescription
id / idsInteger or native arrayNoid takes precedence; values are integer-coerced. Missing IDs or an empty array leave the query unrestricted by widget ID.
fieldsNative array of stringsNoDefaults to id,name,groupID,api,grid,filter,notes,createdDate,lastEdited. Unknown fields are ignored; id is included automatically. Do not pass JSON text.
name / groupID / api / grid / filter / notes / createdDate / lastEditedMapped value or native arrayNoAdditional equality/IN filters. Quoted types use trimmed case-insensitive comparisons; numeric types are integer-coerced.
orderMapped field string or native arrayNoMapped field names or objects such as {"id":"name","dir":"desc"}. No pagination is applied.

Example request

$result = FM_api('ReportDashboard_getRequestedDetails', ['ids' => ['71'], 'fields' => ['name','groupID','grid','createdDate','lastEdited']]);

Example response

[{"name":"Sales","groupID":"12","grid":"{\"x\": 0, \"y\": 0, \"w\": 6, \"h\": 4}","createdDate":"2026-10-02 09:00:00","lastEdited":"1790931600","id":"71"}]

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":"unsupported parameter: advanceSearch"}Any advanced-search parameter is supplied.
{"error":"missing or invalid parameter: fields"}Fields is not a native array.

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

Behaviour and edge cases

  • Always returns a row array, including for one ID; no matches return [], not an error.
  • Map names differ from storage/list names: use groupID, createdDate, and lastEdited. JSON column values remain serialized text.
  • createdDate uses database FROM_UNIXTIME; lastEdited remains the stored epoch value despite its map declaring a datetime type.
  • Numeric filter arrays retain numeric values only; an empty/entirely invalid numeric filter array matches nothing, unlike an empty ids array. No default ordering is guaranteed.
  • Only active widgets in readable active groups are returned, with no pagination or default order. An unreadable or deleted ID is omitted, not returned as a placeholder.
  • The legacy advanceSearch parameter is rejected entirely, including raw where clauses; use mapped equality/IN filters.

Side effects

  • Read-only; no records or edit timestamps are changed.

See it in Fieldmotion

CRM1

No direct production caller was found; CRM1 dashboard rendering uses ReportDashboards_list.

CRM2

No direct production caller was found; CRM2 dashboard flows use the plural list endpoint.

Related endpoints