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
items
required
Array<object>

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

object
request
required

Requested interval, selected audience and current cover lifecycle state.

object
id
required
string
rotationId
required
string
cellId
required
string
requesterUserId
required
string
recipientUserIds
required
Array<string>
declinedUserIds
required
Array<string>
from
required
string format: date-time
to
required
string format: date-time
reason
required
string
revision
required
integer | string format: int64
/^-?(?:0|[1-9]\d*)$/
state
required
string
acceptedUserId
required
null | string
arrangementId
required
null | string
capability
required

Actions currently permitted for this caller. Mutations recheck these permissions.

object
canAccept
required
boolean
canDecline
required
boolean
canCancel
required
boolean
canEnd
required
boolean
reason
required
null | string
rotationName
required
string
capabilities
required
Array<object>

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

object
cellId
required
string
canRequest
required
boolean
reason
required
null | string
eligibleUserIds
required
Array<string>
from
required
string format: date-time
to
required
string format: date-time
complete
required
boolean
nextCursor
null | string
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"
},
"capability": {
"canAccept": true,
"canDecline": true,
"canCancel": true,
"canEnd": true,
"reason": "example"
},
"rotationName": "example"
}
],
"capabilities": [
{
"cellId": "example",
"canRequest": true,
"reason": "example",
"eligibleUserIds": [
"example"
]
}
],
"from": "2026-04-15T12:00:00Z",
"to": "2026-04-15T12:00:00Z",
"complete": true,
"nextCursor": "example"
}