Shift Data by Season
Overview
The Shifts API provides access to employee shift schedules from flaik. Use this to synchronise scheduled shifts with external workforce management, payroll, or labour planning systems.
Two endpoints are available — use the right one for your use case:
Full pull —
GET /api/schedule/shifts/{seasonId}— initial load or complete re-sync of all active shifts for a seasonDelta pull —
GET /api/schedule/shifts/{seasonId}/delta— incremental sync of changes since a given timestamp
Results are returned in pages of up to 1,000 records. The response wrapper includes ready-made cursor values so clients can loop through pages without inspecting individual records.
Authentication
All Schedule endpoints require authentication. Include your access token in the Authorization header:
Authorization: Bearer {access_token}See the Authentication Guide for details on obtaining access tokens.
Endpoints
Full Pull — Get All Shifts by Season
Retrieves all active employee shifts for a season. Results are paginated — continue calling until hasMore is false.
Path Parameters
seasonId
integer
Yes
Season identifier — retrieve from GlobalSettings API
Query Parameters
nextAfterId
integer
No
Pagination cursor — pass the nextAfterId value from the previous response to retrieve the next page
pageSize
integer
No
Number of records per page. Maximum and default: 1000
Example Request — First Page
Example Request — Subsequent Page
Response Format
Response Wrapper Fields
data
array
Page of shift records (see field descriptions below)
hasMore
boolean
true if further pages exist. Continue requesting until this is false
pageSize
integer
The page size applied to this response
nextAfterId
integer
Pass as nextAfterId on the next request to retrieve the next page. null when hasMore is false
Delta Pull — Get Changed Shifts by Season
Retrieves shifts that have been created, updated, or deleted since a given UTC timestamp. Use this for ongoing incremental sync after an initial full pull.
Path Parameters
seasonId
integer
Yes
Season identifier — retrieve from GlobalSettings API
Query Parameters
updatedAfterUtcDateTime
datetime
Yes
Only return shifts updated after this UTC timestamp (ISO 8601: YYYY-MM-DDTHH:mm:ssZ)
nextAfterId
integer
No
Pagination cursor — pass the nextAfterId value from the previous response to retrieve the next page
pageSize
integer
No
Number of records per page. Maximum and default: 1000
Example Request — First Delta Page
Example Request — Subsequent Delta Page
Response Format
Response Wrapper Fields
data
array
Page of shift records, including soft-deleted records
hasMore
boolean
true if further pages exist. Continue requesting until this is false
pageSize
integer
The page size applied to this response
nextAfterId
integer
Pass as nextAfterId on the next request. null when hasMore is false
nextUpdatedAfterUtcDateTime
datetime
Pass as updatedAfterUtcDateTime on the next request when paginating a large delta result. Only populated when hasMore is true — you must pass both this and nextAfterId together to avoid missing or duplicating records at a timestamp boundary
When paginating a delta result, always pass both nextUpdatedAfterUtcDateTime and nextAfterId together. Omitting nextAfterId can cause duplicate or missing records at a timestamp boundary.
Shift Record Fields
shiftId
integer
Unique shift identifier
employeeId
integer
flaik employee identifier
payrollIdentifier
string
Employee identifier in your payroll system — empty string if not set
posIdentifier
string
Employee identifier in your POS system — empty string if not set
scheduledDate
date
Date the shift is scheduled (YYYY-MM-DD)
shiftName
string
Display name of the shift — empty string if not set
shiftTypeId
integer
Shift type identifier (nullable)
shiftConfigurationType
string
Configuration type assigned to the shift — empty string if not set
startTime
time
Scheduled start time (HH:mm:ss, nullable)
endTime
time
Scheduled end time (HH:mm:ss, nullable)
status
integer
Current shift status
updatedUtc
datetime
Last updated timestamp (UTC, ISO 8601: YYYY-MM-DDTHH:mm:ssZ)
deleted
boolean
true if the shift has been soft-deleted. Delta pull only — full pull never returns deleted records
Pagination
Both endpoints use the same cursor pattern documented in Pagination and Delta Sync.
Quick reference for shifts:
Soft-deleted shifts appear only on the delta pull (deleted: true); use them to tombstone removed shifts in your store.
Error Responses
400
Both
The supplied seasonId does not exist for this resort
400
Delta only
updatedAfterUtcDateTime was not provided
401
Both
Missing or invalid access token
Need help with shift data integration? Contact resortsupport@flaik.com.
Last updated
Was this helpful?
