
# Benutzerdefinierte Rollen einer Organisation auflisten

`GET /v1/organizations/{org_id}/roles` · Berechtigung `roles:read`

Listet die benutzerdefinierten Rollen der Organisation auf, älteste zuerst. Nur Vorwärts-Paginierung wird unterstützt: `before` und ein `order` ungleich `asc` liefern `422`. Der Cursor ist an diese Liste gebunden. Organisationsrollen sind nur in ihrer Organisation sichtbar und gehören nicht zur Liste der Umgebung. Die Berechtigungsmenge der Rolle wird in dieser Version nicht zurückgegeben.

## Anfrage

| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| `org_id` | path | ja | Organisations-ID (`org_…`). |
| `limit` | query | nein | 1–100, Standard 20. |
| `after` | query | nein | Cursor aus `list_metadata.after`. |

Kein Anfragekörper.

## Antwort

`200 OK` mit einer Seite von Rollen.

```json
{
  "data": [
    {
      "id": "rol_01j9xr7s1t2w6x8y0z2a4b6c8e",
      "organization_id": "org_01j9xk3m7q8r2s4t6v8w0y2z4a",
      "key": "billing-admin",
      "name": "Billing admin",
      "description": "",
      "is_privileged": false,
      "assignable_in_self_service": true,
      "permission_ids": [],
      "created_at": "2026-10-12T09:31:00.123456Z",
      "updated_at": "2026-10-12T09:31:00.123456Z",
      "version": 1
    }
  ],
  "list_metadata": {
    "before": null,
    "after": null
  }
}
```

## Fehler

| HTTP | code | Wann |
|---|---|---|
| 400 | `invalid_cursor` | Der Cursor ist ungültig oder gehört zu einer anderen Liste. |
| 404 | `not_found` | Die Organisation existiert in dieser Umgebung nicht. |
| 422 | `validation_failed` | `limit` liegt außerhalb des Bereichs, oder `before` bzw. ein `order` ungleich `asc` wurde angegeben. |
| 401 | `unauthenticated` | Die Anmeldeinformation fehlt, ist ungültig oder widerrufen. |
| 403 | `insufficient_permissions` | Die Anmeldeinformation hat nicht die erforderliche Berechtigung. |
| 429 | `rate_limited` | Das Ratenlimit wurde überschritten; nach der Dauer von `Retry-After` erneut versuchen. |
| 503 | `service_unavailable` | Eine Abhängigkeit ist vorübergehend nicht verfügbar; nach der Dauer von `Retry-After` erneut versuchen. |

## Beispiel

```bash
curl -i "https://api.eu.keenauth.com/v1/organizations/org_01j9xk3m7q8r2s4t6v8w0y2z4a/roles?limit=20" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```
