Get all member statuses

GET /api/configuration/statuses

Success: 200 OK

Overview

Lists the member statuses the operator has configured. Every member record carries exactly one status, and it is the operator's way of marking where a member stands — current, lapsed, suspended, a prospect who has not joined yet. Use this list to turn the status code on a member record into a label, and to populate a status picker.

Statuses are entirely operator-defined. There is no starter set and no platform-wide meaning: an id such as ACTIVE exists only if that operator created it, and its behaviour comes from the four flags on the status rather than from its name. Hard-coding a status id is a latent bug. Note that the platform uppercases ids when they are created, so active and ACTIVE are the same status and you will always receive the uppercase form.

Statuses also drive booking access: if a status appears in the booking status restrictions list, members holding it are barred from making bookings. That restriction is separate from the flags below — check both.

Results come back in no guaranteed order, and there is no filter and no paging, and there is no active/inactive concept for a status itself, so every status ever created is returned. A status cannot be deleted while any member still holds it. When none exist you get 200 with an empty array []. A change to the statuses may not appear immediately.

Endpoint

GET {base_url}/api/configuration/statuses

{base_url} is the environment URL issued to your integration. See Authenticating with Gladstone APIs.

Sample request

cURL
curl -X GET '{base_url}/api/configuration/statuses' \
  -H 'Authorization: Bearer {accessToken}' \
  -H 'X-Use-SSO: true'

Response fields

FieldTypeDescription
[].idstringThe status code held on each member record — compare a member's status against this to find the matching entry. Maximum 15 characters, unique within the tenant, and always uppercase: the platform uppercases ids on creation, so a duplicate differing only in case is rejected with a 409. Chosen by the operator, so it is tenant-specific and carries no cross-tenant meaning; resolve it at run time rather than hard-coding it.
[].descriptionstringThe status label to display. Maximum 25 characters — note that the create and update endpoints state a 255-character limit, but anything longer than 25 characters fails rather than returning a tidy validation error. Nullable, so it can be null while id is populated; fall back to id when rendering. Free text the operator can edit, so never match on it.
[].backColourHexstringSuggested background colour for the status when shown as a badge or row highlight, as #RRGGBB. Returned as an empty string, not null, when no colour is configured, so test for emptiness rather than nullness before using it in a stylesheet. New statuses created through the API default to #E0E0E0 when no colour is supplied. No alpha channel.
[].textColourHexstringSuggested foreground colour to pair with backColourHex, in the same #RRGGBB form and with the same empty-string-when-unset behaviour. The two are set independently, so an unreadable combination is possible; check contrast before adopting them verbatim.
[].collectSalesInvoicesbooleanWhether outstanding sales invoices should still be collected from members holding this status. A status with the flag unset reports false — you cannot distinguish "deliberately off" from "never configured" through this API. Always present; never null.
[].treatMembersAsExpiredbooleanWhether members holding this status should be treated as expired — the flag an operator sets on statuses such as "lapsed" so that the member no longer counts as current. An unset flag reports false. Always present; never null. Do not confuse it with the booking status restrictions, which block booking through a separate mechanism.
[].freezeSubscriptionsbooleanWhether a member moving to this status should have their subscriptions frozen rather than continuing to bill — the flag behind statuses such as "suspended". An unset flag reports false. Always present; never null.
[].prospectStatusbooleanWhether this status marks someone as a prospect — an enquiry or lead who has not become a member — rather than a member proper. Use it to keep prospect statuses out of a picker meant for members, and vice versa. An unset flag reports false. Always present; never null.

Sample response

200 OK
[
  {
    "id": "string",
    "description": "string",
    "backColourHex": "string",
    "textColourHex": "string",
    "collectSalesInvoices": true,
    "treatMembersAsExpired": true,
    "freezeSubscriptions": true,
    "prospectStatus": true
  }
]

Errors

StatusMeaningWhen
500Internal server errorAny unexpected server-side failure while reading the statuses. The response is a bare status code with no body, so there is no detail to branch on. Retry with backoff; this list changes rarely, so a cached copy is a safe fallback.

This page as markdown · All pages · llms.txt