Booking requests
When org policy requires approval, members submit requests and desk staff approve or decline them before a reservation is created.
8 endpoints · base URL https://api.aerscheduler.com
/booking-requestsList pending booking requests
Owners, admins, and dispatchers can list pending requests for their organization.
Query parameters
limit | integer | Rows to return, 1,1000. Defaults to 1000; a larger value is clamped rather than rejected. |
offset | integer | Rows to skip, for paging. Defaults to 0. |
sort | string | Field to order by before paging, as a dot path into the row , total, user.firstName. Omit to keep the endpoint's own order. Numbers and ISO timestamps order as numbers and instants, not as text, and empty values always sort last regardless of direction. Ordering happens before the page is cut, so it orders the whole collection rather than the page you are holding. |
order | "asc" | "desc" | asc (default) or desc. Only meaningful with sort. |
Responses
200 | OK | The pending booking requests.→ { data: BookingRequest[] } |
401 | Unauthorized | No token, an expired token, or a malformed one. Sign in again. |
403 | Forbidden | Authenticated, but not allowed to do this. |
429 | Too Many Requests | Rate limited. Retry-After says how long to wait. |
curl https://api.aerscheduler.com/booking-requests \
-H "Authorization: Bearer $AERSCHEDULER_KEY"/booking-requestsSubmit a booking request
Creates a pending booking request when org policy requires approval for this member.
Request body
The requested window and personnel.
startrequired | string | |
endrequired | string | |
typerequired | string | |
title | string | |
timeZoneName | string | |
notes | string | |
resource | object | |
location | object | |
rating | object | |
personnel | object |
Responses
201 | Created | Success.→ { data: BookingRequest } |
400 | Bad Request | The request is invalid or approval is not required. |
401 | Unauthorized | No token, an expired token, or a malformed one. Sign in again. |
403 | Forbidden | Authenticated, but not allowed to do this. |
429 | Too Many Requests | Rate limited. Retry-After says how long to wait. |
curl -X POST https://api.aerscheduler.com/booking-requests \
-H "Authorization: Bearer $AERSCHEDULER_KEY" \
-H "Content-Type: application/json" \
-d '{"start":"2026-08-04T15:00:00-06:00","end":"2026-08-04T15:00:00-06:00","type":"…"}'/booking-requests/{id}Get a booking request
Desk staff or the requester can read one booking request.
Path parameters
idrequired | integer | The booking request id. |
Responses
200 | OK | Success.→ { data: BookingRequest } |
401 | Unauthorized | No token, an expired token, or a malformed one. Sign in again. |
403 | Forbidden | Authenticated, but not allowed to do this. |
404 | Not Found | Booking request not found. |
429 | Too Many Requests | Rate limited. Retry-After says how long to wait. |
curl https://api.aerscheduler.com/booking-requests/:id \
-H "Authorization: Bearer $AERSCHEDULER_KEY"/booking-requests/meList my booking requests
Lists booking requests submitted by the signed-in member.
Query parameters
limit | integer | Rows to return, 1,1000. Defaults to 1000; a larger value is clamped rather than rejected. |
offset | integer | Rows to skip, for paging. Defaults to 0. |
sort | string | Field to order by before paging, as a dot path into the row , total, user.firstName. Omit to keep the endpoint's own order. Numbers and ISO timestamps order as numbers and instants, not as text, and empty values always sort last regardless of direction. Ordering happens before the page is cut, so it orders the whole collection rather than the page you are holding. |
order | "asc" | "desc" | asc (default) or desc. Only meaningful with sort. |
Responses
200 | OK | Your booking requests.→ { data: BookingRequest[] } |
401 | Unauthorized | No token, an expired token, or a malformed one. Sign in again. |
403 | Forbidden | Authenticated, but not allowed to do this. |
429 | Too Many Requests | Rate limited. Retry-After says how long to wait. |
curl https://api.aerscheduler.com/booking-requests/me \
-H "Authorization: Bearer $AERSCHEDULER_KEY"/booking-requests/{id}/approveApprove a booking request
Desk staff approves a pending request and creates the corresponding reservation.
Path parameters
idrequired | integer | The booking request id. |
Request body
Optional assignment overrides.
resource | object | |
location | object | |
instructorOrgUserId | integer | |
personnel | object | |
title | string |
Responses
200 | OK | Success.→ { data: BookingRequest } |
401 | Unauthorized | No token, an expired token, or a malformed one. Sign in again. |
403 | Forbidden | Authenticated, but not allowed to do this. |
409 | The request is no longer pending. | |
429 | Too Many Requests | Rate limited. Retry-After says how long to wait. |
curl -X POST https://api.aerscheduler.com/booking-requests/:id/approve \
-H "Authorization: Bearer $AERSCHEDULER_KEY" \
-H "Content-Type: application/json" \
-d '{"resource":{},"location":{}}'/booking-requests/{id}/cancelCancel a booking request
The requester or desk staff cancels a pending request.
Path parameters
idrequired | integer | The booking request id. |
Responses
200 | OK | Success.→ { data: BookingRequest } |
401 | Unauthorized | No token, an expired token, or a malformed one. Sign in again. |
403 | Forbidden | Authenticated, but not allowed to do this. |
409 | The request is no longer pending. | |
429 | Too Many Requests | Rate limited. Retry-After says how long to wait. |
curl -X POST https://api.aerscheduler.com/booking-requests/:id/cancel \
-H "Authorization: Bearer $AERSCHEDULER_KEY"/booking-requests/{id}/rejectReject a booking request
Desk staff declines a pending request without touching the schedule.
Path parameters
idrequired | integer | The booking request id. |
Request body
Optional reason shown to the member.
reason | string |
Responses
200 | OK | Success.→ { data: BookingRequest } |
401 | Unauthorized | No token, an expired token, or a malformed one. Sign in again. |
403 | Forbidden | Authenticated, but not allowed to do this. |
409 | The request is no longer pending. | |
429 | Too Many Requests | Rate limited. Retry-After says how long to wait. |
curl -X POST https://api.aerscheduler.com/booking-requests/:id/reject \
-H "Authorization: Bearer $AERSCHEDULER_KEY" \
-H "Content-Type: application/json" \
-d '{"reason":"…"}'/booking-requests/policy/meCheck if I need approval
Returns whether the signed-in member must submit booking requests instead of instant self-book.
Responses
200 | OK | Success.→ { data: object } |
401 | Unauthorized | No token, an expired token, or a malformed one. Sign in again. |
403 | Forbidden | Authenticated, but not allowed to do this. |
429 | Too Many Requests | Rate limited. Retry-After says how long to wait. |
curl https://api.aerscheduler.com/booking-requests/policy/me \
-H "Authorization: Bearer $AERSCHEDULER_KEY"