Currencies

Recurring requirements members must stay current on.

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

get/currencies

List my currencies

The signed-in member's standing against every tracked requirement.

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 currency records.{ data: Currency[] }
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/currencies \
  -H "Authorization: Bearer $AERSCHEDULER_KEY"
get/currencies/{currencyId}

Get a currency record

Note this takes a CURRENCY id, not a currency-type id , the two are one path segment apart and are easy to confuse.

Path parameters

currencyIdrequiredintegerThe currency id.

Responses

200OKSuccess.{ data: Currency }
401UnauthorizedNo token, an expired token, or a malformed one. Sign in again.
403ForbiddenNot yours to see.
404Not FoundNo such currency.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl https://api.aerscheduler.com/currencies/:currencyId \
  -H "Authorization: Bearer $AERSCHEDULER_KEY"
post/currencies/{currencyId}

Renew a currency

Signs off a renewal and starts a new period. Who may do this is governed by the currency type's canRenewSelf / instructorCanRenew / dispatcherCanRenew flags.

Path parameters

currencyIdrequiredintegerThe currency id.

Request body

The renewal.

completedAtstring

Responses

201CreatedSuccess.{ data: Currency }
400Bad RequestValidation failed.
401UnauthorizedNo token, an expired token, or a malformed one. Sign in again.
403ForbiddenYou may not renew this one.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl -X POST https://api.aerscheduler.com/currencies/:currencyId \
  -H "Authorization: Bearer $AERSCHEDULER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"completedAt":"2026-08-04T15:00:00-06:00"}'
patch/currencies/{currencyId}

Update a currency record

Adjusts the dates on one member's standing.

Path parameters

currencyIdrequiredintegerThe currency id.

Responses

200OKSuccess.{ data: Currency }
401UnauthorizedNo token, an expired token, or a malformed one. Sign in again.
403ForbiddenNot yours to edit.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl -X PATCH https://api.aerscheduler.com/currencies/:currencyId \
  -H "Authorization: Bearer $AERSCHEDULER_KEY"
get/currencies/types

List currency types

Every currency type in your 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 currency types.{ data: CurrencyType[] }
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/currencies/types \
  -H "Authorization: Bearer $AERSCHEDULER_KEY"
post/currencies/types

Create a currency type

Adds a currency type to your organization. Requires the admin role.

Request body

The requirement to track. Attaching member groups is what actually creates the per-member Currency records , a type created with no groups tracks nobody.

namerequiredstring
descriptionstring
expiresInMonthsinteger
expiresInDaysinteger
warningPeriodInDaysinteger
canRenewSelfboolean
instructorCanRenewboolean
dispatcherCanRenewboolean
orgUserGroupIdsinteger[]

Responses

201CreatedThe currency type that was created.{ data: CurrencyType }
400Bad RequestThe body failed validation. message says which field.
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/currencies/types \
  -H "Authorization: Bearer $AERSCHEDULER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"…"}'
get/currencies/types/{currencyTypeId}

Get a currency type

Fetches one currency type by id.

Path parameters

currencyTypeIdrequiredintegerThe currency type id.

Responses

200OKSuccess.{ data: CurrencyType }
401UnauthorizedNo token, an expired token, or a malformed one. Sign in again.
403ForbiddenAuthenticated, but not allowed to do this.
404Not FoundNo such currency type, or it belongs to another organization.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl https://api.aerscheduler.com/currencies/types/:currencyTypeId \
  -H "Authorization: Bearer $AERSCHEDULER_KEY"
patch/currencies/types/{currencyTypeId}

Update a currency type

Changes the fields you send and leaves the rest alone. Requires the admin role.

Path parameters

currencyTypeIdrequiredintegerThe currency type id.

Request body

Fields to change.

namestring
activeboolean
expiresInMonthsinteger
orgUserGroupIdsinteger[]

Responses

200OKThe updated currency type.{ data: CurrencyType }
400Bad RequestThe body failed validation.
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/currencies/types/:currencyTypeId \
  -H "Authorization: Bearer $AERSCHEDULER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"…","active":true}'
delete/currencies/types/{currencyTypeId}

Delete a currency type

Removes the currency type. Requires the admin role.

Path parameters

currencyTypeIdrequiredintegerThe currency type id.

Responses

204No ContentSuccess. No body.
400Bad RequestThe currency type could not be deleted , usually because something still references it.
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/currencies/types/:currencyTypeId \
  -H "Authorization: Bearer $AERSCHEDULER_KEY"
get/currencies/types/{currencyTypeId}/currencies

List a type's currency records

Everyone's standing against one requirement.

Path parameters

currencyTypeIdrequiredintegerThe currency type id.

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 currency records.{ data: Currency[] }
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/currencies/types/:currencyTypeId/currencies \
  -H "Authorization: Bearer $AERSCHEDULER_KEY"
get/currencies/types/{currencyTypeId}/detail

Get a currency rule detail

The rule, status totals, and a page of member standings with attached and missing document evidence.

Path parameters

currencyTypeIdrequiredintegerThe currency type id.

Query parameters

qstringSearch member name or email.
status"current" | "expiring" | "expired" | "notSignedOff"Only return members in this standing.
limitintegerMaximum member rows to return.
offsetintegerMember rows to skip.

Responses

200OKSuccess.{ data: CurrencyRuleDetail }
401UnauthorizedNo token, an expired token, or a malformed one. Sign in again.
403ForbiddenOnly administrators and dispatchers in this organization may view the roster.
404Not FoundNo such currency rule.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl https://api.aerscheduler.com/currencies/types/:currencyTypeId/detail \
  -H "Authorization: Bearer $AERSCHEDULER_KEY"