Shifts
List shifts
List shifts
GET
/
v1
/
shifts
List shifts
curl --request GET \
--url https://api.rootly.com/v1/shifts \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rootly.com/v1/shifts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.rootly.com/v1/shifts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.rootly.com/v1/shifts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.rootly.com/v1/shifts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.rootly.com/v1/shifts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rootly.com/v1/shifts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "<string>",
"type": "shifts",
"attributes": {
"schedule_id": "<string>",
"rotation_id": "<string>",
"starts_at": "<string>",
"ends_at": "<string>",
"is_override": true,
"is_shadow": true,
"user_id": 123
},
"relationships": {
"shift_override": {
"data": {
"id": "<string>",
"type": "shift_overrides"
}
},
"user": {
"data": {
"id": "<string>",
"type": "users"
}
},
"assignee": {
"data": {
"id": "<string>",
"type": "<string>"
}
}
}
}
],
"meta": {
"current_page": 123,
"next_page": 123,
"prev_page": 123,
"total_count": 123,
"total_pages": 123,
"next_cursor": "<string>"
},
"included": [
{
"id": "<string>",
"type": "<string>",
"attributes": {},
"relationships": {}
}
]
}{
"errors": [
{
"title": "<string>",
"status": "<string>",
"code": "<string>",
"detail": "<string>"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
comma separated if needed. eg: shift_override,user. Note: user is deprecated, use assignee instead.
Available options:
shift_override, user, assignee, shift_shadow Start range for shifts in ISO-8601 format. When omitted with to, defaults to to for a point-in-time lookup; when both bounds are omitted, defaults to the current time through one month ahead.
End range for shifts in ISO-8601 format. When omitted with from, defaults to from; when both bounds are omitted, defaults to the current time through one month ahead.
Page number (defaults to 1)
Number of shifts per page (defaults to 50, max 1000)
Was this page helpful?
⌘I
List shifts
curl --request GET \
--url https://api.rootly.com/v1/shifts \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rootly.com/v1/shifts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.rootly.com/v1/shifts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.rootly.com/v1/shifts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.rootly.com/v1/shifts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.rootly.com/v1/shifts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rootly.com/v1/shifts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "<string>",
"type": "shifts",
"attributes": {
"schedule_id": "<string>",
"rotation_id": "<string>",
"starts_at": "<string>",
"ends_at": "<string>",
"is_override": true,
"is_shadow": true,
"user_id": 123
},
"relationships": {
"shift_override": {
"data": {
"id": "<string>",
"type": "shift_overrides"
}
},
"user": {
"data": {
"id": "<string>",
"type": "users"
}
},
"assignee": {
"data": {
"id": "<string>",
"type": "<string>"
}
}
}
}
],
"meta": {
"current_page": 123,
"next_page": 123,
"prev_page": 123,
"total_count": 123,
"total_pages": 123,
"next_cursor": "<string>"
},
"included": [
{
"id": "<string>",
"type": "<string>",
"attributes": {},
"relationships": {}
}
]
}{
"errors": [
{
"title": "<string>",
"status": "<string>",
"code": "<string>",
"detail": "<string>"
}
]
}