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

ParameterTypeRequiredDescription
fieldsJSON array or native arrayNoSelect 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

ResponseCondition
{"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