RosterImport shifts

Import shifts

Needs: Roster, Read-write

Migrates shifts from another system as normal roster shifts. They are not clocked in, so clock them in and out afterwards. Rows with the same clients, start, end and site become one multi-staff shift, and a row with no staff becomes a shift pool shift. A batch imports all or nothing, and shifts that already exist (same clients, times, site and staff) are skipped, so it can be sent again.

Tip: Always run dry_run first. Keep the batch id from the real run so you can undo it.

curl -X POST "https://app.imploy.com.au/api/integrations/v1/shifts/import" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -d '{
  "dry_run": true,
  "shifts": [
    {
      "clients": [
        "Example Client"
      ],
      "staff": [
        "Example Worker"
      ],
      "start": "2026-03-02 09:00",
      "end": "2026-03-02 13:00",
      "service": "Assistance With Self-Care Activities - Standard - Weekday Daytime"
    }
  ]
}'
{
  "dry_run": true,
  "publish": true,
  "shifts": 1,
  "skipped_existing": 0,
  "failed": 0,
  "with_warnings": 0,
  "results": [
    {
      "ok": true,
      "status": "ready"
    }
  ]
}
POST
/shifts/import
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
shiftsarray
Required

Up to 100 rows, merged into at most 50 shifts. Each needs clients, start, end and service. Optional: staff, site, address, title and comments. Clients and staff can be ids or exact full names, and staff can also be emails.

publishboolean

Publish the imported shifts. Defaults to true. Shift notes can only be imported onto published shifts.

dry_runboolean

Run the whole batch through the roster and roll it back. Reports each shift that would be created, skipped or refused, and staff warnings.

confirm_warningsboolean

Import despite staff warnings. 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
shiftsarray
Required

Up to 100 rows, merged into at most 50 shifts. Each needs clients, start, end and service. Optional: staff, site, address, title and comments. Clients and staff can be ids or exact full names, and staff can also be emails.

publishboolean

Publish the imported shifts. Defaults to true. Shift notes can only be imported onto published shifts.

dry_runboolean

Run the whole batch through the roster and roll it back. Reports each shift that would be created, skipped or refused, and staff warnings.

confirm_warningsboolean

Import despite staff warnings. Only use after confirming.

Responses

Dry run