curl --request GET \
--url https://{organization}.rescueconsole.com/api/shifts/windows \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{organization}.rescueconsole.com/api/shifts/windows', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{organization}.rescueconsole.com/api/shifts/windows"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"results": [
{
"id": "<string>",
"starts_at": "2023-11-07T05:31:56Z",
"ends_at": "2023-11-07T05:31:56Z",
"status": "open",
"roles": [
{
"id": "<string>",
"window_id": "<string>",
"role_id": "<string>",
"capacity": 2,
"booking_mode": "whole",
"bookings": [
{
"id": "<string>",
"window_role_id": "<string>",
"person_id": "<string>",
"starts_at": "2023-11-07T05:31:56Z",
"ends_at": "2023-11-07T05:31:56Z",
"status": "booked",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"tenant_id": "<string>",
"hours_logged": 1,
"signed_off_by": "<string>",
"signed_off_at": "2023-11-07T05:31:56Z",
"notes": "<string>",
"cancellation_requested_at": "2023-11-07T05:31:56Z",
"cancellation_reason": "<string>",
"cancellation_decision": "released",
"cancellation_decided_by": "<string>",
"cancellation_decided_at": "2023-11-07T05:31:56Z",
"cancellation_decision_notes": "<string>",
"custom_fields": "<string>"
}
],
"tenant_id": "<string>",
"role_key": "<string>",
"role_label": "<string>",
"min_minutes": 123,
"max_minutes": 123,
"max_party_size": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"for_me": {
"eligible": true,
"message": "<string>",
"free": [
{
"starts_at": "2023-11-07T05:31:56Z",
"ends_at": "2023-11-07T05:31:56Z"
}
]
}
}
],
"tenant_id": "<string>",
"event_id": "<string>",
"location_unit_id": "<string>",
"notes": "<string>",
"custom_fields": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "<string>"
}
],
"limit": 123,
"offset": 123,
"has_more": true,
"total": 123
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}List shifts
One page of shifts, soonest first. Each comes with its roles and, on each role, the sign-ups that still hold time. A page holds 200 unless you ask for fewer. Needs read on Shifts.
Yours, or a coordinator’s: without read on People, the sign-ups on each shift come back whole only for the person who made the key; everybody else’s is reduced to id, person_id, window_role_id, starts_at, ends_at, status and is_peer: true. No hours, outcome, sign-off or notes.
curl --request GET \
--url https://{organization}.rescueconsole.com/api/shifts/windows \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{organization}.rescueconsole.com/api/shifts/windows', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{organization}.rescueconsole.com/api/shifts/windows"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"results": [
{
"id": "<string>",
"starts_at": "2023-11-07T05:31:56Z",
"ends_at": "2023-11-07T05:31:56Z",
"status": "open",
"roles": [
{
"id": "<string>",
"window_id": "<string>",
"role_id": "<string>",
"capacity": 2,
"booking_mode": "whole",
"bookings": [
{
"id": "<string>",
"window_role_id": "<string>",
"person_id": "<string>",
"starts_at": "2023-11-07T05:31:56Z",
"ends_at": "2023-11-07T05:31:56Z",
"status": "booked",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"tenant_id": "<string>",
"hours_logged": 1,
"signed_off_by": "<string>",
"signed_off_at": "2023-11-07T05:31:56Z",
"notes": "<string>",
"cancellation_requested_at": "2023-11-07T05:31:56Z",
"cancellation_reason": "<string>",
"cancellation_decision": "released",
"cancellation_decided_by": "<string>",
"cancellation_decided_at": "2023-11-07T05:31:56Z",
"cancellation_decision_notes": "<string>",
"custom_fields": "<string>"
}
],
"tenant_id": "<string>",
"role_key": "<string>",
"role_label": "<string>",
"min_minutes": 123,
"max_minutes": 123,
"max_party_size": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"for_me": {
"eligible": true,
"message": "<string>",
"free": [
{
"starts_at": "2023-11-07T05:31:56Z",
"ends_at": "2023-11-07T05:31:56Z"
}
]
}
}
],
"tenant_id": "<string>",
"event_id": "<string>",
"location_unit_id": "<string>",
"notes": "<string>",
"custom_fields": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "<string>"
}
],
"limit": 123,
"offset": 123,
"has_more": true,
"total": 123
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}Authorizations
An API key from Settings, API keys. It starts with rc_live_.
Query Parameters
Shifts at one location.
The shifts of one schedule.
open, closed, cancelled Shifts that end on or after this date, or date and time.
Shifts that start on or before this date, or date and time.
Shifts that offer this role.
Adds for_me to each role: whether this person may take it, why not, and which stretches are still free. A person's record ID, or me for the person who created the key.
How many to return. 200 unless you say, 200 at most.
1 <= x <= 200How many to skip, for the next page.
x >= 0