When to use this endpoint

Call Asset_getWhereaboutsBlockedTargets immediately before opening an existing asset’s Whereabouts picker, then exclude every returned ID from Asset-type choices.

This improves the picker, but Asset_updateData remains authoritative because another write can change the graph before save.

Authentication and permissions

The request must authenticate with signed API-key fields or a logged-in CRM session. The handler performs no additional page or role-permission check.

The lookup and any write use the authenticated tenant; an ID from another tenant cannot be addressed through this call.

Parameters

ParameterTypeRequiredDescription
idInteger stringYesPositive, non-deleted asset whose possible Asset-type targets are being evaluated.

Example request

$blocked = FM_api('Asset_getWhereaboutsBlockedTargets', [
	'id' => '4821',
]);

Example response

{
  "ok": 1,
  "blocked_ids": [4821, 4900, 4901]
}

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: id"}id is absent, zero, or otherwise not positive.
{"error":"Asset does not exist"}No non-deleted asset has that ID.

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

Behaviour and edge cases

  • The graph contains only non-deleted assets. An edge is followed only while the current asset’s location type is Asset and its target ID is positive.
  • The result includes the requested asset itself, every active asset whose chain reaches it, and every target whose existing chain already repeats an asset. Deleted targets terminate traversal and are not returned.
  • IDs are unique and sorted numerically ascending. Archived assets are not excluded.
  • The route has no pagination and makes no changes.

See it in Fieldmotion

CRM1

No production CRM1 picker call was found. CRM1’s legacy location setters deliberately do not enforce this guard.

CRM2

CRM2 refreshes this endpoint whenever an existing asset Whereabouts picker opens and applies blocked_ids as the picker’s excluded IDs.

Related endpoints