RingCentral Agentic Access
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.
By consequence
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.
| Method | Path | Consequence | Human-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
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