List cover requests
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Get, RequestUri = new Uri("https://api.roundrobinbot.eu/v1/rotations/example/cover-requests?from=2026-04-15T12%3A00%3A00Z&to=2026-04-15T12%3A00%3A00Z"), Headers = { { "Authorization", "Bearer <token>" }, },};using (var response = await client.SendAsync(request)){ response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);}package main
import ( "fmt" "net/http" "io")
func main() {
url := "https://api.roundrobinbot.eu/v1/rotations/example/cover-requests?from=2026-04-15T12%3A00%3A00Z&to=2026-04-15T12%3A00%3A00Z"
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(res) fmt.Println(string(body))
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder() .url("https://api.roundrobinbot.eu/v1/rotations/example/cover-requests?from=2026-04-15T12%3A00%3A00Z&to=2026-04-15T12%3A00%3A00Z") .get() .addHeader("Authorization", "Bearer <token>") .build();
Response response = client.newCall(request).execute();import axios from 'axios';
const options = { method: 'GET', url: 'https://api.roundrobinbot.eu/v1/rotations/example/cover-requests', params: {from: '2026-04-15T12:00:00Z', to: '2026-04-15T12:00:00Z'}, headers: {Authorization: 'Bearer <token>'}};
try { const { data } = await axios.request(options); console.log(data);} catch (error) { console.error(error);}const url = 'https://api.roundrobinbot.eu/v1/rotations/example/cover-requests?from=2026-04-15T12%3A00%3A00Z&to=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.roundrobinbot.eu/v1/rotations/example/cover-requests?from=2026-04-15T12%3A00%3A00Z&to=2026-04-15T12%3A00%3A00Z' \ --header 'Authorization: Bearer <token>'Requires read:oncall and a key whose workspace and rotation selector permit this rotation. Returns requests overlapping the half-open UTC range [from, to), action capabilities and the rotation ETag. API keys have no participant identity, so all participant action capabilities are false. Returns at most 100 matching requests. Pass nextCursor as cursor with the same range for the next page. The final page has complete true and no nextCursor. An invalid cursor or a changed range returns 422 with invalidCoverCursor; restart without the cursor. Participant actions use these routes with a Slack member access token. API keys cannot perform them.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Query Parameters
Section titled “Query Parameters”Responses
Section titled “Responses”OK
Bounded overlapping requests and cell capabilities. False Complete means requests may be omitted.
object
Whether the caller may request cover for this cell and queried interval, with eligible recipients.
object
Whether the caller may request cover for the cell and interval.
The cell identifier.
The users who may be asked to cover.
The reason the caller may not request cover. Absent when they may.
The same word as reason, or null when the caller may request cover.
A permitted cover request, its rotation name and caller-specific capabilities.
object
True when the caller may accept, decline, cancel or end the request.
True while the request is pending or accepted.
The instant the state, phase and capabilities were evaluated.
The actions available to the caller.
object
Whether the caller may accept the request.
Whether the caller may cancel the request.
Whether the caller may decline the request.
Whether the caller may end the accepted cover.
The reason the actions are unavailable. Absent when they are available.
The same word as reason, or null when the actions are available.
The earliest later instant at which the state, phase, active or actionable changes by the clock alone. Null when none will.
The request.
object
The user who accepted. Absent until accepted.
The assignment identifier created by acceptance. Absent until accepted.
The cell identifier.
The recipients who declined.
The inclusive interval start.
The request identifier.
upcoming, running or ended for the requested interval at the instant the response is built.
The reason given with the request.
The users asked to cover.
The user who made the request.
The revision of the request.
The rotation identifier.
The lifecycle state of the request.
The exclusive interval end.
The name of the rotation.
Examplegenerated
{ "capabilities": [ { "canRequest": true, "cellId": "example", "eligibleUserIds": [ "example" ], "reason": "example", "reasonCode": "example" } ], "complete": true, "from": "2026-04-15T12:00:00Z", "items": [ { "actionable": true, "active": true, "asOfUtc": "2026-04-15T12:00:00Z", "capability": { "canAccept": true, "canCancel": true, "canDecline": true, "canEnd": true, "reason": "example", "reasonCode": "example" }, "changesAtUtc": "2026-04-15T12:00:00Z", "request": { "acceptedUserId": "example", "arrangementId": "example", "cellId": "example", "declinedUserIds": [ "example" ], "from": "2026-04-15T12:00:00Z", "id": "example", "phase": "example", "reason": "example", "recipientUserIds": [ "example" ], "requesterUserId": "example", "revision": 1, "rotationId": "example", "state": "example", "to": "2026-04-15T12:00:00Z" }, "rotationName": "example" } ], "nextCursor": "example", "to": "2026-04-15T12:00:00Z"}