RingCentral User Settings API
The User Settings API from RingCentral — 9 operation(s) for user settings.
The User Settings API from RingCentral — 9 operation(s) for user settings.
openapi: 3.0.3
info:
title: RingCentral Adaptive Cards User Settings API
description: RingCentral API specification
version: 1.0.58-20240529-47eda8bd
contact:
name: RingCentral Developers Support
url: https://developers.ringcentral.com/support
termsOfService: https://www.ringcentral.com/legal/apilitos.html
license:
name: RingCentral API License Agreement
url: https://www.ringcentral.com/legal/apilitos.html
servers:
- url: https://platform.ringcentral.com
description: Production API entry point
- url: https://media.ringcentral.com
description: Production Media entry point
- url: https://platform.devtest.ringcentral.com
description: Developer sandbox API entry point
- url: https://platform.devtest.ringcentral.com
description: Developer sandbox Media entry point
security:
- OAuth2: []
tags:
- name: User Settings
paths:
/restapi/v1.0/account/{accountId}/extension/{extensionId}/profile-image/{scaleSize}:
get:
tags:
- User Settings
summary: Get Scaled Profile Image
description: 'Returns the scaled profile image of an extension.
**This API must be called via media API entry point, e.g. https://media.ringcentral.com**
'
operationId: readScaledProfileImage
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/ExtensionId'
- $ref: '#/components/parameters/ProfileImageScale'
- $ref: '#/components/parameters/ContentDisposition'
- $ref: '#/components/parameters/ContentDispositionFilename'
responses:
'200':
description: Successful response
content:
image/*:
schema:
type: string
format: binary
x-media-api: true
x-availability: High
x-throttling-group: Medium
x-app-permission: ReadAccounts
/restapi/v2/accounts/{accountId}/batch-provisioning/users:
post:
tags:
- User Settings
summary: Create Multiple User Extensions
description: 'Creates multiple user extensions with BYOD (customer provided) devices.
If "extensionNumber" is not specified, the next available extension number will be assigned.
'
operationId: postBatchProvisionUsers
parameters:
- $ref: '#/components/parameters/AccountId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BatchProvisionUsersRequest'
required: true
responses:
'200':
description: Successful response (partial success is possible)
content:
application/json:
schema:
$ref: '#/components/schemas/BatchProvisionUsersResponse'
'400':
$ref: '#/components/responses/InvalidRequest'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-throttling-group: Heavy
x-app-permission: EditAccounts
/restapi/v2/accounts/{accountId}/extensions:
delete:
tags:
- User Settings
summary: Delete User Extensions
description: 'Deletes user extension(s) and either keeps or destroys the assets - numbers and devices.
Multiple extensions can be deleted with a single API call.
**Please note:** This API cannot be tested on Sandbox.
'
operationId: bulkDeleteUsersV2
parameters:
- $ref: '#/components/parameters/AccountId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BulkDeleteUsersRequest'
required: true
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/BulkDeleteUsersResponse'
'400':
$ref: '#/components/responses/InvalidRequest'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-feature: EditUsers
x-availability: Limited
x-throttling-group: Heavy
x-app-permission: EditAccounts
x-user-permission: Users
/restapi/v1.0/account/{accountId}/extension/{extensionId}:
get:
tags:
- User Settings
summary: Get Extension
description: 'Returns basic information about a particular extension of an account.
'
operationId: readExtension
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/ExtensionId'
responses:
'200':
description: Extension information
content:
application/json:
schema:
$ref: '#/components/schemas/GetExtensionInfoResponse'
x-feature: ReadExtensions
x-availability: High
x-throttling-group: Light
x-app-permission: ReadAccounts
x-user-permission: ReadExtensions
x-notifications:
- $ref: '#/components/schemas/ExtensionInfoEvent'
put:
tags:
- User Settings
summary: Update Extension
description: Updates the user settings.
operationId: updateExtension
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/ExtensionId'
requestBody:
description: JSON body
content:
application/json:
schema:
$ref: '#/components/schemas/ExtensionUpdateRequest'
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/GetExtensionInfoResponse'
x-feature: EditExtensionInfo OR EditCredentials
x-availability: Limited
x-throttling-group: Medium
x-app-permission: EditExtensions
x-user-permission: EditUserInfo OR EditUserCredentials
delete:
tags:
- User Settings
summary: Delete Extension
operationId: deleteExtension
description: "Deletes extension(s) by ID(s). When an extension is being deleted\nthe default API behavior is as follows:\n\n- user's direct numbers are preserved by becoming additional company numbers;\n- user's digital lines (both device & associated phone number) are deleted.\n\nYou can change this behavior using the filters:\n\n- create unassigned extensions for each digital line of the deleted extension by\n setting the query parameter `savePhoneLines` to `true` in request path;\n- remove direct numbers of the deleted extension by setting the `savePhoneNumbers`\n query parameter to `false` in request path\n\n**Note!** Since this API is now deprecated, please use the following API method `DELETE /restapi/v2/accounts/{accountId}/extensions` for users deletion.\n"
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/ExtensionId'
- name: savePhoneLines
in: query
schema:
type: boolean
default: false
- name: savePhoneNumbers
in: query
schema:
type: boolean
default: true
responses:
'204':
description: No Content
deprecated: true
x-feature: EditUsers
x-availability: Limited
x-throttling-group: Medium
x-app-permission: EditAccounts
x-user-permission: AddRemoveUsers
/restapi/v1.0/account/{accountId}/extension/{extensionId}/grant:
get:
tags:
- User Settings
summary: List Extension Grants
description: 'Returns the list of extensions with information on grants
given to the current extension regarding them. Currently the list of grants
include: picking up a call, monitoring, calling or receiving a call on behalf
of somebody, call delegation and calling paging groups.
'
operationId: listExtensionGrants
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/ExtensionId'
- name: extensionType
in: query
description: 'Type of extension to be returned. Multiple values are supported.
Please note that legacy ''Department'' extension type corresponds
to ''Call Queue'' extensions in modern RingCentral product terminology
'
schema:
type: string
enum:
- User
- FaxUser
- VirtualUser
- DigitalUser
- Department
- Announcement
- Voicemail
- SharedLinesGroup
- PagingOnly
- IvrMenu
- ApplicationExtension
- ParkLocation
- Limited
- Bot
- Room
- DelegatedLinesGroup
- name: page
in: query
description: 'Indicates a page number to retrieve. Only positive number values
are allowed
'
schema:
type: integer
format: int32
default: 1
- name: perPage
in: query
description: Indicates a page size (number of items)
schema:
type: integer
format: int32
default: 100
responses:
'200':
description: List of extension grants
content:
application/json:
schema:
$ref: '#/components/schemas/GetExtensionGrantListResponse'
x-feature: ReadExtensions
x-availability: High
x-throttling-group: Light
x-app-permission: ReadAccounts
x-user-permission: ReadExtensions
x-notifications:
- $ref: '#/components/schemas/ExtensionGrantListEvent'
/restapi/v1.0/account/{accountId}/extension/{extensionId}/conferencing:
get:
tags:
- User Settings
summary: Get User Conferencing Settings
description: 'Returns information on Free Conference Calling (FCC) feature
for a given extension.
'
operationId: readConferencingSettings
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/ExtensionId'
- name: countryId
in: query
description: 'Internal identifier of a country. If not specified, the response
is returned for the brand country
'
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/GetConferencingInfoResponse'
x-feature: Conferencing
x-availability: High
x-throttling-group: Light
x-app-permission: ReadAccounts
x-user-permission: OrganizeConference
put:
tags:
- User Settings
summary: Update User Conferencing Settings
description: 'Updates the default conferencing number for the current extension.
The number can be selected from conferencing numbers of the current extension.
Updates the setting, allowing participants join the conference before host.
'
operationId: updateConferencingSettings
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/ExtensionId'
requestBody:
description: JSON body
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateConferencingInfoRequest'
required: true
responses:
'200':
description: Updated user conferencing settings
content:
application/json:
schema:
$ref: '#/components/schemas/GetConferencingInfoResponse'
x-feature: Conferencing
x-availability: Limited
x-throttling-group: Medium
x-user-permission: OrganizeConference
x-app-permission: EditExtensions
/restapi/v1.0/account/{accountId}/extension/{extensionId}/profile-image:
get:
tags:
- User Settings
summary: Get User Profile Image
description: 'Returns a profile image of an extension.
'
operationId: readUserProfileImageLegacy
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/ExtensionId'
responses:
'200':
description: User Profile Image (Media Data)
content:
image/png:
schema:
type: string
format: binary
image/jpeg:
schema:
type: string
format: binary
image/gif:
schema:
type: string
format: binary
'304':
description: Not Modified
x-feature: ReadExtensions
x-availability: High
x-throttling-group: Medium
x-app-permission: ReadAccounts
x-user-permission: ReadExtensions
put:
tags:
- User Settings
summary: Update User Profile Image
description: 'Updates the extension profile image.
'
operationId: updateUserProfileImage
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/ExtensionId'
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
image:
type: string
format: binary
required: true
responses:
'204':
description: No Content
x-feature: EditExtensionInfo
x-request-max-body-size: 10m
x-availability: High
x-throttling-group: Heavy
x-app-permission: EditExtensions
x-user-permission: EditUserInfo
post:
tags:
- User Settings
summary: Upload User Profile Image
description: 'Uploads the extension profile image.
'
operationId: createUserProfileImage
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/ExtensionId'
requestBody:
content:
multipart/form-data:
schema:
type: object
required:
- image
properties:
image:
type: string
format: binary
required: true
responses:
'204':
description: No Content
x-feature: EditExtensionInfo
x-request-max-body-size: 10m
x-availability: High
x-throttling-group: Heavy
x-app-permission: EditExtensions
x-user-permission: EditUserInfo
delete:
tags:
- User Settings
summary: Delete User Profile Image
description: 'Deletes the user profile image.
'
operationId: deleteUserProfileImage
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/ExtensionId'
responses:
'204':
description: No Content
x-feature: EditExtensionInfo
x-availability: High
x-throttling-group: Medium
x-app-permission: EditExtensions
x-user-permission: EditUserInfo
/restapi/v1.0/account/{accountId}/extension/{extensionId}/caller-id:
get:
tags:
- User Settings
summary: Get Extension Caller ID
description: 'Returns information on an outbound caller ID of an extension.
'
operationId: readExtensionCallerId
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/ExtensionId'
responses:
'200':
description: Caller ID information
content:
application/json:
schema:
$ref: '#/components/schemas/ExtensionCallerIdInfo'
x-feature: ReadOutboundCallerId
x-availability: High
x-throttling-group: Light
x-app-permission: ReadAccounts
x-user-permission: ReadCallerIDSettings
put:
tags:
- User Settings
summary: Update Extension Caller ID
description: 'Updates outbound caller ID information of an extension.
'
operationId: updateExtensionCallerId
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/ExtensionId'
requestBody:
description: JSON body
content:
application/json:
schema:
$ref: '#/components/schemas/ExtensionCallerIdInfoRequest'
required: true
responses:
'200':
description: Updated caller ID information
content:
application/json:
schema:
$ref: '#/components/schemas/ExtensionCallerIdInfo'
x-availability: Limited
x-throttling-group: Medium
x-app-permission: EditExtensions
x-user-permission: EditCallerIDSettings
/restapi/v1.0/account/{accountId}/extension/{extensionId}/notification-settings:
get:
tags:
- User Settings
summary: Get Notification Settings
description: 'Returns notification settings for the current extension.
Knowledge Article: [User Settings - Set Up Message Notifications](https://success.ringcentral.com/articles/RC_Knowledge_Article/9740)
'
operationId: readNotificationSettings
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/ExtensionId'
responses:
'200':
description: Notification settings
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationSettings'
x-feature: ReadMessageAndNotificationSettings
x-availability: High
x-throttling-group: Light
x-app-permission: ReadAccounts
x-user-permission: ReadMessagesNotificationsSettings
put:
tags:
- User Settings
summary: Update Notification Settings
description: 'Updates notification settings for the current extension.
Knowledge Article: [User Settings - Set Up Message Notifications](https://success.ringcentral.com/articles/RC_Knowledge_Article/9740)
'
operationId: updateNotificationSettings
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/ExtensionId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationSettingsUpdateRequest'
required: true
responses:
'200':
description: Updated notification settings
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationSettings'
x-availability: Limited
x-throttling-group: Medium
x-app-permission: EditExtensions
x-user-permission: EditMessagesNotificationsSettings
components:
schemas:
ExtensionInfoGrants:
type: object
properties:
id:
type: string
description: Internal identifier of an extension
uri:
type: string
format: uri
description: Canonical URI of an extension
extensionNumber:
type: string
description: Extension short number (usually 3 or 4 digits)
name:
type: string
description: Name of extension
type:
type: string
description: 'Extension type. Please note that legacy ''Department''
extension type corresponds to ''Call Queue'' extensions in modern RingCentral
product terminology
'
enum:
- User
- Fax User
- VirtualUser
- DigitalUser
- Department
- Announcement
- Voicemail
- SharedLinesGroup
- PagingOnly
- IvrMenu
- ApplicationExtension
- ParkLocation
- DelegatedLinesGroup
description: Extension information
CustomFieldInfo:
type: object
properties:
id:
type: string
description: Internal identifier of a custom field
value:
type: string
description: Custom field value
displayName:
type: string
DepartmentInfo:
type: object
description: 'Please note that the `Department` extension type corresponds to
''Call Queue'' extensions in modern RingCentral product terminology
'
properties:
id:
type: string
format: uri
description: Internal identifier of a department extension
uri:
type: string
format: uri
description: Canonical URI of an extension resource
extensionNumber:
type: string
description: Short number of a department extension
ConferencePhoneNumberInfo:
type: object
properties:
phoneNumber:
type: string
description: Dial-in phone number to connect to a conference
default:
type: boolean
description: 'The value should be `true` if the number is default for the conference. Default
conference number is a domestic number that can be set by user (otherwise
it is set by the system). Only one default number per country is allowed
'
ExtensionGrantListEvent:
type: object
properties:
uuid:
type: string
description: Universally unique identifier of a notification
event:
type: string
description: Event filter URI
timestamp:
type: string
description: 'Date/time of sending a notification in
[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
format including timezone, for example *2016-03-10T18:07:52.534Z*
'
subscriptionId:
type: string
description: Internal identifier of a subscription
body:
$ref: '#/components/schemas/ExtensionGrantListEventBody'
BatchProvisionUsersRequestItem:
description: Describes request for user extension provisioning
type: object
required:
- status
- contact
properties:
extensionNumber:
$ref: '#/components/schemas/ExtensionNumber'
status:
description: Extension status. Only "Enabled" can be specified
type: string
enum:
- Enabled
default: Enabled
contact:
description: User's contact information
required:
- firstName
- lastName
- email
allOf:
- $ref: '#/components/schemas/BasicContactInfo'
- type: object
properties:
mobileNumber:
$ref: '#/components/schemas/PhoneNumberE164'
emailAsLoginName:
description: 'Indicates that contact email is enabled as login name for this user.
Please note that email must be unique in this case.
'
type: boolean
default: true
costCenter:
type: object
required:
- id
properties:
id:
type: string
description: Internal identifier of the Cost Center
example: '224149'
roles:
type: array
maxItems: 1
items:
type: object
required:
- id
properties:
id:
type: string
description: Internal identifier of a role to be assigned
example: '1'
devices:
type: array
maxItems: 1
items:
type: object
required:
- deviceInfo
properties:
deviceInfo:
$ref: '#/components/schemas/DeviceDefinition'
sendWelcomeEmail:
type: boolean
description: 'Specifies if a welcome/activation email is sent to the new users (within extension status changing from
''Unassigned'' to ''NotActivated/Disabled'')
'
default: true
EmailRecipientInfo:
type: object
properties:
extensionId:
type: string
description: Internal identifier of an extension
fullName:
type: string
description: User full name
extensionNumber:
type: string
description: User extension number
status:
type: string
description: Current state of an extension
enum:
- Enabled
- Disable
- NotActivated
- Unassigned
emailAddresses:
type: array
description: 'List of user email addresses from extension notification settings.
By default, main email address from contact information is returned
'
items:
type: string
permission:
type: string
description: Call queue manager permission
enum:
- FullAccess
- Messages
- MemberManagement
ApiError:
type: object
description: Generalized API error structure suitable for any error type
required:
- errorCode
- message
properties:
errorCode:
type: string
description: Logical error code (typically, 3 letters followed with number, dash separated)
example: XXX-123
message:
type: string
description: User-friendly error message
example: Something went wrong
additionalProperties: true
UpdateConferencingInfoRequest:
type: object
properties:
phoneNumbers:
type: array
description: 'Multiple dial-in phone numbers to connect to audio conference
service, relevant for user''s brand. Each number is given with the country
and location information, in order to let the user choose the less expensive
way to connect to a conference. The first number in the list is the primary
conference number, that is default and domestic
'
items:
$ref: '#/components/schemas/ConferencePhoneNumberInfo'
allowJoinBeforeHost:
type: boolean
description: Determines if host user allows conference participants to join before the host
PageNavigationUri:
type: object
additionalProperties: false
properties:
uri:
type: string
description: Canonical URI to retrieve the particular page of the result set
format: uri
ExtensionGreetingLanguageInfoRequest:
type: object
properties:
id:
type: string
description: Internal identifier of a greeting language
GetExtensionInfoResponse:
type: object
properties:
id:
type: integer
description: Internal identifier of an extension
format: int64
uri:
type: string
format: uri
description: Canonical URI of an extension
account:
$ref: '#/components/schemas/GetExtensionAccountInfo'
contact:
$ref: '#/components/schemas/ContactInfo'
costCenter:
$ref: '#/components/schemas/CostCenterInfo'
customFields:
type: array
items:
$ref: '#/components/schemas/CustomFieldInfo'
departments:
type: array
description: 'Information on department extension(s), to which the requested
extension belongs. Returned only for user extensions, members of
department, requested by single extensionId. Please note that
legacy ''Department'' extension type corresponds to ''Call Queue''
extensions in modern RingCentral product terminology
'
items:
$ref: '#/components/schemas/DepartmentInfo'
extensionNumber:
type: string
description: Extension short number
extensionNumbers:
type: array
items:
type: string
name:
type: string
description: 'Extension name. For user extension types the value is a combination
of the specified first name and last name
'
partnerId:
type: string
description: 'For Partner Applications Internal identifier of an extension
created by partner. The RingCentral supports mapping of accounts and
stores the corresponding account ID/extension ID for each partner ID of
a client application. In request URIs partner IDs are accepted instead
of regular RingCentral native IDs as path parameters using `pid=XXX` clause.
Though in response URIs contain the corresponding account IDs and extension
IDs. In all request and response bodies these values are reflected via
partnerId attributes of account and extension
'
permissions:
$ref: '#/components/schemas/ExtensionPermissions'
profileImage:
$ref: '#/components/schemas/ProfileImageInfo'
references:
type: array
description: 'List of non-RC internal identifiers assigned to an extension
'
items:
$ref: '#/components/schemas/ReferenceInfo'
roles:
type: array
items:
$ref: '#/components/schemas/Roles'
regionalSettings:
$ref: '#/components/schemas/RegionalSettings'
serviceFeatures:
type: array
description: 'Extension service features is returned in response only when the
logged-in user requests their own extension info, see also Extension
Service Features
'
items:
$ref: '#/components/schemas/ExtensionServiceFeatureInfo'
setupWizardState:
$ref: '#/components/schemas/SetupWizardStateForUpdateEnum'
status:
type: string
description: 'Extension current state. If ''Unassigned'' is specified, then
extensions without `extensionNumber` are returned. If not specified,
then all extensions are returned
'
enum:
- Enabled
- Disabled
- Frozen
- NotActivated
- Unassigned
statusInfo:
$ref: '#/components/schemas/ExtensionStatusInfo'
type:
type: string
description: 'Extension type. Please note that legacy ''Department'' extension type
corresponds to ''Call Queue'' extensions in modern RingCentral product
terminology
'
enum:
- User
- FaxUser
- FlexibleUser
- VirtualUser
- DigitalUser
- Department
- Announcement
- Voicemail
- SharedLinesGroup
- PagingOnly
- IvrMenu
- ApplicationExtension
- ParkLocation
- Bot
- Room
- RoomConnector
- Limited
- Site
- ProxyAdmin
- DelegatedLinesGroup
- GroupCallPickup
subType:
type: string
description: 'Extension subtype, if applicable. For any unsupported subtypes the
`Unknown` value will be returned
'
enum:
- VideoPro
- VideoProPlus
- DigitalSignage
- Unknown
- Emergency
callQueueInfo:
$ref: '#/components/schemas/CallQueueExtensionInfo'
hidden:
type: boolean
description: 'Hides extension from showing in company directory. Supported for
extensions of User type only
'
site:
$ref: '#/components/schemas/ProvisioningSiteInfo'
assignedCountry:
# --- truncated at 32 KB (98 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ringcentral/refs/heads/main/openapi/ringcentral-user-settings-api-openapi.yml