Assets
Get asset names
/a/Assets_getNames
Download asset identity changes in last-edited order for client-side name caches.
When to use this endpoint
Use Assets_getNames to seed a compact asset cache or fetch rows newer than a previous checkpoint. Preserve the final row’s last_edited value for the next request.
Authentication and permissions
The request must authenticate with signed API-key fields or a logged-in CRM session. The handler requires login or an established tenant database context and performs no additional Asset-page or role-permission check unless the page says otherwise.
Every query and write uses the authenticated tenant’s tables. CRM1 and CRM2 may hide actions through client-side permissions that these collection routes do not repeat.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
last_edited | Datetime string | No | When nonblank, selects rows strictly newer than this value and strictly older than the server’s current YYYY-MM-DD HH:MM:SS. The format is not validated. |
Example request
$changes = FM_api('Assets_getNames', [
'last_edited' => '2026-09-30 12:00:00',
]);
Example response
[
{"id": "4821", "name": "Compressor 4", "code": "CMP-004", "archived": "0"},
{"id": "4822", "name": "Compressor 8", "code": "CMP-008", "archived": "1", "last_edited": "2026-10-01 09:15:00"}
]
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. |
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 query has no deleted, archived, or active filter. Soft-deleted rows therefore remain in the change feed so clients can correlate deletion synchronization.
- Rows are ordered only by
last_edited; ties have no stable secondary ordering. There is no page size or limit. - The session write lock is released before the database query.
See it in Fieldmotion
CRM1
CRM1 header/bootstrap code posts to this endpoint to populate its asset-name cache.
CRM2
CRM2 header/bootstrap code uses the same incremental cache request against the CRM API server.
Related endpoints
Assets_listByLastEditedreturns only non-deleted IDs from an inclusive checkpoint.- Short polling explains deletion and change synchronization.