Plex · Agentic Access

Plex Agentic Access

x-agentic-access generated

Plex exposes 258 API operations that an AI agent could call, of which 130 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.

By consequence: 128 read, 119 write, 2 physical, and 9 safety-critical.

9 operations are classed safety-critical and should require human-in-the-loop approval at runtime.

Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.

CompanyMediaStreamingVideoMusicMedia ServerEntertainmentSelf-HostedPersonal MediaHome Automation
Operations: 258 Acting: 130 Human-in-the-loop: 9 Method: generated

By consequence

read 128 write 119 physical 2 safety-critical 9

Highest-consequence actions

The physical and safety-critical operations an agent could invoke — the ones that most warrant scoped tokens, tight TTLs, and escalation. Full per-operation contracts are in the source below.

MethodPathConsequenceHuman-in-loop
DELETE /butler safety-critical required
DELETE /butler/{task} safety-critical required
DELETE /hubs/sections/{sectionId}/manage safety-critical required
DELETE /library/sections/all/refresh safety-critical required
DELETE /livetv/dvrs/{dvrId}/reloadGuide safety-critical required
PUT /media/grabbers/devices/{deviceId} safety-critical required
DELETE /media/grabbers/devices/{deviceId}/scan safety-critical required
PUT /playQueues/{playQueueId}/reset safety-critical required
POST /status/sessions/terminate safety-critical required
PUT /library/collections/{collectionId}/items/{itemId}/move physical conditional
PUT /media/subscriptions/{subscriptionId}/move physical conditional

Source

Agentic Access

Raw ↑
generated: '2026-08-05'
method: generated
source: openapi/plex-media-server-openapi.json
description: Recommended x-agentic-access execution contracts, classified heuristically from
  the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind
  audience per deployment. See research/curity/agentic-governance/.
summary:
  operations: 258
  by_action_class:
    connected: 128
    acting: 130
  by_consequence:
    read: 128
    write: 119
    safety-critical: 9
    physical: 2
  human_in_the_loop_required: 9
operations:
- path: /
  method: get
  operationId: getSlash
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /:/eventsource/notifications
  method: get
  operationId: eventsourceGetSlash
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /:/prefs
  method: get
  operationId: preferencesGetSlash
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /:/prefs
  method: put
  operationId: preferencesPutSlash
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
    scope:
    - admin
    - shared user
- path: /:/prefs/get
  method: get
  operationId: preferencesGetGet
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /:/rate
  method: put
  operationId: putRate
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
    scope:
    - admin
    - shared user
- path: /:/scrobble
  method: put
  operationId: putScrobble
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
    scope:
    - admin
    - shared user
- path: /:/timeline
  method: post
  operationId: timelinePostSlash
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
    scope:
    - admin
    - shared user
- path: /:/unscrobble
  method: put
  operationId: putUnscrobble
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
    scope:
    - admin
    - shared user
- path: /:/websocket/notifications
  method: get
  operationId: websocketGetSlash
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /activities
  method: get
  operationId: activitiesGetSlash
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /activities/{activityId}
  method: delete
  operationId: activitiesDeleteActivity
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /butler
  method: get
  operationId: butlerGetSlash
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - admin
    token:
      max-ttl: 3600
    audit: none
- path: /butler
  method: post
  operationId: butlerPostSlash
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /butler
  method: delete
  operationId: butlerDeleteSlash
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /butler/{task}
  method: post
  operationId: butlerPostTask
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /butler/{task}
  method: delete
  operationId: butlerDeleteTask
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /downloadQueue
  method: post
  operationId: downloadQueuePost
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
    scope:
    - admin
    - shared user
- path: /downloadQueue/{queueId}
  method: get
  operationId: downloadQueueGetQueue
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /downloadQueue/{queueId}/add
  method: post
  operationId: downloadQueuePostQueueAdd
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
    scope:
    - admin
    - shared user
- path: /downloadQueue/{queueId}/item/{itemId}/media
  method: get
  operationId: downloadQueueGetQueueItemItemMedia
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /downloadQueue/{queueId}/item/{itemId}/decision
  method: get
  operationId: downloadQueueGetQueueItemItemDecision
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /downloadQueue/{queueId}/items
  method: get
  operationId: downloadQueueGetQueueItems
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /downloadQueue/{queueId}/items/{itemId}
  method: get
  operationId: downloadQueueGetQueueItemsItem
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /downloadQueue/{queueId}/items/{itemId}
  method: delete
  operationId: downloadQueueDeleteQueueItemsItem
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
    scope:
    - admin
    - shared user
- path: /downloadQueue/{queueId}/items/{itemId}/restart
  method: post
  operationId: downloadQueuePostQueueItemsItemRestart
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
    scope:
    - admin
    - shared user
- path: /identity
  method: get
  operationId: getIdentity
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /hubs
  method: get
  operationId: hubsGetSlash
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /hubs/items
  method: get
  operationId: hubsGetItems
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /hubs/continueWatching
  method: get
  operationId: hubsGetContinueWatching
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /hubs/promoted
  method: get
  operationId: hubsGetPromoted
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /hubs/metadata/{metadataId}
  method: get
  operationId: hubsGetMetadataMetadata
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /hubs/metadata/{metadataId}/related
  method: get
  operationId: hubsGetMetadataMetadataRelated
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /hubs/metadata/{metadataId}/postplay
  method: get
  operationId: hubsGetMetadataMetadataPostplay
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /hubs/search
  method: get
  operationId: hubsGetSearch
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /hubs/search/voice
  method: get
  operationId: hubsSearchGetVoice
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /hubs/sections/{sectionId}
  method: get
  operationId: hubsGetSection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /hubs/sections/{sectionId}/manage
  method: get
  operationId: hubsSectionsSectionManageGetSlash
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - admin
    token:
      max-ttl: 3600
    audit: none
- path: /hubs/sections/{sectionId}/manage
  method: delete
  operationId: hubsSectionsSectionManageDeleteSlash
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /hubs/sections/{sectionId}/manage
  method: post
  operationId: hubsSectionsSectionManagePostSlash
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /hubs/sections/{sectionId}/manage/move
  method: put
  operationId: hubsSectionsSectionManagePutMove
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /hubs/sections/{sectionId}/manage/{identifier}
  method: put
  operationId: hubsSectionsSectionManagePutIdentifier
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /hubs/sections/{sectionId}/manage/{identifier}
  method: delete
  operationId: hubsSectionsSectionManageDeleteIdentifier
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/all
  method: get
  operationId: libraryGetAll
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /library/caches
  method: delete
  operationId: libraryDeleteCaches
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/clean/bundles
  method: put
  operationId: libraryPutCleanBundles
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/collections
  method: post
  operationId: libraryCollectionPostSlash
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
    scope:
    - admin
    - shared user
- path: /library/collections/{collectionId}/composite/{updatedAt}
  method: get
  operationId: libraryCollectionCollectionGetComposite
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /library/collections/{collectionId}/items
  method: get
  operationId: libraryCollectionCollectionGetItems
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /library/collections/{collectionId}/items
  method: put
  operationId: libraryCollectionCollectionPutItems
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/collections/{collectionId}/items/{itemId}
  method: put
  operationId: libraryCollectionCollectionPutItemsItem
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/collections/{collectionId}/items/{itemId}/move
  method: put
  operationId: libraryCollectionCollectionPutItemsItemMove
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/file
  method: post
  operationId: libraryPostFile
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
    scope:
    - admin
    - shared user
- path: /library/matches
  method: get
  operationId: libraryGetMatches
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /library/media/{mediaId}/chapterImages/{chapter}
  method: get
  operationId: libraryGetMediaMediaChapterImagesChapter
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /library/metadata/{ids}
  method: get
  operationId: libraryMetadataGetSlash
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /library/metadata/{ids}
  method: put
  operationId: libraryMetadataPutSlash
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/metadata/{ids}
  method: delete
  operationId: libraryMetadataDeleteSlash
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/metadata/{ids}/addetect
  method: put
  operationId: libraryMetadataPutAddetect
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/metadata/{ids}/allLeaves
  method: get
  operationId: libraryMetadataGetAllLeaves
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /library/metadata/{ids}/analyze
  method: put
  operationId: libraryMetadataPutAnalyze
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/metadata/{ids}/chapterThumbs
  method: put
  operationId: libraryMetadataPutChapterThumbs
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/metadata/{ids}/credits
  method: put
  operationId: libraryMetadataPutCredits
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/metadata/{ids}/extras
  method: get
  operationId: libraryMetadataGetExtras
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /library/metadata/{ids}/extras
  method: post
  operationId: libraryMetadataPostExtras
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
    scope:
    - admin
    - shared user
- path: /library/metadata/{ids}/file
  method: get
  operationId: libraryMetadataGetFile
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /library/metadata/{ids}/index
  method: put
  operationId: libraryMetadataPutIndex
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/metadata/{ids}/intro
  method: put
  operationId: libraryMetadataPutIntro
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/metadata/{ids}/marker
  method: post
  operationId: libraryMetadataPostMarker
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
    scope:
    - admin
    - shared user
- path: /library/metadata/{ids}/marker/{marker}
  method: delete
  operationId: libraryMetadataDeleteMarkerMarker
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
    scope:
    - admin
    - shared user
- path: /library/metadata/{ids}/marker/{marker}
  method: put
  operationId: libraryMetadataPutMarkerMarker
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
    scope:
    - admin
    - shared user
- path: /library/metadata/{ids}/match
  method: put
  operationId: libraryMetadataPutMatch
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/metadata/{ids}/matches
  method: put
  operationId: libraryMetadataGetMatches
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/metadata/{ids}/media/{mediaItem}
  method: delete
  operationId: libraryMetadataDeleteMediaMediaItem
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/metadata/{ids}/merge
  method: put
  operationId: libraryMetadataPutMerge
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/metadata/{ids}/nearest
  method: get
  operationId: libraryMetadataGetNearest
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /library/metadata/{ids}/prefs
  method: put
  operationId: libraryMetadataPutPrefs
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/metadata/{ids}/refresh
  method: put
  operationId: libraryMetadataPutRefresh
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/metadata/{ids}/related
  method: get
  operationId: libraryMetadataGetRelated
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /library/metadata/{ids}/similar
  method: get
  operationId: libraryMetadataGetSimilar
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /library/metadata/{ids}/split
  method: put
  operationId: libraryMetadataPutSplit
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/metadata/{ids}/subtitles
  method: get
  operationId: libraryMetadataPostSubtitles
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - admin
    token:
      max-ttl: 3600
    audit: none
- path: /library/metadata/{ids}/tree
  method: get
  operationId: libraryMetadataGetTree
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /library/metadata/{ids}/unmatch
  method: put
  operationId: libraryMetadataPutUnmatch
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/metadata/{ids}/users/top
  method: get
  operationId: libraryMetadataGetUsersTop
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - admin
    token:
      max-ttl: 3600
    audit: none
- path: /library/metadata/{ids}/voiceActivity
  method: put
  operationId: libraryMetadataPutVoiceActivity
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/metadata/{ids}/{element}
  method: post
  operationId: libraryMetadataPostElement
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
    scope:
    - admin
    - shared user
- path: /library/metadata/{ids}/{element}
  method: put
  operationId: libraryMetadataPutElement
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
    scope:
    - admin
    - shared user
- path: /library/metadata/{ids}/{element}
  method: delete
  operationId: libraryMetadataDeleteElement
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
    scope:
    - admin
    - shared user
- path: /library/metadata/{ids}/{element}/{timestamp}
  method: get
  operationId: libraryMetadataGetElement
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /library/metadata/augmentations/{augmentationId}
  method: get
  operationId: libraryGetMetadataAugmentationsAugmentation
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /library/optimize
  method: put
  operationId: libraryPutOptimize
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /library/parts/{partId}
  method: put
  operationId: libraryPutPartsPart
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
    scope:
    - admin
    - shared user
- path: /library/parts/{partId}/indexes/{index}
  method: get
  operationId: libraryGetPartsPartIndexesIndex
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /library/parts/{partId}/indexes/{index}/{offset}
  method: get
  operationId: libraryGetPartsPartIndexesIndexOffset
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /library/parts/{partId}/{changestamp}/{filename}
  method: get
  operationId: libraryGetPartsPartChangestampFilename
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
    scope:
    - admin
    - shared user
- path: /library/people/{personId}
  method: get
  operationId: libraryGetPeoplePerson
  x-agentic-access:
    action-class: conne

# --- truncated at 32 KB (84 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/plex/refs/heads/main/agentic-access/plex-agentic-access.yml