# Get a specific status by ID

`GET /api/configuration/statuses/{all}`

- **Success:** `200 OK`
- **Products:** Operator (`FOH`)
- **Features:** Front of House Generic Access (`FOHGENERIC`)

HTML version: [Get a specific status by ID](https://support.gladstonesoftware.cloud/reference/configuration/get-a-specific-status-by-id)

## Overview

Returns one member status — the configurable state a member record sits in, such as active, lapsed or frozen — together with the behaviour flags that state carries. The final segment of the path is the status identifier.

**The body is a single status object, not an array.** Read it as one object; the fields and sample below are shown wrapped in an array, but the response itself is not.

**A status that does not exist returns `400`, not `404`.** The lookup finds nothing and the endpoint reports it as a bad request with the plain string `GetStatus could not find the id {statusId}`. This endpoint does not return `404`, so do not branch on it.

Statuses are tenant configuration, not a fixed list — the identifiers, descriptions and flags all differ between environments, so read them from the list-statuses endpoint rather than hard-coding them.

## Endpoint

`GET {base_url}/api/configuration/statuses/{all}`

`{base_url}` is the environment URL issued to your integration. See [Authenticating with Gladstone APIs](../../guides/authenticating-with-gladstone-apis.md).

## Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `statusId` | string | Yes | The status code, up to 15 characters, as returned by the list-statuses endpoint or as the status recorded on a member. Codes are upper-cased — the create endpoint upper-cases and strips spaces from whatever you supply, and system-generated ones are prefixed `STUS` — so send the upper-case form. A code that matches nothing returns `400`. |

## Sample request

```bash title="cURL"
curl -X GET '{base_url}/api/configuration/statuses/{all}' \
  -H 'Authorization: Bearer {accessToken}' \
  -H 'X-Use-SSO: true'
```

## Response fields

| Field | Type | Description |
|-------|------|-------------|
| `[].id` | string | The status code, echoed back and always upper-cased regardless of how it was created. This is the value that appears on a member record and the value to send when setting a member's status. |
| `[].description` | string | The human-readable label for the status, up to 25 characters. This is what to show a user; the code in `id` is for machine use. |
| `[].backColourHex` | string | The background colour staff interfaces use for this status, returned in `#RRGGBB` form. Returned as an **empty string**, not null, when no colour is set. Purely presentational — it has no effect on behaviour. |
| `[].textColourHex` | string | The foreground colour paired with `backColourHex`, in the same `#RRGGBB` form and likewise an empty string when unset. The two are set independently, so one can be set without the other. |
| `[].collectSalesInvoices` | boolean | Whether sales invoices continue to be collected for members in this status. Distinguishes a status that merely marks a member as unavailable from one that also stops billing. |
| `[].treatMembersAsExpired` | boolean | Whether members in this status are treated as expired by the rest of the platform, regardless of their membership dates. This is the flag that decides whether a status effectively denies access, so check it rather than inferring from the description. |
| `[].freezeSubscriptions` | boolean | Whether subscriptions for members in this status are frozen — the flag behind statuses used for suspensions and holidays. Independent of `collectSalesInvoices`, so read both to know what happens to a member's money. |
| `[].prospectStatus` | boolean | Whether this status marks the record as a prospect rather than a member. Use it to separate lead records from joined members when both are returned by the same member endpoints. |

## Sample response

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

## Errors

| Status | Meaning | When |
|--------|---------|------|
| `400` | Bad request | No status has that code. The body is the plain string `GetStatus could not find the id {statusId}` — this is what a missing record returns, in place of a `404`. |
| `500` | Internal server error | The lookup itself failed. The body is empty. |
