Skip to content

Update a job title

Request

Updates the fields supplied and returns the role in the same shape as reading it. Only the fields sent are touched, so an empty body is a valid request that changes nothing, and omitting training_ids leaves the assigned training alone rather than clearing it.

The role stays under the functional area it was created in; this endpoint does not move it.

Security
default
Path
functionalarea_idintegerrequired

The ID of the functional area.

idintegerrequired

The ID of the job title.

Headers
Rosterfy-Platformstring
Bodyapplication/json
namestring

The name administrators see. Required.

frontend_namestring

The name volunteers see in the portal. Required, and shown in place of name to anyone without administrator access, so it is worth setting even when the two match.

codestring

A short reference for the role, unique across the account rather than just within the group. Letters, numbers, dashes and underscores only - spaces and punctuation are rejected. Stored and returned in upper case whatever case it is sent in.

descriptionstring

What the role involves, as HTML. Shown to volunteers alongside the role. Sanitised on the way out, so unsupported markup will not be returned as sent.

training_idsArray of integers

The IDs of the training modules assigned to anyone who takes on this role. Replaces the whole list rather than adding to it, so send every module you want kept. Omitting the field leaves the stored list untouched.

curl -i -X PUT \
  'https://developer.rosterfy.com/_mock/api-docs/openapi/api/v2/headcount/functionalarea/{functionalarea_id}/jobtitle/{id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'Rosterfy-Platform: admin' \
  -d '{
    "name": "Information Desk Attendant",
    "frontend_name": "Information Desk Attendant",
    "code": "INFODESK",
    "description": "<p>Answers visitor questions at the information desk.</p>",
    "training_ids": [
      1
    ]
  }'

Responses

Bodyapplication/json
objectobject
niceobject
relationsobject
permissionsobject
Response
{ "object": { "id": 1, "headcount_functional_area_id": 1, "name": "Information Desk Attendant", "frontend_name": "Information Desk Attendant", "code": "INFODESK", "description": "<p>Answers visitor questions at the information desk.</p>", "training_ids": [ … ], "deleted_at": null, "created_at": "2026-06-09T05:36:16.000000Z", "updated_at": "2026-06-09T05:36:16.000000Z", "uuid": "e17404de-d3db-4e85-81ee-4552d19da8c4" }, "nice": { "rrn": "rrn:local:20101:job_title:1", "functional_area_name": "Guest Services" }, "relations": { "functional_area": { … } }, "permissions": { "read": true, "update": true, "delete": true } }