---
title: "Update a permission"
method: PUT
path: "/v1/access-control/permissions/{permission_id}"
tags: ["permissions"]
---

# Update a permission

`PUT /v1/access-control/permissions/{permission_id}`

## Request

- Base URL: `https://developer.coram.ai`
- URL: `https://developer.coram.ai/v1/access-control/permissions/{permission_id}`
- Auth: API key in header `X-Auth-Token`

Replace the permission's name, users, user groups, doors, door groups, and schedule.

## Path parameters

- `permission_id` integer, required

## Request body

- PermissionInput
  - `name` string, required
  - `user_ids` integer[], required: User IDs in your organization.
  - `user_group_ids` integer[]: User group IDs in your organization. Omitted groups are removed on update.
  - `door_ids` integer[], required: Active door IDs in your organization.
  - `door_group_ids` integer[]: Door group IDs in your organization. Omitted groups are removed on update.
  - `schedule` PermissionSchedule, required
    - `timeslots` PermissionTimeslot[], required
      - `start_day_of_week` integer, required
      - `start_time` string, required: Local start time in HH:MM format.
      - `end_day_of_week` integer, required
      - `end_time` string, required: Local end time in HH:MM format.
    - `time_start` string, date-time, nullable
    - `time_end` string, date-time, nullable
    - `rrule` string, nullable: Optional recurrence rule. Omit or set to `null` to repeat your timeslots every week, within any `time_start` and `time_end` limits. For less frequent repetition, use an [iCalendar recurrence rule](https://www.rfc-editor.org/rfc/rfc5545#section-3.3.10). For example, `FREQ=WEEKLY;INTERVAL=2` repeats every other week. This requires `time_start` to anchor the first week. For weekly rules, weekdays come from your timeslots; you don't need to specify `BYDAY`.

## Response `200`

Permission updated

- Permission
  - `id` integer, required
  - `name` string, required
  - `user_ids` integer[], required
  - `user_group_ids` integer[], required
  - `door_ids` integer[], required
  - `door_group_ids` integer[], required
  - `schedule` PermissionSchedule, required
    - `timeslots` PermissionTimeslot[], required
      - `start_day_of_week` integer, required
      - `start_time` string, required: Local start time in HH:MM format.
      - `end_day_of_week` integer, required
      - `end_time` string, required: Local end time in HH:MM format.
    - `time_start` string, date-time, nullable
    - `time_end` string, date-time, nullable
    - `rrule` string, nullable: Optional recurrence rule. Omit or set to `null` to repeat your timeslots every week, within any `time_start` and `time_end` limits. For less frequent repetition, use an [iCalendar recurrence rule](https://www.rfc-editor.org/rfc/rfc5545#section-3.3.10). For example, `FREQ=WEEKLY;INTERVAL=2` repeats every other week. This requires `time_start` to anchor the first week. For weekly rules, weekdays come from your timeslots; you don't need to specify `BYDAY`.

## Other responses

- `400`: Invalid payload or target IDs
- `401`: Missing or invalid API key
- `403`: API key lacks write scope or an admin creator role
- `404`: Permission not found in this tenant
- `500`: Server error

## Changes

- **2026-10-01** `df3363f87c31`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/coram/apis/coram-api/changes/v1/access-control/permissions/:permission_id/put.md)

---

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