RingCentral Extensions API
The Extensions API from RingCentral — 5 operation(s) for extensions.
The Extensions API from RingCentral — 5 operation(s) for extensions.
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-extensions-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 Extensions 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: Extensions
paths:
/restapi/v1.0/account/{accountId}/extension-bulk-update:
post:
tags:
- Extensions
summary: Update Multiple Extensions
description: 'Updates multiple extensions at once. Maximum 500 extensions can be updated per request.
'
operationId: extensionBulkUpdate
parameters:
- $ref: '#/components/parameters/AccountId'
requestBody:
description: JSON body
content:
application/json:
schema:
$ref: '#/components/schemas/ExtensionBulkUpdateRequest'
required: true
responses:
'200':
description: Updated extensions
content:
application/json:
schema:
$ref: '#/components/schemas/ExtensionBulkUpdateTaskResource'
x-feature: EditExtensionInfo
x-availability: Limited
x-throttling-group: Heavy
x-app-permission: EditExtensions
x-user-permission: EditExtensionInfo
/restapi/v1.0/account/{accountId}/extension-bulk-update/tasks/{taskId}:
get:
tags:
- Extensions
summary: Get Extension Update Task Status
description: 'Returns a status of a task to update multiple extensions.
'
operationId: getExtensionBulkUpdateTask
parameters:
- $ref: '#/components/parameters/AccountId'
- name: taskId
in: path
description: 'Internal identifier of a task
'
required: true
schema:
type: string
responses:
'200':
description: Bulk update task status
content:
application/json:
schema:
$ref: '#/components/schemas/ExtensionBulkUpdateTaskResource'
x-feature: EditExtensionInfo
x-availability: Limited
x-throttling-group: Light
x-app-permission: EditExtensions
x-user-permission: EditExtensionInfo
/restapi/v1.0/account/{accountId}/templates:
get:
tags:
- Extensions
summary: List User Templates
description: 'Returns the list of user templates for the current account.
'
operationId: listUserTemplates
parameters:
- $ref: '#/components/parameters/AccountId'
- name: type
description: Type of template
in: query
schema:
type: string
enum:
- UserSettings
- CallHandling
- name: page
in: query
description: 'Indicates a page number to retrieve. Only positive number values
are allowed. Default value is ''1''
'
schema:
type: integer
format: int32
default: 1
- name: perPage
in: query
description: Indicates a page size (number of items). If not specified, the value is '100' by default
schema:
type: integer
format: int32
default: 100
responses:
'200':
description: User templates information
content:
application/json:
schema:
$ref: '#/components/schemas/UserTemplates'
x-feature: ReadCompanyInfo
x-availability: High
x-throttling-group: Medium
x-app-permission: ReadAccounts
x-user-permission: ReadCompanyInfo
/restapi/v1.0/account/{accountId}/templates/{templateId}:
get:
tags:
- Extensions
summary: Get User Template
description: 'Returns the user template by ID.
'
operationId: readUserTemplate
parameters:
- $ref: '#/components/parameters/AccountId'
- name: templateId
in: path
required: true
description: Internal identifier of a template
schema:
type: string
responses:
'200':
description: User template information
content:
application/json:
schema:
$ref: '#/components/schemas/TemplateInfo'
x-feature: ReadCompanyInfo
x-availability: High
x-throttling-group: Light
x-app-permission: ReadAccounts
x-user-permission: ReadCompanyInfo
/restapi/v1.0/account/{accountId}/extension:
get:
tags:
- Extensions
summary: List Extensions
description: 'Returns the list of extensions created for a particular account.
All types of extensions are included in this list.
'
operationId: listExtensions
parameters:
- $ref: '#/components/parameters/AccountId'
- name: extensionNumber
in: query
description: Extension short number to filter records
schema:
type: string
- name: email
in: query
description: 'Extension email address. Multiple values are accepted
'
example: alice.smith@example.com&email=bob.johnson@example.com
schema:
type: string
- 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
- name: status
in: query
description: 'Extension current state. Multiple values are supported. If ''Unassigned''
is specified, then extensions without `extensionNumber` attribute are returned.
If not specified, then all extensions are returned
'
allowEmptyValue: true
style: form
explode: true
schema:
type: array
items:
type: string
enum:
- Enabled
- Disabled
- NotActivated
- Unassigned
- name: type
in: query
description: 'Extension type. Multiple values are supported. Please note
that legacy ''Department'' extension type corresponds to ''Call Queue''
extensions in modern RingCentral product terminology
'
allowEmptyValue: true
style: form
explode: true
schema:
type: array
items:
type: string
enum:
- User
- FaxUser
- FlexibleUser
- VirtualUser
- DigitalUser
- Department
- Announcement
- Voicemail
- SharedLinesGroup
- PagingOnly
- IvrMenu
- ApplicationExtension
- ParkLocation
- Limited
- Bot
- ProxyAdmin
- DelegatedLinesGroup
- Site
responses:
'200':
description: Extension list information
content:
application/json:
schema:
$ref: '#/components/schemas/GetExtensionListResponse'
x-feature: ReadExtensions
x-availability: High
x-throttling-group: Medium
x-app-permission: ReadAccounts
x-user-permission: ReadExtensions
x-notifications:
- $ref: '#/components/schemas/ExtensionListEvent'
post:
tags:
- Extensions
summary: Create Extension
description: 'Creates an extension.
'
operationId: createExtension
parameters:
- $ref: '#/components/parameters/AccountId'
requestBody:
description: JSON body
content:
application/json:
schema:
$ref: '#/components/schemas/ExtensionCreationRequest'
required: true
responses:
'200':
description: Created extension information
content:
application/json:
schema:
$ref: '#/components/schemas/ExtensionCreationResponse'
'400':
$ref: '#/components/responses/InvalidRequest'
x-feature: EditUsers
x-availability: Limited
x-throttling-group: Medium
x-app-permission: EditAccounts
x-user-permission: AddRemoveUsers
components:
schemas:
CallQueueExtensionInfo:
type: object
properties:
slaGoal:
type: integer
format: int32
description: 'Target percentage of calls that must be answered by agents
within the service level time threshold
'
slaThresholdSeconds:
type: integer
format: int32
description: 'Period of time in seconds that is considered to be an acceptable
service level
'
includeAbandonedCalls:
type: boolean
description: 'If `true` abandoned calls (hanged up prior to being served)
are included into service level calculation
'
abandonedThresholdSeconds:
type: integer
format: int32
description: 'Period of time in seconds specifying abandoned calls duration
- calls that are shorter will not be included into the calculation of
service level.; zero value means that abandoned calls of any duration
will be included into calculation
'
description: 'For Call Queue extension type only. Please note that legacy
''Department'' extension type corresponds to ''Call Queue'' extensions
in modern RingCentral product terminology
'
RegionalSettings:
type: object
properties:
homeCountry:
$ref: '#/components/schemas/CountryInfoShortModel'
timezone:
$ref: '#/components/schemas/TimezoneInfo'
language:
$ref: '#/components/schemas/RegionalLanguageInfo'
greetingLanguage:
$ref: '#/components/schemas/GreetingLanguageInfo'
formattingLocale:
$ref: '#/components/schemas/FormattingLocaleInfo'
timeFormat:
type: string
description: Time format setting. The default value is '12h' = ['12h', '24h']
enum:
- 12h
- 24h
description: 'Regional data (timezone, home country, language) of an extension/account.
The default is Company (Auto-Receptionist) settings
'
ExtensionCreationRequest:
type: object
properties:
contact:
$ref: '#/components/schemas/ContactInfoCreationRequest'
extensionNumber:
type: string
description: Extension short number
costCenter:
$ref: '#/components/schemas/CostCenterInfo'
customFields:
type: array
items:
$ref: '#/components/schemas/CustomFieldInfo'
password:
type: string
description: Password for extension. If not specified, the password is auto-generated
references:
type: array
description: List of non-RC internal identifiers assigned to an extension
items:
$ref: '#/components/schemas/ReferenceInfo'
regionalSettings:
$ref: '#/components/schemas/RegionalSettings'
partnerId:
type: string
description: 'Additional extension identifier, created by partner application
and applied on client side
'
ivrPin:
type: string
description: IVR PIN
setupWizardState:
$ref: '#/components/schemas/SetupWizardStateForUpdateEnum'
site:
$ref: '#/components/schemas/SiteInfo'
status:
type: string
description: Extension current state
enum:
- Enabled
- Disabled
- NotActivated
- Unassigned
- Frozen
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
- VirtualUser
- DigitalUser
- FlexibleUser
- Department
- Announcement
- Voicemail
- SharedLinesGroup
- PagingOnly
- ParkLocation
- Limited
hidden:
type: boolean
description: 'Hides extension from showing in company directory. Supported
for extensions of ''User'' type only. For unassigned extensions the value
is set to `true` by default. For assigned extensions the value is set
to `false` by default
'
ExtensionBulkUpdateRequest:
required:
- records
description: List of extensions to be updated
type: object
properties:
records:
type: array
items:
$ref: '#/components/schemas/ExtensionBulkUpdateInfo'
PronouncedNamePromptInfo:
type: object
properties:
id:
type: string
contentUri:
type: string
format: uri
description: Link to a prompt resource
contentType:
type: string
description: Content media type
enum:
- audio/mpeg
- audio/wav
ExtensionBulkUpdateTaskResult:
type: object
description: Result record on multiple extension update task
properties:
affectedItems:
type: array
items:
$ref: '#/components/schemas/ExtensionUpdateShortResult'
errors:
type: array
items:
$ref: '#/components/schemas/ErrorEntity'
ErrorEntity:
type: object
properties:
errorCode:
type: string
description: Error code
message:
type: string
description: Error message
parameterName:
type: string
description: Name of invalid parameter
parameterValue:
type: string
description: Value of invalid parameter
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
GetExtensionListResponse:
required:
- records
type: object
properties:
uri:
type: string
format: uri
description: Link to an extension list resource
records:
type: array
description: List of extensions with extension information
items:
$ref: '#/components/schemas/GetExtensionListInfoResponse'
navigation:
$ref: '#/components/schemas/PageNavigationModel'
paging:
$ref: '#/components/schemas/EnumeratedPagingModel'
ExtensionRegionalSettingRequest:
type: object
properties:
homeCountry:
$ref: '#/components/schemas/ExtensionCountryInfoRequest'
timezone:
$ref: '#/components/schemas/ExtensionTimezoneInfoRequest'
language:
$ref: '#/components/schemas/ExtensionLanguageInfoRequest'
greetingLanguage:
$ref: '#/components/schemas/ExtensionGreetingLanguageInfoRequest'
formattingLocale:
$ref: '#/components/schemas/ExtensionFormattingLocaleInfoRequest'
currency:
$ref: '#/components/schemas/ExtensionCurrencyInfoRequest'
timeFormat:
type: string
description: Time format setting
default: 12h
enum:
- 12h
- 24h
ProvisioningSiteInfo:
type: object
properties:
id:
type: string
format: uri
description: Internal identifier of a site
uri:
type: string
format: uri
description: Link to a site resource
name:
type: string
description: Name of a site
code:
type: string
description: Site code value. Returned only if specified
description: 'Site data. If multi-site feature is turned on for an account,
then ID of a site must be specified. In order to assign a wireless
point to the main site (company) the site ID should be set to `main-site`
'
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
TemplateInfo:
type: object
description: Text message template information
required:
- text
properties:
text:
type: string
description: "Text of the message template. Maximum length is 1000 symbols (2-byte UTF-16 encoded). \nIf a character is encoded in 4 bytes in UTF-16 it is treated as 2 characters, \nthus limiting the maximum message length up to 500 symbols\n"
ExtensionListEventBody:
type: object
properties:
extensionId:
type: string
description: Internal identifier of an extension
eventType:
type: string
description: Type of extension info change
enum:
- Create
- Update
- Delete
ownerId:
type: string
description: 'Internal identifier of a subscription owner extension
'
description: Notification payload body
FormattingLocaleInfo:
type: object
properties:
id:
type: string
description: Internal identifier of a formatting language
localeCode:
type: string
description: Localization code of a formatting language
name:
type: string
description: Official name of a formatting language
description: 'Formatting language preferences for numbers, dates and currencies
'
ExtensionLanguageInfoRequest:
type: object
properties:
id:
type: string
description: Internal identifier of a language
ExtensionBulkUpdateTaskResource:
required:
- creationTime
- id
- lastModifiedTime
- status
- uri
type: object
description: 'Information on a task for updating multiple extensions
'
properties:
uri:
type: string
format: uri
description: Link to a task resource
id:
type: string
description: Internal identifier of a task
status:
type: string
description: Task status
enum:
- Accepted
- InProgress
- Completed
- Failed
creationTime:
type: string
format: date-time
description: Task creation date/time
lastModifiedTime:
type: string
format: date-time
description: Task latest update date/time
result:
$ref: '#/components/schemas/ExtensionBulkUpdateTaskResult'
CostCenterInfo:
type: object
description: Cost center information. Applicable if Cost Center feature is enabled. The default is `root` cost center value
properties:
id:
type: string
description: Internal identifier of a cost center
name:
type: string
description: Name of a cost center
CountryInfoBasicModel:
allOf:
- $ref: '#/components/schemas/CountryInfoMinimalModel'
- type: object
properties:
name:
type: string
description: The official name of a country
UserTransitionInfo:
type: object
properties:
sendWelcomeEmailsToUsers:
type: boolean
description: 'Specifies if a welcome/activation email is sent to the existing
users during account confirmation
'
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'')
'
description: 'For NotActivated extensions only. Welcome email settings
'
SiteInfo:
type: object
properties:
id:
type: string
description: Internal identifier of a site extension
uri:
type: string
format: uri
description: Link to a site resource
name:
type: string
description: Extension user first name
extensionNumber:
type: string
description: Extension number
callerIdName:
type: string
description: 'Custom name of a caller. Max number of characters is 15 (only
alphabetical symbols, numbers and commas are supported)
'
email:
type: string
format: email
description: Site extension contact email
businessAddress:
$ref: '#/components/schemas/ContactBusinessAddressInfo'
regionalSettings:
$ref: '#/components/schemas/RegionalSettings'
operator:
$ref: '#/components/schemas/OperatorInfo'
code:
type: string
description: 'Site code value. Returned only if specified
'
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
UserTemplates:
required:
- navigation
- paging
- records
type: object
properties:
uri:
type: string
format: uri
description: Link to user templates resource
records:
type: array
description: List of user templates
items:
$ref: '#/components/schemas/TemplateInfo'
navigation:
$ref: '#/components/schemas/PageNavigationModel'
paging:
$ref: '#/components/schemas/EnumeratedPagingModel'
ExtensionServiceFeatureInfo:
type: object
properties:
enabled:
type: boolean
description: Feature status; shows feature availability for an extension
featureName:
type: string
description: Feature name
enum:
- AccountFederation
- Archiver
- AutomaticCallRecordingMute
- AutomaticInboundCallRecording
- AutomaticOutboundCallRecording
- BlockedMessageForwarding
- Calendar
- CallerIdControl
- CallForwarding
- CallPark
- CallParkLocations
- CallSupervision
- CallSwitch
- CallQualitySurvey
- Conferencing
- ConferencingNumber
- ConfigureDelegates
- DeveloperPortal
- DND
- DynamicConference
- EmergencyAddressAutoUpdate
- EmergencyCalling
- EncryptionAtRest
- ExternalDirectoryIntegration
- Fax
- FaxReceiving
- FreeSoftPhoneLines
- HDVoice
- HipaaCompliance
- Intercom
- InternationalCalling
- InternationalSMS
- LinkedSoftphoneLines
- MMS
- MobileVoipEmergencyCalling
- OnDemandCallRecording
- Pager
- PagerReceiving
- Paging
- PasswordAuth
- PromoMessage
- Reports
- Presence
- RCTeams
- RingOut
- SalesForce
- SharedLines
- SingleExtensionUI
- SiteCodes
- SMS
- SMSReceiving
- SoftPhoneUpdate
- TelephonySessions
- UserManagement
- VideoConferencing
- VoipCalling
- VoipCallingOnMobile
- Voicemail
- VoicemailToText
- WebPhone
reason:
type: string
description: 'Reason for limitation of a particular service feature. Returned
only if the enabled parameter value is `false`, see Service Feature
Limitations and Reasons. When retrieving service features for an extension,
the reasons for limitations, if any, are returned in response
'
ParameterizedErrorResponseModel:
type: object
description: Standard error response which may include parameterized errors
required:
- errors
properties:
errors:
type: array
description: The array of errors (there will be just one in the most of the cases)
minItems: 1
items:
$ref: '#/components/schemas/ApiErrorWithParameter'
PronouncedNameInfo:
type: object
properties:
type:
type: string
description: 'The method used to pronounce the user''s name:
- `Default` - default extension name; first and last name specified in user''s profile are pronounced using text-to-speech;
- `TextToSpeech` - custom text specified by a user pronounced using text-to-speech;
- `Recorded` - custom audio uploaded by a user, the name recorded in user''s own voice (supported only for extension retrieval).
'
enum:
- Default
- TextToSpeech
- Recorded
text:
type: string
description: Custom text (for `TextToSpeech` type only)
prompt:
$ref: '#/components/schemas/PronouncedNamePromptInfo'
OperatorInfo:
type: object
properties:
id:
type: string
description: Internal identifier of an operator
uri:
type: string
format: uri
description: Link to an operator resource
extensionNumber:
type: string
description: Extension number (pin)
name:
type: string
description: Operator extension user full name
description: 'Site Fax/SMS recipient (operator) reference. Multi-level IVR should
be enabled
'
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
CountryInfoMinimalModel:
type: object
properties:
id:
type: string
description: Internal identifier of a country
uri:
type: string
format: uri
description: Canonical URI of a country resource
ExtensionListEvent:
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/ExtensionListEventBody'
PageNavigationUri:
type: object
additionalProperties: false
properties:
uri:
type: string
description: Canonical URI to retrieve the particular page of the result set
format: uri
ExtensionStatusInfo:
type: object
properties:
comment:
type: string
description: A free-form user comment, describing the status change reason
reason:
type: string
description: Type of suspension
enum:
- SuspendedVoluntarily
- SuspendedInvoluntarily
- CancelledVoluntarily
- CancelledInvoluntarily
till:
type: string
format: date-time
description: 'Date until which an account will get deleted. The default
value is 30 days since the current date
'
description: 'Status information (reason, comment). Returned for ''Disabled''
status only
'
ExtensionPermissions:
type: object
properties:
admin:
$ref: '#/components/schemas/PermissionInfoAdmin'
internationalCalling:
$ref: '#/components/schemas/PermissionInfoInt'
description: 'Extension permissions, corresponding to the Service Web permissions
''Admin'' and ''InternationalCalling''
'
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
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:
# --- truncated at 32 KB (57 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ringcentral/refs/heads/main/openapi/ringcentral-extensions-api-openapi.yml