Skip to content
ShiftlyDevelopers
Documentation menu

Positions

The jobs people are rostered into at a location.

Needs one of the settings:read or roster:read or timesheets:read or people:read or leave:read permissions, depending on the operation. The business sees it as "Business details and locations".

Fields

Position fields
FieldTypeAccessMeaning
idstringRead-onlyThe position.
namestringRead-onlyThe position's name.
descriptionstring, may be nullRead-onlyWhat the position does.
location_idstringRead-onlyThe location the position belongs to.
award_idstring, may be nullRead-onlyThe award shifts in this position are paid under.
groupobject, may be nullRead-onlyThe position group.
activebooleanRead-onlyFalse when the position is switched off for rostering.
rate_modifiernumber, may be nullRead-onlyDollars added to the hourly rate for this position. Returned only with pay:read.
archivedbooleanRead-onlyTrue when the record has been removed in Shiftly.
created_attimestampRead-onlyWhen the record was created.
updated_attimestampRead-onlyWhen the record last changed.

Operations

List positions

GET/v1/positions

Permission: settings:read, roster:read, timesheets:read, people:read, leave:read Needs any one of: settings:read, roster:read, timesheets:read, people:read, leave:read.

Query parameters
ParameterTypeMeaning
limitinteger, default 50, up to 200OptionalHow many records per page. Up to 200.
afterstringOptionalThe next_cursor from the previous page.
updated_sincetimestampOptionalOnly records changed at or after this moment. Pair it with include_archived to see removals.
include_archived"true", "false"OptionalInclude records that have been archived.
location_idstringOptionalOnly this location.
200 response
{
  "data": [
    {
      "id": "66f1c2a4b3d9e8f7a6b5c4d3",
      "name": "text",
      "description": "text",
      "location_id": "66f1c2a4b3d9e8f7a6b5c4d3",
      "award_id": "66f1c2a4b3d9e8f7a6b5c4d3",
      "group": {
        "id": null,
        "name": null,
        "award_code": null
      },
      "active": true,
      "rate_modifier": 1.5,
      "archived": true,
      "created_at": "2026-10-06T09:00:00+11:00",
      "updated_at": "2026-10-06T09:00:00+11:00"
    }
  ],
  "has_more": true,
  "next_cursor": "text"
}
Refusals
StatusWhen
400The error's code is invalid_request or range_too_long. The Errors page describes each code.
401The error's code is invalid_token or token_expired. The Errors page describes each code.
403The error's code is origin_not_allowed, permission_denied, not_available, connection_disconnected, connection_suspended or app_suspended. The Errors page describes each code.
404There is nothing at this address, or no such record in this business.
429Too many requests. Retry-After says when to try again.
500Something went wrong at Shiftly. Quote the request id.
503This environment is not set up for partner apps yet.

Get one position

GET/v1/positions/{id}

Permission: settings:read, roster:read, timesheets:read, people:read, leave:read Needs any one of: settings:read, roster:read, timesheets:read, people:read, leave:read.

200 response
{
  "id": "66f1c2a4b3d9e8f7a6b5c4d3",
  "name": "text",
  "description": "text",
  "location_id": "66f1c2a4b3d9e8f7a6b5c4d3",
  "award_id": "66f1c2a4b3d9e8f7a6b5c4d3",
  "group": {
    "id": "66f1c2a4b3d9e8f7a6b5c4d3",
    "name": "text",
    "award_code": "text"
  },
  "active": true,
  "rate_modifier": 1.5,
  "archived": true,
  "created_at": "2026-10-06T09:00:00+11:00",
  "updated_at": "2026-10-06T09:00:00+11:00"
}
Refusals
StatusWhen
400The error's code is invalid_request or range_too_long. The Errors page describes each code.
401The error's code is invalid_token or token_expired. The Errors page describes each code.
403The error's code is origin_not_allowed, permission_denied, not_available, connection_disconnected, connection_suspended or app_suspended. The Errors page describes each code.
404There is nothing at this address, or no such record in this business.
429Too many requests. Retry-After says when to try again.
500Something went wrong at Shiftly. Quote the request id.
503This environment is not set up for partner apps yet.