Get all booking status restrictions

GET /api/configuration/bookings/restrictions/status

Success: 200 OK

Overview

Lists the booking status restrictions configured for the tenant. Each entry names a member status (the operator-defined state a member record sits in — active, suspended, in arrears, and so on) that is barred from making bookings. Call it to work out, before you attempt a booking, whether a member's status will block them.

The booking check is blunter than these fields suggest. When a member books, the only question asked is whether their status appears anywhere in this list; restrictionId is not considered, and the block is not narrowed to particular activities or membership types. So a status listed here is blocked from booking outright, no matter which restriction the entry was filed under. Treat the list as a flat set of barred statuses and ignore any grouping the restrictionId field appears to imply.

Each entry pairs a status with a restriction, so the same statusId can appear more than once under different restrictionId values — deduplicate on statusId before using the result.

Results come back in no guaranteed order, and there is no filter parameter and no paging: every entry is returned. When nothing is configured you get 200 with an empty array [].

This endpoint is not open to end users. Anonymous and member-scoped tokens are rejected with 403.

Endpoint

GET {base_url}/api/configuration/bookings/restrictions/status

{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/bookings/restrictions/status' \
  -H 'Authorization: Bearer {accessToken}' \
  -H 'X-Use-SSO: true'

Response fields

FieldTypeDescription
[].idinteger (int32)The identifier of this status-to-restriction pairing, assigned by Gladstone and unique within your tenant. It identifies the pairing, not the status and not the restriction — pass it to the delete endpoint to remove this single pairing. It is meaningless outside this tenant and must never be hard-coded.
[].statusIdstringThe member status barred from booking, and the field that actually matters. Maximum 15 characters, never null, and always an entry in the tenant's status list — so the value here will always resolve to a real status. Operator-defined per tenant: statuses are configured by the operator, not drawn from a platform-wide enumeration, so a code such as SUSPENDED may not exist in another tenant. Compare it against the statusId on the member record to decide whether that member can book.
[].statusDescriptionstringThe display name of the status, included from the status so you do not have to make a second call. Maximum 25 characters, and it can be null while statusId is populated — fall back to statusId when rendering. Free text the operator can edit; never match on it.
[].restrictionIdinteger (int32)The booking membership restriction this entry was filed under. Read this field with care. It can only hold values 0–255, whereas booking membership restriction ids can be larger — a restriction with an id above 255 simply cannot be referenced here. The value is also not validated when it is written, so it can point at a restriction that does not exist or has since been deleted. Nullable, and null on entries created without one. Most importantly, the booking-time check ignores this field entirely (see the Overview), so an entry with a dangling or absent restrictionId still blocks its status. Use it for grouping in an admin UI at most; do not build access logic on it.

Sample response

200 OK
[
  {
    "id": 12345,
    "statusId": "string",
    "statusDescription": "string",
    "restrictionId": 12345
  }
]

Errors

StatusMeaningWhen
403ForbiddenThe token does not carry a scope permitted on this route. Anonymous tokens and member tokens are both rejected with 403. Use back-office or integration credentials.
400Bad requestNot returned in practice: the endpoint takes no parameters and applies no validation, so there is nothing to reject. Do not write a handler that expects a meaningful message.
404Not foundNot returned in practice. The endpoint has no path parameters; an empty configuration yields 200 [], not 404. Ignore it.
500Internal server errorAny unexpected server-side failure while reading the restrictions or their statuses. The response is a bare status code with no body. Retry with backoff.

This page as markdown · All pages · llms.txt