Skip to content

Create a shift

POST
/v1/shifts
curl --request POST \
--url https://api2.recruso.co.uk/v1/shifts \
--header 'Authorization: <Authorization>' \
--header 'Content-Type: application/json' \
--data '{ "shiftName": "example", "startTime": "example", "endTime": "example" }'

Creates a shift for your agency. A shift is a working pattern your agency runs — day, noon, night, all hours.

The name must not already be in use by another of your agency’s records; a clash returns 400 rather than creating a duplicate.

Returns 201 with the created record.

You only ever see and change your own agency’s records; there is no owner id on the request, and an id belonging to another agency returns 404 rather than 403 so that its existence is never disclosed.

Access. Requires a client-credentials access token. Tokens issued through the interactive user login are rejected.

Media typeapplication/json
object
shiftName
string
startTime

Reserved. Nothing reads this today; it is stored for future use. May be null.

string
nullable /^-?(\d+\.)?\d{2}:\d{2}:\d{2}(\.\d{1,7})?$/
endTime

Reserved. Nothing reads this today; it is stored for future use. May be null.

string
nullable /^-?(\d+\.)?\d{2}:\d{2}:\d{2}(\.\d{1,7})?$/
Examplegenerated
{
"shiftName": "example",
"startTime": "example",
"endTime": "example"
}

Created

Media typeapplication/json
object
shiftId
integer format: int32
shiftName
string
startTime

Reserved. Nothing reads this today; it is stored for future use. May be null.

string
nullable /^-?(\d+\.)?\d{2}:\d{2}:\d{2}(\.\d{1,7})?$/
endTime

Reserved. Nothing reads this today; it is stored for future use. May be null.

string
nullable /^-?(\d+\.)?\d{2}:\d{2}:\d{2}(\.\d{1,7})?$/
Examplegenerated
{
"shiftId": 1,
"shiftName": "example",
"startTime": "example",
"endTime": "example"
}

Bad Request

Media typeapplication/problem+json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}

Unauthorized

Media typeapplication/problem+json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}

Forbidden

Media typeapplication/problem+json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}