Skills
List skills
/a/Skills_list
Return every tenant skill’s ID and/or name for job constraints, form requirements, schedulers, and other selectors.
When to use this endpoint
Use Skills_list for a complete lightweight skill choice list. Use Skill_getRequestedDetails when descriptions, timestamps, exact filters, or selected IDs are needed.
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
| Parameter | Type | Required | Description |
|---|---|---|---|
fields | JSON array or native array | No | Select id and/or name. Omission, malformed/non-array JSON, an empty array, or no allowed names falls back to both fields. Duplicate allowed names are not removed. |
Example request
$skills = FM_api('Skills_list', [
'fields' => json_encode(['id', 'name']),
]);
Example response
[
{"id": "42", "name": "Electrical testing"},
{"id": "43", "name": "Gas safety"}
]
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. |
[] | The tenant has no skills. |
Legacy application errors may be returned with HTTP 200. Check the decoded response for error, not only the HTTP status.
Behaviour and edge cases
- There is no filtering, pagination, limit, or ordering. Do not rely on database return order.
- Skills have no archive/deleted state, so every row is included. Numeric IDs remain JSON strings.
- Unrecognized request keys are ignored. No tenant setting or feature flag is checked by the handler.
See it in Fieldmotion
CRM1
Open a job editor, form settings, or scheduler using required skills. These screens call Skills_list to build ID/name choices.
CRM2
Job/form workflows, the scheduler, and the Asset Timeline load this route for skill choices or label resolution. The Skills management table itself uses Skills_getDataTable.
Related endpoints
Skills_getByIdresolves a bounded ID set for exports.Skill_getRequestedDetailssupports mapped filters and richer fields.