The ShiftPlanner REST API allows you to display your shifts on your own website or integrate them into your application.
You can query shifts with the same filters available on the All shifts.
The API returns JSON and uses token-based authentication. Each request must include
your API token in the request header. Tokens are only available with
Premium accounts and can be
can be found here.
All active groups are returned, including private groups. Make sure your API token
is only shared with trusted parties.
Authentication
Every request must include an Authorization header with a Bearer token:
Requests without a valid token receive a 401 Unauthorized response:
To request an API token, contact ShiftPlanner support.
Shifts endpoint
Returns a paginated list of shifts for your account. Without filters, the next 12 months of shifts are returned.
Filter parameters
All filter parameters are optional and can be combined freely.
Parameter
Type
Description
group_ids[]
array of integers
Filter by one or more group IDs.
months[]
array of integers
Filter by month number (1 = January … 12 = December).
years[]
array of integers
Filter by year, e.g. 2026.
weeks[]
array of integers
Filter by ISO week number (1–53).
days[]
array of integers
Filter by day of week (1 = Sunday, 2 = Monday … 7 = Saturday).
location_ids[]
array of integers
Filter by one or more location IDs.
day
date (YYYY-MM-DD)
Return shifts for a single specific date.
Pagination parameters
Parameter
Default
Description
page
1
Page number to retrieve.
per_page
500
Results per page. Maximum is 500.
Response format
The response is JSON with a shifts array and a meta object for pagination.
Field reference
Field
Description
id
Unique shift identifier.
date
Start date of the shift (YYYY-MM-DD).
start_time / end_time
Start and end time (HH:MM, 24-hour).
end_date
End date of the shift. Same as date for single-day shifts.
group
The group this shift belongs to (id + name).
location
Location name and address. null if no location is set.
person
Name of the assigned person. null if the shift is open.