# List all business rules

`GET /api/business-rules`

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

HTML version: [List all business rules](https://support.gladstonesoftware.cloud/reference/bookings/list-all-business-rules)

## Overview

Lists every business rule configured for the tenant, active or not.

A business rule is a piece of tenant configuration that says "when *this* happens in the platform, do *that* to the member it happened to". Each rule has one **trigger** — the platform event that starts it, such as a membership being taken out — and one or more **actions**. When the trigger fires, the rule picks a single action by testing the member against each action's conditions, and that action's results send an email or call a webhook.

This is a summary listing. It deliberately omits each rule's actions, conditions and results; fetch those one rule at a time with [Retrieve details for a business rule](retrieve-details-for-a-business-rule.md). Returns an empty array when no rules are configured, never `404`.

Two behaviours worth knowing before you build on this. Rules are not mutually exclusive: if several rules share a trigger, **all** of the active ones fire, which is how tenants end up sending duplicate emails. And only active rules are considered — an inactive rule stays in this list but never runs.

## Endpoint

`GET {base_url}/api/business-rules`

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

## Sample request

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

## Response fields

| Field | Type | Description |
|-------|------|-------------|
| `[].id` | integer (int32) | The rule's identifier. Pass it as the path parameter to [Retrieve details for a business rule](retrieve-details-for-a-business-rule.md) to get the actions, conditions and results this listing omits. Rules are evaluated in ascending id order when several share a trigger. |
| `[].name` | string | The name of the rule's **trigger** — the platform event that fires it — not a name given to the rule itself. Rules have no name of their own; use `description` to tell two rules on the same trigger apart. Several rules can therefore return the same `name`. |
| `[].description` | string | The rule's own description, as entered by whoever configured it. This is the only field that distinguishes one rule from another in this listing. |
| `[].isActive` | boolean | Whether the rule runs. Only active rules run when a trigger fires; an inactive rule remains configured and still appears here, but its actions never execute. |

## Sample response

```json title="200 OK"
[
  {
    "id": 12345,
    "name": "string",
    "description": "string",
    "isActive": true
  }
]
```

## Errors

| Status | Meaning | When |
|--------|---------|------|
| `500` | Internal server error | An unexpected server-side failure while reading the rules. The response is a bare `500` with no body, so there is nothing in it to act on. A permissions problem also surfaces here rather than as a clearer error. |
