List shifts
Returns the authenticated user’s shifts within a date range. Optionally filter to specific templates with templateId, and set excludeOldShifts to drop shifts that ended before the range.
GET
/v1/shifts
const url = 'https://api.shiftsync.app/v1/shifts?startDate=2026-04-15T12%3A00%3A00Z&endDate=2026-04-15T12%3A00%3A00Z';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.shiftsync.app/v1/shifts?startDate=2026-04-15T12%3A00%3A00Z&endDate=2026-04-15T12%3A00%3A00Z' \ --header 'Authorization: Bearer <token>'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Responses
Section titled “Responses”Shifts in the requested range
Media typeapplication/json
object
items
required
Array<object>
object
id
required
integer
startDate
required
string format: date-time
endDate
required
string format: date-time
isSplit
boolean
splitEndTime
string format: date-time
splitStartTime
string format: date-time
userId
required
integer
templateId
required
integer
tempId
required
string
notes
string
visibility
required
string
seriesId
integer
Example
{ "items": [ { "id": 0, "startDate": "2026-01-01T09:00:00.000Z", "endDate": "2026-01-01T09:00:00.000Z", "isSplit": true, "splitEndTime": "2026-01-01T09:00:00.000Z", "splitStartTime": "2026-01-01T09:00:00.000Z", "userId": 0, "templateId": 0, "tempId": "string", "notes": "string", "visibility": "public", "seriesId": 0 } ]}