---
title: "PUT /sources/plex/{slug}/"
method: PUT
path: "/sources/plex/{slug}/"
tags: ["sources"]
---

# PUT /sources/plex/{slug}/

`PUT /sources/plex/{slug}/`

Plex source Viewset

## Path parameters

- `slug` string, required — Internal source name, used in URLs.

## Request body

- PlexSourceRequest — Plex Source Serializer
  - `name` string, required — Source's display Name.
  - `slug` string, required — Internal source name, used in URLs.
  - `enabled` boolean
  - `promoted` boolean — When enabled, this source will be displayed as a prominent button on the login page, instead of a small icon.
  - `authentication_flow` string, uuid, nullable — Flow to use when authenticating existing users.
  - `enrollment_flow` string, uuid, nullable — Flow to use when enrolling new users.
  - `user_property_mappings` string[]
  - `group_property_mappings` string[]
  - `policy_engine_mode` 'all' | 'any'
  - `user_matching_mode` 'identifier' | 'email_link' | 'email_deny' | 'username_link' | 'username_deny'
  - `user_path_template` string
  - `icon` string
  - `group_matching_mode` 'identifier' | 'name_link' | 'name_deny'
  - `client_id` string — Client identifier used to talk to Plex.
  - `allowed_servers` string[] — Which servers a user has to be a member of to be granted access. Empty list allows every server.
  - `allow_friends` boolean — Allow friends to authenticate, even if you don't share a server.
  - `plex_token` string, required — Plex token used to check friends

## Response `200`

- PlexSource — Plex Source Serializer
  - `pk` string, uuid, required
  - `name` string, required — Source's display Name.
  - `slug` string, required — Internal source name, used in URLs.
  - `enabled` boolean
  - `promoted` boolean — When enabled, this source will be displayed as a prominent button on the login page, instead of a small icon.
  - `authentication_flow` string, uuid, nullable — Flow to use when authenticating existing users.
  - `enrollment_flow` string, uuid, nullable — Flow to use when enrolling new users.
  - `user_property_mappings` string[]
  - `group_property_mappings` string[]
  - `component` string, required — Get object component so that we know how to edit the object
  - `verbose_name` string, required — Return object's verbose_name
  - `verbose_name_plural` string, required — Return object's plural verbose_name
  - `meta_model_name` string, required — Return internal model name
  - `policy_engine_mode` 'all' | 'any'
  - `user_matching_mode` 'identifier' | 'email_link' | 'email_deny' | 'username_link' | 'username_deny'
  - `managed` string, nullable, required — Objects that are managed by authentik. These objects are created and updated automatically. This flag only indicates that an object can be overwritten by migrations. You can still modify the objects via the API, but expect changes to be overwritten in a later update.
  - `user_path_template` string
  - `icon` string
  - `icon_url` string, required
  - `icon_themed_urls` ThemedUrls, required — Themed URLs - maps theme names to URLs for light and dark themes
    - `light` string, nullable
    - `dark` string, nullable
  - `group_matching_mode` 'identifier' | 'name_link' | 'name_deny'
  - `client_id` string — Client identifier used to talk to Plex.
  - `allowed_servers` string[] — Which servers a user has to be a member of to be granted access. Empty list allows every server.
  - `allow_friends` boolean — Allow friends to authenticate, even if you don't share a server.
  - `plex_token` string, required — Plex token used to check friends

## Other responses

- `400`
- `403`

---

[API](https://skmtc.dev/goauthentik/apis/authentik.md) · [All operations](https://skmtc.dev/goauthentik/apis/authentik/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/goauthentik/authentik/revisions/4e42e86021d7/schema)
