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.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/ringcentral-user-settings-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
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:
parameters:
AccountId:
name: accountId
in: path
description: 'Internal identifier of the RingCentral account
(can be set to "~" to indicate that the account associated with current authorization session should be used)
'
required: true
style: simple
explode: false
schema:
type: string
default: '~'
example: '~'
ContentDispositionFilename:
name: contentDispositionFilename
in: query
description: The default filename of the file to be downloaded
required: false
schema:
type: string
ProfileImageScale:
name: scaleSize
in: path
description: 'Dimensions of a profile image which will be returned in response.
'
required: true
schema:
type: string
enum:
- original
- 90x90
- 195x195
- 584x584
ContentDisposition:
name: contentDisposition
in: query
description: Whether the content is expected to be displayed in the browser, or downloaded and saved locally
required: false
schema:
type: string
enum:
- Inline
- Attachment
ExtensionId:
name: extensionId
in: path
description: 'Internal identifier of the RingCentral extension/user
(can be set to "~" to indicate that the extension associated with current authorization session should be used)
'
required: true
style: simple
explode: false
schema:
type: string
default: '~'
example: '~'
schemas:
PhoneNumberDefinitionTollType:
type: object
description: To use as selection criteria when a number to be selected from the number pool.
required:
- tollType
properties:
tollType:
$ref: '#/components/schemas/PhoneNumberTollType'
ContactInfoUpdateRequest:
type: object
properties:
firstName:
type: string
description: 'For User extension type only. Extension user first name
'
lastName:
type: string
description: 'For User extension type only. Extension user last name
'
company:
type: string
description: Extension user company name
jobTitle:
type: string
email:
type: string
format: email
description: Email of extension user
businessPhone:
type: string
description: 'Extension user contact phone number in
[E.164](https://www.itu.int/rec/T-REC-E.164-201011-I)
format
'
mobilePhone:
type: string
description: 'Extension user mobile (**non** Toll Free) phone number in
[E.164](https://www.itu.int/rec/T-REC-E.164-201011-I)
(with ''+'' sign) format
'
businessAddress:
$ref: '#/components/schemas/ContactBusinessAddressInfo'
emailAsLoginName:
type: boolean
description: 'If `true` then contact email is enabled as login name for
this user. Please note that email should be unique in this case.
The default value is `false`
'
pronouncedName:
$ref: '#/components/schemas/PronouncedNameInfo'
department:
type: string
description: Extension user department, if any
ReferenceInfo:
type: object
properties:
ref:
type: string
description: Non-RC identifier of an extension
type:
type: string
description: Type of external identifier
enum:
- PartnerId
- CustomerDirectoryId
refAccId:
type: string
description: Primary federation admin account identifier
BulkDeleteUsersResponse:
type: object
required:
- records
properties:
records:
type: array
items:
allOf:
- type: object
properties:
id:
type: string
description: Internal identifier of an extension
example: '1162820004'
- $ref: '#/components/schemas/BulkItemResultModel'
CallerIdDeviceInfoRequest:
type: object
properties:
id:
type: string
description: Internal identifier of a device
PermissionInfoAdmin:
type: object
properties:
enabled:
type: boolean
description: Specifies if a permission is enabled or not
description: Admin permission
ProfileImageInfoURI:
type: object
properties:
uri:
type: string
format: uri
RegionalLanguageInfo:
type: object
properties:
id:
type: string
description: Internal identifier of a language set as regional
localeCode:
type: string
description: Localization code of a language set as regional
name:
type: string
description: Official name of a language set as regional
description: Information on a language set as regional
VoicemailsInfo:
type: object
properties:
notifyByEmail:
type: boolean
description: Email notification flag
notifyBySms:
type: boolean
description: SMS notification flag
advancedEmailAddresses:
type: array
description: 'List of recipient email addresses for voicemail notifications.
Returned if specified, in both modes (advanced/basic). Applied in advanced
mode only
'
items:
type: string
advancedSmsEmailAddresses:
type: array
description: 'List of recipient phone numbers for voicemail notifications.
Returned if specified, in both modes (advanced/basic). Applied in advanced
mode only
'
items:
type: string
includeAttachment:
type: boolean
description: 'Indicates whether voicemail should be attached to email
'
includeTranscription:
type: boolean
description: 'Specifies whether to add voicemail transcription or not
'
markAsRead:
type: boolean
description: 'Indicates whether a voicemail should be automatically marked
as read
'
PhoneNumberTollType:
description: Indicates if a number is toll or toll-free
type: string
enum:
- Toll
- TollFree
example: Toll
ContactInfo:
type: object
properties:
firstName:
type: string
description: 'User''s first name (for extensions of `User` type only)
'
lastName:
type: string
description: 'For User extension type only. User''s last name (for extensions of `User` type only)
'
name:
type: string
description: 'Extension name (for extensions of `User` type - concatenation of first and last name)
'
company:
type: string
description: User's company name
jobTitle:
type: string
description: User's job title
email:
type: string
format: email
description: User's contact email
businessPhone:
type: string
description: 'User''s contact phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I)
(with ''+'' sign) format
'
mobilePhone:
type: string
description: 'User''s mobile (**non** Toll Free) phone number in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I)
(with ''+'' sign) format
'
businessAddress:
$ref: '#/components/schemas/ContactBusinessAddressInfo'
emailAsLoginName:
type: boolean
description: 'Indicates that the contact email is enabled as a login name for this
user. Please note that the email must be unique in this case.
'
default: false
pronouncedName:
$ref: '#/components/schemas/PronouncedNameInfo'
department:
type: string
description: 'User''s department name
'
description: Detailed contact information
PhoneNumberDefinitionNumberId:
type: object
description: To be used to assign a number by ID
required:
- phoneNumberId
properties:
phoneNumberId:
type: string
description: Phone number ID
ExtensionCurrencyInfoRequest:
type: object
properties:
id:
type: string
description: Internal Identifier of a currency
InboundTextsInfo:
type: object
properties:
notifyByEmail:
type: boolean
description: Email notification flag
notifyBySms:
type: boolean
description: SMS notification flag
advancedEmailAddresses:
type: array
description: 'List of recipient email addresses for inbound text message
notifications. Returned if specified, in both modes (advanced/basic).
Applied in advanced mode only
'
items:
type: string
advancedSmsEmailAddresses:
type: array
description: 'List of recipient phone numbers for inbound text message notifications.
Returned if specified, in both modes (advanced/basic). Applied in advanced
mode only
'
items:
type: string
SetupWizardStateForUpdateEnum:
type: string
description: Initial configuration wizard state
enum:
- NotStarted
- Incomplete
- Completed
default: NotStarted
GreetingLanguageInfo:
type: object
properties:
id:
type: string
description: Internal identifier of a greeting language
localeCode:
type: string
description: Localization code of a greeting language
name:
type: string
description: Official name of a greeting language
description: 'Information on language used for telephony greetings
'
EnumeratedPagingModel:
type: object
required:
- perPage
additionalProperties: false
properties:
perPage:
type: integer
format: int32
minimum: 1
maximum: 1000
description: 'Current page size, describes how many items are in each page.
Matches "perPage" parameter from the request.
'
example: 50
page:
type: integer
format: int32
minimum: 1
maximum: 1000
description: 'The current page number. 1-indexed, so the first page is 1
by default. May be omitted if result is empty (because non-existent page
was specified or perPage=0 was requested)
'
example: 5
pageStart:
type: integer
format: int32
minimum: 0
description: 'The zero-based number of the first element on the current page.
Omitted if the page is omitted or result is empty
'
example: 0
pageEnd:
type: integer
format: int32
minimum: 0
description: 'The zero-based index of the last element on the current page.
Omitted if the page is omitted or result is empty
'
example: 5
totalPages:
type: integer
format: int32
minimum: 0
description: 'The total number of pages in a dataset. May be omitted for
some resources due to performance reasons
'
example: 25
totalElements:
type: integer
format: int32
minimum: 0
description: 'The total number of elements in a dataset. May be omitted for
some resource due to performance reasons
'
example: 25
NotificationSettingsUpdateRequest:
type: object
properties:
emailAddresses:
type: array
description: 'List of notification recipient email addresses. Should not be empty
if ''includeManagers'' parameter is set to false
'
items:
type: string
smsEmailAddresses:
type: array
description: List of notification recipient email addresses
items:
type: string
advancedMode:
type: boolean
description: 'Specifies notifications settings mode. If `true` then advanced
mode is on, it allows using different emails and/or phone numbers for
each notification type. If `false` then basic mode is on. Advanced mode
settings are returned in both modes, if specified once, but i
# --- 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