# List Auto model rules

Return every Auto model rule of an organisation — the organisation's own rule, department rules in tree order and assistant rules by name — with people counts, clash counts, the warnings where an enforced rule overrides another, and the departments and assistants that have no rule yet. See [Auto Model](/docs/documentation/core-concepts/auto-model).

## Authentication

Requires authentication (Bearer token or `x-api-key`) and the `manage_users` capability in the organisation. An API key limited to some assistants lists only the assistant rules it reaches. Requires the Auto model to be switched on for the organisation (`404 AUTO_MODEL_NOT_ENABLED` otherwise).

#### Path Parameters

**`organization_id`** string required

The organisation (`org_` prefix).

## Returns

Returns `200 OK` with:

**`rules`** array

One row per stored rule, organisation first. Each row: `scope` (`type`, `id`, `name`, `people`, `sub_departments`), `preset` (or `null` when the rule does not set one), `enforced`, `people_can_choose` (`null` = inherits), `effort` (`min`, `max`, or `null`), `max_chf_per_message` (CHF string or `null`), `locked_reason`, `clash_count` and `updated_at` (`null` only for an organisation rule that was never saved).

**`warnings`** array

One entry per place an enforced rule overrides another rule's setting (`kind: "shadowed_by"`): `subject` (the overridden rule, `type`, `id`, `name`), `rule` (the enforcing rule), `setting`, `subject_value` (the overridden rule's value), `value` (the enforcing rule's value) and `people` (how many of the subject's people it affects). None of these is ever `null`.

**`addable`** array

Departments and assistants without a rule yet: `type`, `id`, `name`.

Request

```bash cURL
curl https://api.aitronos.com/v1/organizations/org_7d2c9e41a5b84f0e/auto-model/rules \
  -H "X-API-Key: $FREDDY_API_KEY"
```


```python Python SDK
from aitronos import Aitronos

client = Aitronos(api_key="your-api-key")

rules = client.auto_model.list_auto_model_rules(
    organization_id="org_7d2c9e41a5b84f0e",
)
print(rules)
```


```python Python
import os
import requests

response = requests.get(
    "https://api.aitronos.com/v1/organizations/org_7d2c9e41a5b84f0e/auto-model/rules",
    headers={"X-API-Key": os.environ["FREDDY_API_KEY"]},
)
print(response.json())
```


```javascript JavaScript
const response = await fetch(
  'https://api.aitronos.com/v1/organizations/org_7d2c9e41a5b84f0e/auto-model/rules',
  { headers: { 'X-API-Key': process.env.FREDDY_API_KEY } },
);
const data = await response.json();
console.log(data.rules);
```

200 OK

```json
{
  "rules": [
    {
      "scope": {"type": "organization", "id": "org_7d2c9e41a5b84f0e", "name": "Organisation", "people": 81, "sub_departments": null},
      "preset": "balanced",
      "enforced": false,
      "people_can_choose": null,
      "effort": {"min": "low", "max": "high"},
      "max_chf_per_message": "0.50",
      "locked_reason": null,
      "clash_count": 1,
      "updated_at": "2026-10-24T12:00:00Z"
    },
    {
      "scope": {"type": "department", "id": "dept_5a1c7e2b9d4f4a8e", "name": "Support", "people": 37, "sub_departments": 0},
      "preset": "lower_cost",
      "enforced": true,
      "people_can_choose": false,
      "effort": null,
      "max_chf_per_message": "0.10",
      "locked_reason": "Support runs on a fixed budget",
      "clash_count": 1,
      "updated_at": "2026-10-24T12:05:00Z"
    }
  ],
  "warnings": [
    {
      "kind": "shadowed_by",
      "subject": {"type": "assistant", "id": "asst_2b9e4c1d7a3f4e6b", "name": "Support Bot"},
      "rule": {"type": "department", "id": "dept_5a1c7e2b9d4f4a8e", "name": "Support"},
      "setting": "preset",
      "subject_value": "best_quality",
      "value": "lower_cost",
      "people": 37
    }
  ],
  "addable": [
    {"type": "department", "id": "dept_9c3e5a7b1d2f4e8a", "name": "Sales"}
  ]
}
```

Errors

```json 403 Forbidden
{
  "success": false,
  "error": {
    "code": "INSUFFICIENT_PERMISSIONS",
    "message": "You don't have permission to perform this action.",
    "type": "authorization_error",
    "status": 403,
    "details": {"required_capability": "manage_users"},
    "trace_id": "97406499-dc1f-4982-b273-04989bee6e48",
    "timestamp": "2026-10-27T04:51:33Z"
  }
}
```


```json 404 Not Found
{
  "success": false,
  "error": {
    "code": "AUTO_MODEL_NOT_ENABLED",
    "message": "Auto isn't available for this organisation.",
    "type": "client_error",
    "status": 404,
    "details": {"feature": "auto_model"},
    "trace_id": "5c1d2e3f-4a5b-4c6d-8e9f-0a1b2c3d4e5f",
    "timestamp": "2026-10-27T04:51:33Z"
  }
}
```

## Related Resources

- [Auto Model concept](/docs/documentation/core-concepts/auto-model)
- [Auto model API introduction](/docs/api-reference/auto-model/introduction)
- [Get an Auto model rule](/docs/api-reference/auto-model/get-rule)
- [Create or replace an Auto model rule](/docs/api-reference/auto-model/update-rule)
- [Delete an Auto model rule](/docs/api-reference/auto-model/reset-rule)
- [Check who gets what](/docs/api-reference/auto-model/get-effective-settings)
- [Preview an Auto model rule](/docs/api-reference/auto-model/simulate)