Skip to content

List cover requests

GET
/v1/rotations/{rotationId}/cover-requests
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.

rotationId
required
string
from
required
string format: date-time
to
required
string format: date-time
cursor
string

OK

Media typeapplication/json

Bounded overlapping requests and cell capabilities. False Complete means requests may be omitted.

object
capabilities
required
Array<object>

Whether the caller may request cover for this cell and queried interval, with eligible recipients.

object
canRequest
required

Whether the caller may request cover for the cell and interval.

boolean
cellId
required

The cell identifier.

string
eligibleUserIds
required

The users who may be asked to cover.

Array<string>
reason
required

The reason the caller may not request cover. Absent when they may.

null | string
reasonCode
required

The same word as reason, or null when the caller may request cover.

null | string
complete
required
boolean
from
required
string format: date-time
items
required
Array<object>

A permitted cover request, its rotation name and caller-specific capabilities.

object
actionable
required

True when the caller may accept, decline, cancel or end the request.

boolean
active
required

True while the request is pending or accepted.

boolean
asOfUtc
required

The instant the state, phase and capabilities were evaluated.

string format: date-time
capability
required

The actions available to the caller.

object
canAccept
required

Whether the caller may accept the request.

boolean
canCancel
required

Whether the caller may cancel the request.

boolean
canDecline
required

Whether the caller may decline the request.

boolean
canEnd
required

Whether the caller may end the accepted cover.

boolean
reason
required

The reason the actions are unavailable. Absent when they are available.

null | string
reasonCode
required

The same word as reason, or null when the actions are available.

null | string
changesAtUtc
required

The earliest later instant at which the state, phase, active or actionable changes by the clock alone. Null when none will.

null | string format: date-time
request
required

The request.

object
acceptedUserId
required

The user who accepted. Absent until accepted.

null | string
arrangementId
required

The assignment identifier created by acceptance. Absent until accepted.

null | string
cellId
required

The cell identifier.

string
declinedUserIds
required

The recipients who declined.

Array<string>
from
required

The inclusive interval start.

string format: date-time
id
required

The request identifier.

string
phase
required

upcoming, running or ended for the requested interval at the instant the response is built.

string
reason
required

The reason given with the request.

string
recipientUserIds
required

The users asked to cover.

Array<string>
requesterUserId
required

The user who made the request.

string
revision
required

The revision of the request.

integer format: int64
rotationId
required

The rotation identifier.

string
state
required

The lifecycle state of the request.

string
to
required

The exclusive interval end.

string format: date-time
rotationName
required

The name of the rotation.

string
nextCursor
null | string
to
required
string format: date-time
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"
}