---
title: "Get Permission Catalog"
method: GET
path: "/admin/permissions"
tags: ["Admin"]
---

# Get Permission Catalog

`GET /admin/permissions`

## Request

- Base URL: `https://api.openintake.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openintake.ai/admin/permissions`
- Auth: none declared

Every permission a role can hold, in display order. Requires staff.manage.

## Response `200`

Successful Response

- PermissionInfoResponse[]
  - `key` 'calls.view' | 'calls.recordings' | 'calls.transfer_flow' | 'intakes.view' | 'questionnaires.view' | 'intake_links.view' | 'texts.view' | 'meetings.view' | 'chats.view' | 'forms.view' | 'interviews.view' | 'email_intake.view' | 'email_intake.review' | 'call_filing.view' | 'leads.view' | 'inquiries.view' | 'cases.view' | 'outbound.manage' | 'referrals.manage' | 'negotiations.view' | 'analytics.view' | 'reports.manage' | 'transfer_metrics.view' | 'settlements.view' | 'staff.manage' | 'availability.manage' | 'settings.manage' | 'integrations.manage' | 'scoreboards.manage' | 'billing.manage', required: A capability a firm user can hold. The value is what custom roles store, so never rename one, and don't split one in two without a data migration (see the module docstring).
  - `label` string, required
  - `description` string, required
  - `group` 'Calls' | 'Intake' | 'Leads and cases' | 'Reporting' | 'Administration', required
  - `feature_flags` string[]: The permission is only relevant when one of these feature flags is on (empty: always relevant)
  - `requires` 'calls.view' | 'calls.recordings' | 'calls.transfer_flow' | 'intakes.view' | 'questionnaires.view' | 'intake_links.view' | 'texts.view' | 'meetings.view' | 'chats.view' | 'forms.view' | 'interviews.view' | 'email_intake.view' | 'email_intake.review' | 'call_filing.view' | 'leads.view' | 'inquiries.view' | 'cases.view' | 'outbound.manage' | 'referrals.manage' | 'negotiations.view' | 'analytics.view' | 'reports.manage' | 'transfer_metrics.view' | 'settlements.view' | 'staff.manage' | 'availability.manage' | 'settings.manage' | 'integrations.manage' | 'scoreboards.manage' | 'billing.manage': A capability a firm user can hold. The value is what custom roles store, so never rename one, and don't split one in two without a data migration (see the module docstring).

## Changes

- **2026-10-29** `ceeae5525826`: 2 info
  - removed the `calls.feedback` enum value from the `items/key` response property for the response status `200`
  - removed the `calls.feedback` enum value from the `items/requires/anyOf[subschema #1: Permission]/` response property for the response status `200`
- **2026-10-28** `6cf2cbf46fe1`: 1 breaking
  - removed the required property `items/staff_default` from the response with the `200` status
- **2026-10-28** `05472eabc78d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/openintake/apis/openintake-api/changes/admin/permissions/get.md)

---

[API](https://skmtc.dev/openintake/apis/openintake-api.md) - [All operations](https://skmtc.dev/openintake/apis/openintake-api/llms.txt) - [OpenAPI document](https://skmtc.dev/openintake/apis/openintake-api/revisions/de90a8dcbc07?raw)
