RingCentral · Agentic Access

RingCentral Agentic Access

x-agentic-access generated

RingCentral exposes 487 API operations that an AI agent could call, of which 250 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: 237 read, 196 write, 7 physical, and 47 safety-critical.

47 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.

CommunicationsUCaaSVoiceVideoContact CenterSMSMessagingFax
Operations: 487 Acting: 250 Human-in-the-loop: 47 Method: generated

By consequence

read 237 write 196 physical 7 safety-critical 47

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
POST /restapi/oauth/revoke safety-critical required
PUT /restapi/v1.0/account/{accountId}/device/{deviceId}/emergency safety-critical required
POST /restapi/v1.0/account/{accountId}/emergency-address-auto-update/devices/bulk-assign safety-critical required
POST /restapi/v1.0/account/{accountId}/emergency-address-auto-update/networks safety-critical required
PUT /restapi/v1.0/account/{accountId}/emergency-address-auto-update/networks/{networkId} safety-critical required
DELETE /restapi/v1.0/account/{accountId}/emergency-address-auto-update/networks/{networkId} safety-critical required
POST /restapi/v1.0/account/{accountId}/emergency-address-auto-update/switches safety-critical required
POST /restapi/v1.0/account/{accountId}/emergency-address-auto-update/switches-bulk-create safety-critical required
POST /restapi/v1.0/account/{accountId}/emergency-address-auto-update/switches-bulk-update safety-critical required
POST /restapi/v1.0/account/{accountId}/emergency-address-auto-update/switches-bulk-validate safety-critical required
PUT /restapi/v1.0/account/{accountId}/emergency-address-auto-update/switches/{switchId} safety-critical required
DELETE /restapi/v1.0/account/{accountId}/emergency-address-auto-update/switches/{switchId} safety-critical required
POST /restapi/v1.0/account/{accountId}/emergency-address-auto-update/users/bulk-assign safety-critical required
POST /restapi/v1.0/account/{accountId}/emergency-address-auto-update/wireless-points safety-critical required
POST /restapi/v1.0/account/{accountId}/emergency-address-auto-update/wireless-points-bulk-create safety-critical required
POST /restapi/v1.0/account/{accountId}/emergency-address-auto-update/wireless-points-bulk-update safety-critical required
POST /restapi/v1.0/account/{accountId}/emergency-address-auto-update/wireless-points-bulk-validate safety-critical required
PUT /restapi/v1.0/account/{accountId}/emergency-address-auto-update/wireless-points/{pointId} safety-critical required
DELETE /restapi/v1.0/account/{accountId}/emergency-address-auto-update/wireless-points/{pointId} safety-critical required
POST /restapi/v1.0/account/{accountId}/emergency-locations safety-critical required
PUT /restapi/v1.0/account/{accountId}/emergency-locations/{locationId} safety-critical required
DELETE /restapi/v1.0/account/{accountId}/emergency-locations/{locationId} safety-critical required
POST /restapi/v1.0/account/{accountId}/extension/{extensionId}/emergency-locations safety-critical required
PUT /restapi/v1.0/account/{accountId}/extension/{extensionId}/emergency-locations/{locationId} safety-critical required
DELETE /restapi/v1.0/account/{accountId}/extension/{extensionId}/emergency-locations/{locationId} safety-critical required

Source

Agentic Access

Raw ↑
generated: '2026-07-15'
method: generated
source: openapi/ringcentral-platform-openapi.yml
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: 487
  by_action_class:
    connected: 237
    acting: 250
  by_consequence:
    read: 237
    write: 196
    safety-critical: 47
    physical: 7
  human_in_the_loop_required: 47
operations:
- path: /webinar/notifications/v1/subscriptions
  method: get
  operationId: rcwN11sListSubscriptions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/notifications/v1/subscriptions
  method: post
  operationId: rcwN11sCreateSubscription
  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
- path: /webinar/notifications/v1/subscriptions/{subscriptionId}
  method: get
  operationId: rcwN11sGetSubscription
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/notifications/v1/subscriptions/{subscriptionId}
  method: put
  operationId: rcwN11sUpdateSubscription
  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
- path: /webinar/notifications/v1/subscriptions/{subscriptionId}
  method: delete
  operationId: rcwN11sDeleteSubscription
  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
- path: /webinar/notifications/v1/subscriptions/{subscriptionId}/renew
  method: post
  operationId: rcwN11sRenewSubscription
  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
- path: /webinar/history/v1/webinars/{webinarId}
  method: get
  operationId: rcwHistoryGetWebinar
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/history/v1/webinars/{webinarId}/sessions/{sessionId}
  method: get
  operationId: rcwHistoryGetSession
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/history/v1/webinars/{webinarId}/sessions/{sessionId}/participants
  method: get
  operationId: rcwHistoryListParticipants
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/history/v1/webinars/{webinarId}/sessions/{sessionId}/participants/self
  method: get
  operationId: rcwHistoryGetParticipantInfo
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/history/v1/webinars/{webinarId}/sessions/{sessionId}/invitees
  method: get
  operationId: rcwHistoryListInvitees
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/history/v1/webinars/{webinarId}/sessions/{sessionId}/invitees/{inviteeId}
  method: get
  operationId: rcwHistoryGetInvitee
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/history/v1/company/recordings
  method: get
  operationId: rcwHistoryAdminListRecordings
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/history/v1/company/recordings/{recordingId}
  method: get
  operationId: rcwHistoryAdminGetRecording
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/history/v1/company/sessions
  method: get
  operationId: rcwHistoryListAllCompanySessions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/history/v1/recordings
  method: get
  operationId: rcwHistoryListRecordings
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/history/v1/recordings/{recordingId}
  method: get
  operationId: rcwHistoryGetRecording
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/history/v1/recordings/{recordingId}/download
  method: get
  operationId: rcwHistoryGetRecordingDownload
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/history/v1/sessions
  method: get
  operationId: rcwHistoryListAllSessions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/registration/v1/sessions/{sessionId}
  method: get
  operationId: rcwRegGetSession
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/registration/v1/sessions/{sessionId}
  method: patch
  operationId: rcwRegUpdateSession
  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
- path: /webinar/registration/v1/sessions/{sessionId}/registrants
  method: get
  operationId: rcwRegListRegistrants
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/registration/v1/sessions/{sessionId}/registrants
  method: post
  operationId: rcwRegCreateRegistrant
  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
- path: /webinar/registration/v1/sessions/{sessionId}/registrants/{registrantId}
  method: get
  operationId: rcwRegGetRegistrant
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/registration/v1/sessions/{sessionId}/registrants/{registrantId}
  method: delete
  operationId: rcwRegDeleteRegistrant
  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
- path: /webinar/configuration/v1/webinars
  method: post
  operationId: rcwConfigCreateWebinar
  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
- path: /webinar/configuration/v1/webinars
  method: get
  operationId: rcwConfigListWebinars
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/configuration/v1/webinars/{webinarId}
  method: get
  operationId: rcwConfigGetWebinar
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/configuration/v1/webinars/{webinarId}
  method: patch
  operationId: rcwConfigUpdateWebinar
  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
- path: /webinar/configuration/v1/webinars/{webinarId}
  method: delete
  operationId: rcwConfigDeleteWebinar
  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
- path: /webinar/configuration/v1/webinars/{webinarId}/sessions
  method: post
  operationId: rcwConfigCreateSession
  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
- path: /webinar/configuration/v1/webinars/{webinarId}/sessions/{sessionId}
  method: patch
  operationId: rcwConfigUpdateSession
  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
- path: /webinar/configuration/v1/webinars/{webinarId}/sessions/{sessionId}
  method: get
  operationId: rcwConfigGetSession
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/configuration/v1/webinars/{webinarId}/sessions/{sessionId}
  method: delete
  operationId: rcwConfigDeleteSession
  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
- path: /webinar/configuration/v1/webinars/{webinarId}/sessions/{sessionId}/invitees
  method: patch
  operationId: rcwConfigUpdateInvitees
  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
- path: /webinar/configuration/v1/webinars/{webinarId}/sessions/{sessionId}/invitees
  method: get
  operationId: rcwConfigListInvitees
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/configuration/v1/webinars/{webinarId}/sessions/{sessionId}/invitees/{inviteeId}
  method: get
  operationId: rcwConfigGetInvitee
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/configuration/v1/webinars/{webinarId}/sessions/{sessionId}/invitees/{inviteeId}
  method: put
  operationId: rcwConfigUpdateInvitee
  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
- path: /webinar/configuration/v1/webinars/{webinarId}/sessions/{sessionId}/invitees/{inviteeId}
  method: delete
  operationId: rcwConfigDeleteInvitee
  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
- path: /webinar/configuration/v1/company/sessions
  method: get
  operationId: rcwConfigListAllCompanySessions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /webinar/configuration/v1/sessions
  method: get
  operationId: rcwConfigListAllSessions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /restapi/v1.0/account/{accountId}/recording/{recordingId}/content
  method: get
  operationId: readCallRecordingContent
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /restapi/v1.0/account/{accountId}/greeting/{greetingId}/content
  method: get
  operationId: readAccountGreetingContent
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /restapi/v1.0/account/{accountId}/extension/{extensionId}/greeting/{greetingId}/content
  method: get
  operationId: readGreetingContent
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /restapi/v1.0/account/{accountId}/extension/{extensionId}/profile-image/{scaleSize}
  method: get
  operationId: readScaledProfileImage
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store/{messageId}/content/{attachmentId}
  method: get
  operationId: readMessageContent
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /restapi/v1.0/account/{accountId}/ivr-prompts/{promptId}/content
  method: get
  operationId: readIVRPromptContent
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /rcvideo/v2/account/{accountId}/extension/{extensionId}/bridges
  method: post
  operationId: createBridge
  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
- path: /rcvideo/v2/account/{accountId}/extension/{extensionId}/bridges/default
  method: get
  operationId: getDefaultBridge
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /rcvideo/v2/bridges/pin/pstn/{pin}
  method: get
  operationId: getBridgeByPstnPin
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /rcvideo/v2/bridges/pin/web/{pin}
  method: get
  operationId: getBridgeByWebPin
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /rcvideo/v2/bridges/{bridgeId}
  method: get
  operationId: getBridge
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /rcvideo/v2/bridges/{bridgeId}
  method: patch
  operationId: updateBridge
  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
- path: /rcvideo/v2/bridges/{bridgeId}
  method: delete
  operationId: deleteBridge
  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
- path: /rcvideo/v1/account/{accountId}/recordings
  method: get
  operationId: getAccountRecordings
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /rcvideo/v1/account/{accountId}/extension/{extensionId}/recordings
  method: get
  operationId: getExtensionRecordings
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /rcvideo/v1/accounts/{accountId}/extensions/{extensionId}/delegators
  method: get
  operationId: rcvListDelegators
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /rcvideo/v1/history/meetings
  method: get
  operationId: listVideoMeetings
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /rcvideo/v1/history/meetings/{meetingId}
  method: get
  operationId: getVideoMeeting
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /restapi
  method: get
  operationId: readAPIVersions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /restapi/oauth/token
  method: post
  operationId: getToken
  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
- path: /restapi/oauth/authorize
  method: get
  operationId: authorize
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /restapi/oauth/authorize
  method: post
  operationId: authorize2
  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
- path: /restapi/oauth/revoke
  method: post
  operationId: revokeToken
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /restapi/v2/accounts/{accountId}
  method: get
  operationId: getAccountInfoV2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /restapi/v2/accounts/{accountId}/device-inventory
  method: post
  operationId: addDeviceToInventory
  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
- path: /restapi/v2/accounts/{accountId}/device-inventory
  method: delete
  operationId: deleteDeviceFromInventory
  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
- path: /restapi/v2/accounts/{accountId}/send-welcome-email
  method: post
  operationId: sendWelcomeEmailV2
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /restapi/v2/accounts/{accountId}/phone-numbers
  method: get
  operationId: listAccountPhoneNumbersV2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /restapi/v2/accounts/{accountId}/phone-numbers
  method: delete
  operationId: deleteNumbersFromInventoryV2
  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
- path: /restapi/v2/accounts/{accountId}/phone-numbers/{phoneNumberId}
  method: patch
  operationId: assignPhoneNumberV2
  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
- path: /restapi/v2/accounts/{accountId}/phone-numbers/{phoneNumberId}/replace
  method: post
  operationId: replacePhoneNumberV2
  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
- path: /restapi/v2/accounts/{accountId}/phone-numbers/bulk-add
  method: post
  operationId: addNumbersToInventoryV2
  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
- path: /restapi/v2/accounts/{accountId}/phone-numbers/bulk-add/{taskId}
  method: get
  operationId: getBulkAddTaskResultsV2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /restapi/v2/accounts/{accountId}/devices/{deviceId}
  method: delete
  operationId: removeLineJWSPublic
  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
- path: /restapi/v2/accounts/{accountId}/devices/bulk-add
  method: post
  operationId: bulkAddDevicesV2
  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
- path: /restapi/v2/accounts/{accountId}/send-activation-email
  method: post
  operationId: sendActivationEmailV2
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /restapi/v2/accounts/{accountId}/batch-provisioning/users
  method: post
  operationId: postBatchProvisionUsers
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /restapi/v2/accounts/{accountId}/extensions
  method: delete
  operationId: bulkDeleteUsersV2
  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
- path: /restapi/v2/accounts/{accountId}/extensions/{extensionId}/devices/{deviceId}/replace
  method: post
  operationId: replaceDevicesJWSPublic
  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
- path: /restapi/v1.0/account/{accountId}
  method: get
  operationId: readAccountInfo
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /restapi/v1.0/account/{accountId}/business-hours
  method: get
  operationId: readCompanyBusinessHours
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /restapi/v1.0/account/{accountId}/business-hours
  method: put
  operationId: updateCompanyBusinessHours
  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
- path: /restapi/v1.0/account/{accountId}/device/{deviceId}
  method: get
  operationId: readDevice
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /restapi/v1.0/account/{accountId}/device/{deviceId}
  method: put
  operationId: updateDevice
  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
- path: /restapi/v1.0/account/{accountId}/device/{deviceId}/sip-info
  method: get
  operationId: readDeviceSipInfo
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /restapi/v1.0/account/{accountId}/device/{deviceId}/emergency
  method: put
  operationId: updateDeviceEmergency
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /restapi/v1.0/account/{accountId}/custom-fields
  method: get
  operationId: listCustomFields
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /restapi/v1.0/account/{accountId}/custom-fields
  method: post
  operationId: createCustomField
  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
- path: /restapi/v1.0/account/{accountId}/custom-fields/{fieldId}
  method: put
  operationId: updateCustomField
  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
- path: /restapi/v1.0/account/{accountId}/custom-fields/{fieldId}
  method: delete
  operationId: deleteCustomField
  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
- path: /restapi/v1.0/account/{accountId}/call-recording
  method: get
  operationId: readCallRecordingSettings
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /restapi/v1.0/account/{accountId}/call-recording
  method: put
  operationId: updateCallRecordingSettings
  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
- path: /restapi/v1.0/account/{accountId}/call-recording/custom-greetings
  method: get
  operationId: listCallRecordingCustomGreetings
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /restapi/v1.0/account/{accountId}/call-recording/custom-greetings
  method: delete
  operationId: deleteCallRecordingCustomGreetingList
  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
- path: /restapi/v1.0/account/{accountId}/call-recording/custom-greetings/{greetingId}
  method: delete
  operationId: deleteCallRecordingCustomGreeting
  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
- path: /restapi/v1.0/account/{accountId}/call-recording/bulk-assign
  method: post
  operationId: updateCallRecordingExtensionList
  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
- path: /restapi/v1.0/account/{accountId}/call-recording/extensions
  method: get
  operationId: listCallRecordingExtensions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /restapi/v1.0/account/{accountId}/telephony/call-out
  method: post
  operationId: createCallOutCallSession
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /restapi/v1.0/account/{accountId}/telephony/conference
  method: post
  operationId: createConferenceCallSession
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}
  method: get
  operationId: readCallSessionStatus
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /restapi/v1.0/account/{accountId}/telephony/sessions/{telephonySessionId}
  method: delete
  operationId: deleteCallSession
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: requ

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