Announcements

Notices to members.

5 endpoints · base URL https://api.aerscheduler.com

get/announcements

List announcements

Notices posted to your organization, newest first.

Query parameters

qstringFree-text filter. Matches the fields a person would search on.
expiredbooleantrue for notices whose expireAt has passed, false for those still live. Omit for both. A notice with no expireAt never expires and counts as live.
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 announcements.{ data: Announcement[] }
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/announcements \
  -H "Authorization: Bearer $AERSCHEDULER_KEY"
post/announcements

Post an announcement

Notifies the roles you target. Requires the admin role.

Request body

The notice.

titlerequiredstring
messagerequiredstring
expireAtstring
forRolesstring[]

Responses

200OKSuccess.{ data: Announcement }
201CreatedSuccess.{ data: Announcement }
400Bad RequestValidation failed.
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/announcements \
  -H "Authorization: Bearer $AERSCHEDULER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"…","message":"…"}'
patch/announcements/{id}

Update an announcement

Requires the admin role.

Path parameters

idrequiredintegerThe announcement id.

Request body

Fields to change.

titlestring
messagestring
expireAtstring

Responses

200OKSuccess.{ data: Announcement }
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 PATCH https://api.aerscheduler.com/announcements/:id \
  -H "Authorization: Bearer $AERSCHEDULER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"…","message":"…"}'
delete/announcements/{id}

Delete an announcement

Requires the admin role.

Path parameters

idrequiredintegerThe announcement id.

Responses

204No ContentSuccess. No body.
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 DELETE https://api.aerscheduler.com/announcements/:id \
  -H "Authorization: Bearer $AERSCHEDULER_KEY"
post/announcements/{id}/seen

Mark an announcement as seen

Hides the notice from your Home. It stays on the announcements page. Idempotent.

Path parameters

idrequiredintegerThe announcement id.

Responses

200OKSuccess.{ data: Announcement }
401UnauthorizedNo token, an expired token, or a malformed one. Sign in again.
403ForbiddenAuthenticated, but not allowed to do this.
404Not FoundThat announcement is not in your organization.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl -X POST https://api.aerscheduler.com/announcements/:id/seen \
  -H "Authorization: Bearer $AERSCHEDULER_KEY"