AerScheduler

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

get/booking-requests

List pending booking requests

Owners, admins, and dispatchers can list pending requests for their organization.

Query parameters

limitintegerRows to return, 1,1000. Defaults to 1000; a larger value is clamped rather than rejected.
offsetintegerRows to skip, for paging. Defaults to 0.
sortstringField 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

200OKThe pending booking requests.{ data: BookingRequest[] }
401UnauthorizedNo token, an expired token, or a malformed one. Sign in again.
403ForbiddenAuthenticated, but not allowed to do this.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl https://api.aerscheduler.com/booking-requests \
  -H "Authorization: Bearer $AERSCHEDULER_KEY"
post/booking-requests

Submit a booking request

Creates a pending booking request when org policy requires approval for this member.

Request body

The requested window and personnel.

startrequiredstring
endrequiredstring
typerequiredstring
titlestring
timeZoneNamestring
notesstring
resourceobject
locationobject
ratingobject
personnelobject

Responses

201CreatedSuccess.{ data: BookingRequest }
400Bad RequestThe request is invalid or approval is not required.
401UnauthorizedNo token, an expired token, or a malformed one. Sign in again.
403ForbiddenAuthenticated, but not allowed to do this.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
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":"…"}'
get/booking-requests/{id}

Get a booking request

Desk staff or the requester can read one booking request.

Path parameters

idrequiredintegerThe booking request id.

Responses

200OKSuccess.{ data: BookingRequest }
401UnauthorizedNo token, an expired token, or a malformed one. Sign in again.
403ForbiddenAuthenticated, but not allowed to do this.
404Not FoundBooking request not found.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl https://api.aerscheduler.com/booking-requests/:id \
  -H "Authorization: Bearer $AERSCHEDULER_KEY"
get/booking-requests/me

List my booking requests

Lists booking requests submitted by the signed-in member.

Query parameters

limitintegerRows to return, 1,1000. Defaults to 1000; a larger value is clamped rather than rejected.
offsetintegerRows to skip, for paging. Defaults to 0.
sortstringField 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

200OKYour booking requests.{ data: BookingRequest[] }
401UnauthorizedNo token, an expired token, or a malformed one. Sign in again.
403ForbiddenAuthenticated, but not allowed to do this.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl https://api.aerscheduler.com/booking-requests/me \
  -H "Authorization: Bearer $AERSCHEDULER_KEY"
post/booking-requests/{id}/approve

Approve a booking request

Desk staff approves a pending request and creates the corresponding reservation.

Path parameters

idrequiredintegerThe booking request id.

Request body

Optional assignment overrides.

resourceobject
locationobject
instructorOrgUserIdinteger
personnelobject
titlestring

Responses

200OKSuccess.{ data: BookingRequest }
401UnauthorizedNo token, an expired token, or a malformed one. Sign in again.
403ForbiddenAuthenticated, but not allowed to do this.
409The request is no longer pending.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl -X POST https://api.aerscheduler.com/booking-requests/:id/approve \
  -H "Authorization: Bearer $AERSCHEDULER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"resource":{},"location":{}}'
post/booking-requests/{id}/cancel

Cancel a booking request

The requester or desk staff cancels a pending request.

Path parameters

idrequiredintegerThe booking request id.

Responses

200OKSuccess.{ data: BookingRequest }
401UnauthorizedNo token, an expired token, or a malformed one. Sign in again.
403ForbiddenAuthenticated, but not allowed to do this.
409The request is no longer pending.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl -X POST https://api.aerscheduler.com/booking-requests/:id/cancel \
  -H "Authorization: Bearer $AERSCHEDULER_KEY"
post/booking-requests/{id}/reject

Reject a booking request

Desk staff declines a pending request without touching the schedule.

Path parameters

idrequiredintegerThe booking request id.

Request body

Optional reason shown to the member.

reasonstring

Responses

200OKSuccess.{ data: BookingRequest }
401UnauthorizedNo token, an expired token, or a malformed one. Sign in again.
403ForbiddenAuthenticated, but not allowed to do this.
409The request is no longer pending.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl -X POST https://api.aerscheduler.com/booking-requests/:id/reject \
  -H "Authorization: Bearer $AERSCHEDULER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"reason":"…"}'
get/booking-requests/policy/me

Check if I need approval

Returns whether the signed-in member must submit booking requests instead of instant self-book.

Responses

200OKSuccess.{ data: object }
401UnauthorizedNo token, an expired token, or a malformed one. Sign in again.
403ForbiddenAuthenticated, but not allowed to do this.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl https://api.aerscheduler.com/booking-requests/policy/me \
  -H "Authorization: Bearer $AERSCHEDULER_KEY"