GET /api/v1/bookings/{bookingId}/reassignment-slots
List the free slots of one closer of the team, to hand this call over to them when they are busy at its current time. The school comes from the verified key. MCP equivalent: list_booking_reassignment_slots.
Slots are never in the past, never beyond that closer's booking horizon (the team horizon, narrowed by the closer's own), and never on a time where the closer already has a call, reached their daily capacity or has a connected calendar event. The call's current time is not listed.
| Role in the organization | This endpoint |
|---|---|
| OWNER | Allowed |
| ADMIN | Allowed |
| MEMBER | Head of Sales only — otherwise 403 |
Only an owner, an administrator or a Head of Sales in this school can perform this operation; setter and closer roles do not grant it. A Head of Sales member creates no API key: they reach this operation through an MCP OAuth connection.
| Requirement | Rule |
|---|---|
| Business role | Head of Sales, for a member |
| Resource scope | Current school and the permitted resource scope |
| Participation | None |
| Resource state | Active booking; the closer must be an active closer of the sales team |
| Parameter | Type | Required | Description |
|---|---|---|---|
bookingId | UUID | yes | Resource in the permitted school and scope. |
| Parameter | Type | Required | Description |
|---|---|---|---|
closerUserId | UUID | yes | A closer returned by the reassignment candidates endpoint. |
from, to | ISO 8601 instant | yes | Increasing window, at most 31 days; absolute offsets required. |
curl -X GET "$COHORTE_API_BASE_URL/api/v1/bookings/00000000-0000-4000-8000-000000000001/reassignment-slots?closerUserId=00000000-0000-4000-8000-000000000002&from=2030-01-01T00:00:00Z&to=2030-01-08T00:00:00Z" \
-H "x-api-key: $COHORTE_API_KEY"| Field | Type | Nullable | Description |
|---|---|---|---|
success | boolean | no | True on success. |
data | array | no | Free slots, in chronological order. |
data[].startsAt | ISO 8601 string | no | Exact instant to send as startsAt to the reassign endpoint. |
data[].endsAt | ISO 8601 string | no | End of the call. |
{
"success": true,
"data": [
{
"startsAt": "2030-01-10T09:00:00.000Z",
"endsAt": "2030-01-10T09:45:00.000Z"
}
]
}A slot is a reading at the time of the request. The reassign command checks it again under lock; a slot taken in between returns 409 — read the slots again and choose another one.