RosterCreate a shift

Create a shift

Needs: Roster, Read-write

Creates a shift (optionally recurring) using the same rules as the Imploy roster: funding and budget checks, leave, duplicates, segments and billing. One client is a normal shift, two or more is a group shift, no staff is a shift pool shift, and several staff is a multi-staff shift. It is saved as a draft unless publish is true.

Errors

  • 422 when funding or budget checks fail, the staff member is on accepted leave, the address is missing, or the end is not after the start.

Important: If the staff have warnings (double booking, availability, pending leave or compliance), nothing is saved and the response has needs_confirmation: true with the warnings. Check them, then send the same request with confirm_warnings: true to save anyway.

Note: The response also has a message. refs lists up to 50 refs, and more_refs_not_listed counts any beyond that.

curl -X POST "https://app.imploy.com.au/api/integrations/v1/shifts" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -d '{
  "clients": [
    12
  ],
  "start": "2026-03-02 09:00",
  "end": "2026-03-02 13:00",
  "staff": [
    {
      "staff_id": 31
    }
  ],
  "service": "Assistance With Self-Care Activities - Standard - Weekday Daytime",
  "address": "1 Example St, Perth WA 6000",
  "publish": false
}'
{
  "needs_confirmation": true,
  "warnings": [
    "..."
  ],
  "message": "Nothing was saved. Check these with the user, then resend the same request with confirm_warnings: true to save anyway."
}
POST
/shifts
POST
Base URLstring

Target server for requests. Edit to use your own host.

Bearer Token
Bearer Tokenstring
Required

An organisation access token that starts with imp_at_. Send it as Authorization: Bearer imp_at_XXXX.

An organisation access token that starts with imp_at_. Send it as Authorization: Bearer imp_at_XXXX.
Content-Typestring
Required

The media type of the request body

Options: application/json
clientsarray
Required

Client ids, 1 to 20. One client is a normal shift, two or more is a group shift.

startstring
Required

Start, YYYY-MM-DD HH:MM in the organisation's time.

endstring
Required

End, YYYY-MM-DD HH:MM. Must be after the start, and no more than 24 hours later.

staffarray

Array of staff_id (required) with an optional service for that person. Empty means a shift pool shift (single client only). Several means a multi-staff shift. Up to 10.

servicestring

A service name from the services endpoint. NDIS clients use NDIS services.

titlestring

Up to 255 characters.

addressstring

Up to 500 characters. Defaults to the client's address (or the site's).

commentsstring

Up to 5000 characters.

publishboolean

Publish to staff now. A new shift is a draft unless this is true; on edit it is unchanged.

site_idinteger

Makes it a site shift at this site. The clients must be site participants, and services are NDIS services.

recurrenceobject

Makes the shift repeat. frequency (Day, Week or Month) is required, with ends_on (YYYY-MM-DD, within two years) or occurrences (1 to 366). Also every (1 to 52), days (Mon to Sun, weekly), month_day (1 to 31) or month_week (First to Fourth, or Last) with month_weekday.

segmentsarray

Splits the shift into service blocks per staff member. Each needs staff_id, start, end and service. Up to 20.

funding_sourcestring

One of hcp, hcp_unspent, sah, temporary, tsah, thcp, ghcp or private. Defaults to the scheduler default.

temporary_funding_idstring

Required when funding_source is temporary.

charge_splitarray

Group shifts. Percent of the charge per client, each with client_id and percent (0 to 100), and optionally funding_source and temporary_funding_id. Defaults to an even split.

full_charge_per_clientboolean

Group shifts. Charge every client 100% instead of splitting.

apply_travel_claimboolean

Staff can claim travel for this shift.

travelobject

Travel details, which turn on apply_travel_claim. planned_kms (0 to 2000), charge_client (NDIS clients only), service (an NDIS travel service, required when charge_client is true) and charge_split for group shifts. On edit only the keys you send change, and null removes the travel details.

group_priceobject

Group or site shifts only. Bills the whole shift at one service, with mode of hourly (default) or fixed. null removes it.

allow_duplicateboolean

Create even if a matching shift was created recently.

confirm_warningsboolean

Save despite staff warnings (double booking, availability, pending leave, compliance). Only use after confirming.

Request Preview
Response

Response will appear here after sending the request

Authentication

header
Authorizationstring
Required

Bearer token. An organisation access token that starts with imp_at_. Send it as Authorization: Bearer imp_at_XXXX.

Body

application/json
clientsarray
Required

Client ids, 1 to 20. One client is a normal shift, two or more is a group shift.

startstring
Required

Start, YYYY-MM-DD HH:MM in the organisation's time.

endstring
Required

End, YYYY-MM-DD HH:MM. Must be after the start, and no more than 24 hours later.

staffarray

Array of staff_id (required) with an optional service for that person. Empty means a shift pool shift (single client only). Several means a multi-staff shift. Up to 10.

servicestring

A service name from the services endpoint. NDIS clients use NDIS services.

titlestring

Up to 255 characters.

addressstring

Up to 500 characters. Defaults to the client's address (or the site's).

commentsstring

Up to 5000 characters.

publishboolean

Publish to staff now. A new shift is a draft unless this is true; on edit it is unchanged.

site_idinteger

Makes it a site shift at this site. The clients must be site participants, and services are NDIS services.

recurrenceobject

Makes the shift repeat. frequency (Day, Week or Month) is required, with ends_on (YYYY-MM-DD, within two years) or occurrences (1 to 366). Also every (1 to 52), days (Mon to Sun, weekly), month_day (1 to 31) or month_week (First to Fourth, or Last) with month_weekday.

segmentsarray

Splits the shift into service blocks per staff member. Each needs staff_id, start, end and service. Up to 20.

funding_sourcestring

One of hcp, hcp_unspent, sah, temporary, tsah, thcp, ghcp or private. Defaults to the scheduler default.

temporary_funding_idstring

Required when funding_source is temporary.

charge_splitarray

Group shifts. Percent of the charge per client, each with client_id and percent (0 to 100), and optionally funding_source and temporary_funding_id. Defaults to an even split.

full_charge_per_clientboolean

Group shifts. Charge every client 100% instead of splitting.

apply_travel_claimboolean

Staff can claim travel for this shift.

travelobject

Travel details, which turn on apply_travel_claim. planned_kms (0 to 2000), charge_client (NDIS clients only), service (an NDIS travel service, required when charge_client is true) and charge_split for group shifts. On edit only the keys you send change, and null removes the travel details.

group_priceobject

Group or site shifts only. Bills the whole shift at one service, with mode of hourly (default) or fixed. null removes it.

allow_duplicateboolean

Create even if a matching shift was created recently.

confirm_warningsboolean

Save despite staff warnings (double booking, availability, pending leave, compliance). Only use after confirming.

Responses