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 per-lane capabilities. False Complete means requests may be omitted.
object
A permitted cover request, its rotation name and caller-specific capabilities.
object
The request.
object
The request identifier.
The rotation identifier.
The identifier of the lane in a window.
The user who made the request.
The users asked to cover.
The recipients who declined.
The inclusive interval start.
The exclusive interval end.
The reason given with the request.
The revision of the request.
The lifecycle state of the request.
The user who accepted. Absent until accepted.
The assignment identifier created by acceptance. Absent until accepted.
upcoming, running or ended for the requested interval at the instant the response is built.
The actions available to the caller.
object
Whether the caller may accept the request.
Whether the caller may decline the request.
Whether the caller may cancel 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 name of the rotation.
The instant the state, phase and capabilities were evaluated.
True while the request is pending or accepted.
True when the caller may accept, decline, cancel or end the request.
The earliest later instant at which the state, phase, active or actionable changes by the clock alone. Null when none will.
Whether the caller may request cover for this lane in this window and queried interval, with eligible recipients.
object
The identifier of the lane in a window.
Whether the caller may request cover for the lane in this window and interval.
The reason the caller may not request cover. Absent when they may.
The users who may be asked to cover.
The same word as reason, or null when the caller may request cover.
Examplegenerated
{ "items": [ { "request": { "id": "example", "rotationId": "example", "cellId": "example", "requesterUserId": "example", "recipientUserIds": [ "example" ], "declinedUserIds": [ "example" ], "from": "2026-04-15T12:00:00Z", "to": "2026-04-15T12:00:00Z", "reason": "example", "revision": 1, "state": "example", "acceptedUserId": "example", "arrangementId": "example", "phase": "example" }, "capability": { "canAccept": true, "canDecline": true, "canCancel": true, "canEnd": true, "reason": "example", "reasonCode": "example" }, "rotationName": "example", "asOfUtc": "2026-04-15T12:00:00Z", "active": true, "actionable": true, "changesAtUtc": "2026-04-15T12:00:00Z" } ], "capabilities": [ { "cellId": "example", "canRequest": true, "reason": "example", "eligibleUserIds": [ "example" ], "reasonCode": "example" } ], "from": "2026-04-15T12:00:00Z", "to": "2026-04-15T12:00:00Z", "complete": true, "nextCursor": "example"}