> ## Documentation Index
> Fetch the complete documentation index at: https://docs.soludesks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Permissions

> Understand LearnHub permissions and key-mode access rules.

For LearnHub endpoints, tenant API keys are checked against LearnHub permissions. Service-provider API keys are checked against service-provider status and content ownership.

## Tenant Permissions

Common permission patterns:

| Action                   | Example permission                                                                                               |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------- |
| List or retrieve courses | `learnhub.view_course`                                                                                           |
| Create courses           | `learnhub.add_course`                                                                                            |
| Update courses           | `learnhub.change_course`                                                                                         |
| Delete courses           | `learnhub.delete_course`                                                                                         |
| Manage lessons           | `learnhub.add_coursesectionlesson`, `learnhub.change_coursesectionlesson`, `learnhub.delete_coursesectionlesson` |

The API applies resource-specific permissions for categories, sections, lessons, assessments, assignments, quizzes, and uploads.

## Service-Provider Behavior

Service-provider keys use the same routes for supported resources, but the backend resolves them against service-provider-owned admin training content. Some resources are intentionally tenant-only.

<Note>
  Assessments and assignments are tenant-only. Use tenant API keys for those endpoints.
</Note>

## Permission Failures

Permission failures return `403` with the standard error envelope. The message may indicate a missing permission, disabled LearnHub service, inactive service provider, or unsupported operation for the key mode.
