openapi: 3.0.3
info:
title: RingCentral Adaptive Cards Devices 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: Devices
paths:
/restapi/v2/accounts/{accountId}/device-inventory:
post:
summary: Add Phone to Inventory
description: Adds an existing phone (customer provided device - BYOD) as an unassigned device to the account inventory.
tags:
- Devices
operationId: addDeviceToInventory
parameters:
- $ref: '#/components/parameters/AccountId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AddDeviceToInventoryRequest'
required: true
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/AddDeviceToInventoryResponse'
'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: EditAccountDevices
x-availability: Limited
x-throttling-group: Heavy
x-app-permission: EditAccounts
delete:
summary: Delete Device from Inventory
description: 'Deletes an existing unassigned (without digital line or phone number) device or multiple devices
from the account inventory. It is possible to delete up to 10 devices per request.
'
tags:
- Devices
operationId: deleteDeviceFromInventory
parameters:
- $ref: '#/components/parameters/AccountId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteDeviceFromInventoryRequest'
required: true
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteDeviceFromInventoryResponse'
'400':
$ref: '#/components/responses/InvalidRequest'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceNotAvailable'
x-feature: AddRemoveDevices
x-availability: Limited
x-throttling-group: Heavy
x-app-permission: EditAccounts
/restapi/v2/accounts/{accountId}/devices/{deviceId}:
delete:
tags:
- Devices
summary: Remove phone line
description: "Disassociates a phone line (DL & Device) from an extension:\n\n - if the value of `keepAssetsInInventory` is `true`,\nthe given device is moved to unassigned devices and the number is moved to the number inventory;\n - if the value of `keepAssetsInInventory` is `false`, the given device and number is removed from the account;\n - if the parameter `keepAssetsInInventory` is not set (empty body), default value `true` is set.\n"
operationId: removeLineJWSPublic
parameters:
- $ref: '#/components/parameters/AccountId'
- name: deviceId
in: path
description: Internal identifier of a source device
required: true
schema:
type: string
example: '65462346462'
requestBody:
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/RemoveLineRequest'
responses:
'200':
description: 'Successful response (when `keepAssetsInInventory` is `true`)
'
content:
application/json:
schema:
$ref: '#/components/schemas/RemoveLineResponse'
'204':
description: 'Successful response (when `keepAssetsInInventory` is `false`)
'
'400':
$ref: '#/components/responses/InvalidRequest'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
x-availability: Limited
x-throttling-group: Medium
x-app-permission: EditAccounts
x-user-permission: EditAccountDevices
/restapi/v2/accounts/{accountId}/devices/bulk-add:
post:
tags:
- Devices
summary: Add BYOD Devices
description: Adds multiple BYOD (customer provided) devices to an account.
operationId: bulkAddDevicesV2
parameters:
- $ref: '#/components/parameters/AccountId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BulkAddDevicesRequest'
required: true
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/BulkAddDevicesResponse'
'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-availability: Limited
x-throttling-group: Heavy
x-app-permission: EditAccounts
x-user-permission: AddRemoveDevices
/restapi/v2/accounts/{accountId}/extensions/{extensionId}/devices/{deviceId}/replace:
post:
tags:
- Devices
summary: Swap Devices
description: "Replaces the user device with another device, which is assigned to an extension\nor is stored in the inventory of the same account.\nCurrently, the following device types can be swapped - `HardPhone` and `OtherPhone`.\n\nPlease note:\n\n - This method allows replacing a device itself, while a phone number,\n a digital Line and an emergency address associated with this device remain unchanged\n and will still work together in a chain with the replacement device.\n - If a target device is from the inventory, then a source device will be moved\n to the inventory, and a target device will be assigned to the current extension.\n - If a target device is currently assigned to another extension,\n then the devices will be just swapped.\n"
operationId: replaceDevicesJWSPublic
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/ExtensionId'
- name: deviceId
in: path
description: Internal identifier of a source device that is currently assigned to the given extension
required: true
schema:
type: string
example: '65462346462'
responses:
'204':
description: No content
'400':
$ref: '#/components/responses/InvalidRequest'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SwapDeviceRequest'
required: true
x-availability: Limited
x-throttling-group: Medium
x-app-permission: EditAccounts
x-user-permission: EditUserDevices
/restapi/v1.0/account/{accountId}/device/{deviceId}:
get:
tags:
- Devices
summary: Get Device
description: Returns account device(s) by their ID(s).
operationId: readDevice
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/DeviceId'
- name: syncEmergencyAddress
in: query
description: Specifies if an emergency address should be synchronized or not
schema:
type: boolean
default: false
responses:
'200':
description: Account device(s) information
content:
application/json:
schema:
$ref: '#/components/schemas/DeviceResource'
x-feature: ReadAccountDevices
x-availability: High
x-throttling-group: Light
x-app-permission: ReadAccounts
x-user-permission: ReadCompanyDevices
put:
tags:
- Devices
summary: Update Device
description: Updates account device(s) by their ID(s).
operationId: updateDevice
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/DeviceId'
- name: prestatement
in: query
schema:
type: boolean
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AccountDeviceUpdate'
required: true
responses:
'200':
description: Updated device(s) information
content:
application/json:
schema:
$ref: '#/components/schemas/DeviceResource'
x-feature: EditAccountDevices
x-availability: Limited
x-throttling-group: Medium
x-app-permission: EditAccounts
x-user-permission: EditCompanyDevices
/restapi/v1.0/account/{accountId}/device/{deviceId}/sip-info:
get:
tags:
- Devices
summary: Get Device SIP Info
description: Returns device SIP information.
operationId: readDeviceSipInfo
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/DeviceId'
responses:
'200':
description: Device SIP information
content:
application/json:
schema:
$ref: '#/components/schemas/SipInfoResource'
x-feature: ReadAccountDevices
x-availability: High
x-throttling-group: Light
x-app-permission: ReadAccounts
x-user-permission: ReadCompanyDevices
/restapi/v1.0/account/{accountId}/device/{deviceId}/emergency:
put:
tags:
- Devices
summary: Update Device Emergency Info
description: Updates account device emergency information.
operationId: updateDeviceEmergency
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/DeviceId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AccountDeviceUpdate'
required: true
responses:
'200':
description: Updated emergency information of a device
content:
application/json:
schema:
$ref: '#/components/schemas/DeviceResource'
x-availability: Limited
x-throttling-group: Medium
x-app-permission: EditAccounts
x-user-permission: EditCompanyDevices
/restapi/v1.0/account/{accountId}/extension/{extensionId}/device:
get:
tags:
- Devices
summary: List Extension Devices
description: 'Returns devices of an extension or multiple extensions by their ID(s). Batch request
is supported.
'
operationId: listExtensionDevices
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/ExtensionId'
- $ref: '#/components/parameters/Page'
- $ref: '#/components/parameters/PerPage'
- name: linePooling
in: query
description: Pooling type of device - Host - a device with standalone paid phone line which can be linked to a soft client instance - Guest - a device with a linked phone line - None - a device without a phone line or with specific line (free, BLA, etc.)
schema:
type: string
enum:
- Host
- Guest
- None
- name: feature
in: query
description: Device feature or multiple features supported
schema:
$ref: '#/components/schemas/DeviceFeatureEnum'
- name: type
in: query
description: Device type
schema:
type: string
default: HardPhone
enum:
- HardPhone
- SoftPhone
- OtherPhone
- MobileDevice
- BLA
- Paging
- WebPhone
- WebRTC
- Room
- name: lineType
in: query
description: Phone line type
schema:
$ref: '#/components/schemas/PhoneLineTypeEnum'
responses:
'200':
description: Extension devices information
content:
application/json:
schema:
$ref: '#/components/schemas/GetExtensionDevicesResponse'
x-feature: ReadExtensionDevices
x-availability: High
x-throttling-group: Light
x-app-permission: ReadAccounts
x-user-permission: ReadUserDevices
components:
schemas:
BillingStatementInfo:
type: object
properties:
currency:
type: string
description: 'Currency code complying with [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217)
standard
'
charges:
type: array
items:
$ref: '#/components/schemas/BillingStatementCharges'
fees:
type: array
items:
$ref: '#/components/schemas/BillingStatementFees'
totalCharged:
type: number
format: double
totalCharges:
type: number
format: double
totalFees:
type: number
format: double
subtotal:
type: number
format: double
totalFreeServiceCredit:
type: number
format: double
description: 'Billing information. Returned for device update request if `prestatement`
query parameter is set to ''true''
'
ExtensionInfoIntId:
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
extensionNumber:
type: string
description: Number of extension
partnerId:
type: string
description: 'For Partner Applications Internal identifier of an extension
created by partner. The RingCentral supports the 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
'
description: This attribute can be omitted for unassigned devices
OutboundProxyInfo:
type: object
properties:
region:
type: string
description: Geographical region
example: APAC
proxy:
type: string
description: SIP outbound proxy
proxyTLS:
type: string
description: SIP details for TLS (Transport Layer Security)
PhoneLinesInfo:
type: object
properties:
id:
type: string
description: Internal identifier of a phone line
lineType:
$ref: '#/components/schemas/PhoneLineTypeEnum'
phoneInfo:
$ref: '#/components/schemas/PhoneNumberInfoIntId'
emergencyAddress:
$ref: '#/components/schemas/EmergencyAddress'
EmergencyAddress:
type: object
properties:
required:
type: boolean
description: If set to `true` then specifying emergency address is required
localOnly:
type: boolean
description: If set to `true` then only local emergency address can be specified
lineProvisioningStatus:
type: string
description: This status is associated with a phone line provision state
enum:
- Valid
- Provisioning
- Invalid
DeviceProvisioningExtensionInfo:
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: Number of extension
partnerId:
type: string
description: 'For Partner Applications Internal identifier of an extension
created by partner. The RingCentral supports the 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
'
description: Information on the extension, to which the phone number is assigned. Returned only for the request of Account phone number list
ApiErrorWithParameter:
description: 'The error model with additional attributes which can be used for HTTP 400/409
This is a deprecated model: "ApiError" model can be used instead with arbitrary additional parameters
'
allOf:
- $ref: '#/components/schemas/ApiError'
- type: object
properties:
parameterName:
type: string
description: The name of the API parameter/attribute which caused the error
parameterValue:
type: string
description: The value of the API parameter/attribute which caused the error
ShippingAddressInfo:
type: object
properties:
customerName:
type: string
description: Name of a primary contact person (receiver)
additionalCustomerName:
type: string
description: 'Name of an additional contact person. Should be specified for
countries except the US, Canada, the UK and Australia.
'
customerEmail:
type: string
format: email
description: 'Email of a primary contact person (receiver). Should be specified
for countries except the US, Canada, the UK and Australia.
'
additionalCustomerEmail:
type: string
format: email
description: 'Email of an additional contact person. Should be specified
for countries except the US, Canada, the UK and Australia.
'
customerPhone:
type: string
description: 'Phone number of a primary contact person (receiver). Should
be specified for countries except the US, Canada, the UK and Australia
'
additionalCustomerPhone:
type: string
description: 'Phone number of an additional contact person. Should be specified
for countries except the US, Canada, the UK & Australia.
'
street:
type: string
description: 'Street address, line 1 - street address, P.O. box, company
name, c/o
'
street2:
type: string
description: 'Street address, line 2 - apartment, suite, unit, building,
floor, etc.
'
city:
type: string
description: City name
state:
type: string
description: State/province name
stateId:
type: string
description: Internal identifier of a state
stateIsoCode:
type: string
description: ISO code of a state
stateName:
type: string
description: Full name of a state
countryId:
type: string
description: Internal identifier of a country
countryIsoCode:
type: string
description: ISO code of a country
country:
type: string
description: Country name
countryName:
type: string
description: Full name of a country
zip:
type: string
description: Zip code
taxId:
type: string
description: 'National taxpayer identification number. Should be specified
for Brazil (CNPJ/CPF number) and Argentina (CUIT number).
'
description: 'Shipping address for the order. If it coincides with the Emergency
Service Address, then can be omitted. By default, the same value as the
emergencyServiceAddress. Multiple addresses can be specified; in case
an order contains several devices, they can be delivered to different addresses
'
DeleteDeviceFromInventoryResponse:
type: object
required:
- records
properties:
records:
type: array
items:
type: object
properties:
bulkItemSuccessful:
type: boolean
description: Specifies if a device is successfully deleted
deviceId:
type: string
description: Internal identifier of a device
bulkItemErrors:
type: array
description: 'The list of errors occurred during processing of particular item of bulk operation.
Returned only if `bulkItemSuccessful` is false
'
minItems: 1
items:
$ref: '#/components/schemas/ApiError'
BulkAddDevicesResponse:
type: object
required:
- results
properties:
results:
type: array
items:
oneOf:
- $ref: '#/components/schemas/BulkAddDevicesSuccessItem'
- $ref: '#/components/schemas/BulkAddDevicesErrorItem'
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
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
ApiErrorResponseModel:
type: object
description: Standard error response model which is returned in case of any unsuccessful operation
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/ApiError'
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'
PageNavigationUri:
type: object
additionalProperties: false
properties:
uri:
type: string
description: Canonical URI to retrieve the particular page of the result set
format: uri
DeviceResource:
type: object
properties:
id:
type: string
description: Internal identifier of a device
uri:
type: string
format: uri
description: Canonical URI of a device
sku:
type: string
description: 'Device identification number (SKU, Stock Keeping Unit) in the format
TP-ID [-AT-AC], where TP is device type (HP for RC desk phones, DV for all
other devices including soft phones); ID - device model ID; AT - add-on type
ID; AC - add-on count (if any). For example ''HP-56-2-2''
'
type:
type: string
description: Device type
default: HardPhone
enum:
- BLA
- SoftPhone
- OtherPhone
- HardPhone
- WebPhone
- Paging
- Room
- WebRTC
name:
type: string
description: 'Device name. Mandatory if ordering SoftPhone or OtherPhone.
Optional for HardPhone. If not specified for HardPhone, then
a device model is used as a device name
'
serial:
type: string
description: 'Serial number for HardPhone (is returned only when the phone
is shipped and provisioned); endpoint ID for SoftPhone and
mobile applications
'
status:
type: string
description: Device status
enum:
- Offline
- Online
computerName:
type: string
description: Computer name (for devices of `SoftPhone` type only)
model:
$ref: '#/components/schemas/ModelInfo'
extension:
$ref: '#/components/schemas/ExtensionInfoIntId'
emergency:
$ref: '#/components/schemas/DeviceEmergencyInfo'
emergencyServiceAddress:
$ref: '#/components/schemas/EmergencyServiceAddressResource'
phoneLines:
type: array
description: Phone lines information
items:
$ref: '#/components/schemas/PhoneLinesInfo'
shipping:
$ref: '#/components/schemas/ShippingInfo'
boxBillingId:
type: integer
format: int64
description: 'Box billing identifier of a device. Applicable only for devices of `HardPhone` type.
It is an alternative way to identify the device to be ordered. Either
`model` structure, or `boxBillingId` must be specified
'
useAsCommonPhone:
type: boolean
description: 'Supported only for devices assigned to Limited extensions.
If true, enables users to log in to this phone as a common phone.
'
hotDeskDevice:
type: boolean
description: This flag indicates whether this device is used for hot desking or not
inCompanyNet:
type: boolean
description: 'Network location status. `true` if the device is located in
the configured corporate network (On-Net); `false` for Off-Net location.
Parameter is not returned if `EmergencyAddressAutoUpdate` feature is not
enabled for the account/user, or if device network location is not determined
'
site:
$ref: '#/components/schemas/DeviceSiteInfo'
lastLocationReportTime:
type: string
format: date-time
description: 'Date/time of receiving last location report in
[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
format including timezone, for example *2016-03-10T18:07:52.534Z
'
linePooling:
$ref: '#/components/schemas/LinePoolingEnum'
billingStatement:
$ref: '#/components/schemas/BillingStatementInfo'
PhoneLineTypeEnum:
type: string
description: The type of phone line
enum:
- Unknown
- Standalone
- StandaloneFree
- BlaPrimary
- BlaSecondary
AddDeviceToInventoryRequest:
type: object
required:
- type
- quantity
properties:
type:
type: string
description: 'Device type. Use `OtherPhone` to indicate BYOD (customer provided) device
'
enum:
- OtherPhone
quantity:
type: integer
minimum: 1
maximum: 50
format: int32
description: Quantity of devices (total quantity should not exceed 50)
site:
type: object
properties:
id:
type: string
description: Site extension identifier or "main-site" for the main site
GetExtensionDevicesResponse:
required:
- navigation
- paging
- records
type: object
properties:
uri:
type: string
format: uri
description: Link to a list of extension devices
records:
type: array
description: List of extension devices
items:
$ref: '#/components/schemas/DeviceResource'
navigation:
$ref: '#/components/schemas/PageNavigationModel'
paging:
$ref: '#/components/schemas/EnumeratedPagingModel'
ShippingInfo:
type: object
properties:
status:
$ref: '#/components/schemas/ShippingStatus'
carrier:
type: string
description: 'Shipping carrier name. Appears only if the device status is ''Shipped''
'
trackingNumber:
type: string
description: 'Carrier-specific tracking number. Appears only if the device status is ''Shipped''
'
method:
$ref: '#/components/schemas/ShippingMethodInfo'
address:
$ref: '#/components/schemas/ShippingAddressInfo'
description: 'Shipping information, according to which devices (in case of HardPhone)
or e911 stickers (in case of SoftPhone and OtherPhone) will be delivered
to the customer
'
DeviceFeatureEnum:
type: string
description: Device feature
enum:
- BLA
- CommonPhone
- Intercom
- Paging
- HELD
DeviceUpdatePhoneLinesInfo:
type: object
properties:
phoneLines:
type: array
description: Information on phone lines added to a device
items:
$ref: '#/components/schemas/UpdateDevicePhoneInfo'
description: Information on phone lines added to a device
PageNavigationModel:
type: object
description: Links to other pages of the current result set
additionalProperties: false
properties:
firstPage:
$ref: '#/components/schemas/PageNavigationUri'
nextPage:
$ref: '#/components/schemas/PageNavigationUri'
previousPage:
$ref: '#/components/schemas/PageNavigationUri'
lastPage:
$ref: '#/components/schemas/PageNavigationUri'
DeviceEmergencyLocationInfo:
type: object
properties:
id:
type: string
description: Internal identifier of the emergency response location
name:
type: string
description: Location name
addressFormatId:
type: string
description: Address format ID
description: Company emergency response location details
ShippingStatus:
description: 'Order item shipping status. It is set to `Initial` when the order is submitted.
Then it is changed to `Accepted` when a distributor starts processing the order.
Finally, it is changed to `Shipped` which means that the distributor has shipped the device.
'
type: string
enum:
- Initial
- Accepted
- Shipped
example: Shipped
PhoneNumberInfoIntId:
type: object
properties:
id:
type: integer
description: Internal identifier of a phone number
format: int64
country:
$ref: '#/components/schemas/PhoneNumberCountryInfo'
extension:
$ref: '#/components/schemas/DeviceProvisioningExtensionInfo'
label:
type: string
description: Custom user-defined name of a phone number, if any
location:
type: string
description: Location (City, State). Filled for local US numbers
paymentType:
type: string
description: 'Payment type. ''External'' is returned for forwarded numbers
which are not terminated in the RingCentral phone system
'
enum:
- External
- Local
phoneNumber:
type: string
description: Phone number
status:
type: string
description: 'Status of a phone number. If the value is ''Normal'', the phone
number is ready to be used. Otherwise, it is an external number not yet
ported to RingCentral
'
type:
type: string
description: Phone number type
enum:
- VoiceFax
- FaxOnly
- VoiceOnly
usageType:
type: string
description: Usage type of the phone number
enum:
- MainCompanyNumber
- AdditionalCompanyNumber
- CompanyNumber
- DirectNumber
- CompanyFaxNumber
- ForwardedNumber
- ForwardedCompanyNumber
- ContactCenterNumber
description: Phone number information
AddonInfo:
type: object
properties:
id:
type: string
name:
type: string
count:
type: integer
format: int32
BulkAddDevicesItem:
allOf:
- type: object
required:
- extension
properties:
costCenterId:
type: string
description: Internal identifier of a cost center
example: '224149'
extension:
$ref: '#/components/schemas/BulkOperationExtensionReference'
- $ref: '#/components/schemas/DeviceDefinition'
LinePoolingEnum:
type: string
description: 'Pooling type of device:
- `Host` - device with a standalone paid phone line which can be linked to soft phone client instance;
- `Guest` - device with a linked phone line;
- `None` - device without a phone line or with a specific line (free, BLA, etc.)
'
enum:
- Host
- Guest
- None
ModelInfo:
type: object
properties:
id:
type: string
description: Internal identifier of a HardPhone device model
name:
type: string
description: Device name
addons:
type: array
description: Add-ons description
items:
$ref: '#/components/schemas/AddonInfo'
deviceClass:
type: string
features:
type: array
description: Device feature or multiple features supported
items:
$ref: '#/components/schemas/DeviceFeatureEnum'
lineCount:
type: integer
format: int32
description: Max supported count of phone lines
description: HardPhone model information
RemoveLineResponse:
type: object
required:
- id
- type
- name
properties:
id:
type: string
description: Internal identifier of a source device
type:
type: string
description: Device type
default: HardPhone
enum:
- HardPhone
- SoftPhone
- OtherPhone
- MobileDevice
- BLA
- Paging
- WebPhone
- WebRTC
- ZoomMobile
- ZoomPhone
- Room
- Unknown
name:
type: string
description: The display name of a source device
example: My Device N1
serial:
type: string
description: Serial number of a device (HardPhone)
example: ff:ff:ff:ff:ff:ff
RemoveLineRequest:
type: object
required:
- keepAssetsInInventory
properties:
keepAssetsInInventory:
type: boolean
default: true
description: 'The flag that controls what to do with the number and device:
- if the value of `keepAssetsInInventory` is `true`, the given device is moved to unassigned devices
and the number is moved to the number inventory;
- if the value of `keepAssetsInInventory` is `false`, the given device and number is removed from the account;
- if the parameter `keepAssetsInInventory` is not set (empty body) or the value of the parameter is empty,
default value `true` is set.
'
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'
PhoneNumberDefinitionPreferredAreaCode:
type: object
description: To use as selection hint when a "toll" number to be selected from the number pool.
required:
- preferredAreaCode
properties:
preferredAreaCode:
description: Preferred area code to use if numbers available
type: string
pattern: ^[1-9]\d{1,3}$
example: '650'
ShippingMethodIdModel:
type: object
description: 'Devices shipping method. It is required if devices are ordered.
Availability of different shipping methods depends on package
definition.
'
required:
- id
properties:
id:
type: string
description: 'Shipping method ID:
- "1" - Ground Shipping (5-7 business days)
- "2" - Expedited Shipping (2-days)
- "3" - Overnight Shipping
'
enum:
- '1'
- '2'
- '3'
default: '1'
DeleteDeviceFromInventoryRequest:
type: object
required:
- records
properties:
records:
type: array
description: List of internal identifiers of the devices that should be deleted
items:
type: object
properties:
deviceId:
type: string
description: Internal identifier of a device that should be deleted
PhoneNumberCountryInfo:
type: object
properties:
id:
type: string
description: Internal identifier of a home country
uri:
type: string
format: uri
description: Canonical URI of a home country
name:
type: string
description: Official name of a home country
description: Brief information on a phone number country
DeviceEmergencyInfo:
type: object
properties:
address:
$ref: '#/components/schemas/CommonEmergencyLocationAddressInfoDefault'
location:
$ref: '#/components/schemas/DeviceEmergencyLocationInfo'
outOfCountry:
type: boolean
description: Specifies if emergency address is out of country
addressStatus:
type: string
description: Emergency address status
enum:
- Valid
- Invalid
- Provisioning
visibility:
type: string
description: 'Visibility of an emergency response location. If `Private`
is set, then location is visible only for the restricted number of users,
specified in `owners` array
'
enum:
- Private
- Public
syncStatus:
type: string
description: 'Resulting status of the emergency address synchronization. Returned
if `syncEmergencyAddress` parameter is set to `true`
'
enum:
- Verified
- Updated
- Deleted
- NotRequired
- Unsupported
- Failed
addressEditableStatus:
type: string
description: 'Ability to register new emergency address for a phone line
using devices sharing this line or only main device (line owner)
'
enum:
- MainDevice
- AnyDevice
description: Device emergency settings
BillingStatementFees:
type: object
properties:
description:
type: string
amount:
type: number
format: double
freeServiceCredit:
type: number
format: double
EmergencyServiceAddressResourceRequest:
type: object
properties:
street:
type: string
street2:
type: string
city:
type: string
zip:
type: string
customerName:
type: string
state:
type: string
description: State/province name
stateId:
type: string
description: Internal identifier of a state
country:
type: string
description: Country name
countryId:
type: string
description: Internal identifier of a country
description: 'Address for emergency cases. The same emergency address is assigned to all
numbers of a single device. If the emergency address is also specified in
`emergency` resource, then this value is ignored
'
AddDeviceToInventoryResponse:
type: object
required:
- devices
- site
properties:
devices:
type: array
items:
type: object
required:
- id
properties:
id:
type: string
description: Internal identifier of a created device
site:
$ref: '#/components/schemas/SiteBasicInfo'
BillingStatementCharges:
type: object
properties:
description:
type: string
amount:
type: number
format: double
feature:
type: string
freeServiceCredit:
type: number
format: double
PhoneNumberDefinitionNumberId:
type: object
description: To be used to assign a number by ID
required:
- phoneNumberId
properties:
phoneNumberId:
type: string
description: Phone number ID
UpdateDevicePhoneInfo:
type: object
properties:
id:
type: string
description: Internal identifier of a phone number
BulkAddDevicesSuccessItem:
type: object
required:
- successful
- id
- extension
- phoneNumber
properties:
successful:
type: boolean
description: Indicates if the provisioning operation was successful for this item, always `true` in this model
example: true
id:
description: Internal identifier of the created device
type: string
example: '787878'
extension:
$ref: '#/components/schemas/BulkOperationExtensionReference'
phoneNumber:
$ref: '#/components/schemas/PhoneNumberE164'
DeviceDefinition:
type: object
required:
- type
- emergency
- phoneInfo
properties:
type:
type: string
description: Device type. Only "OtherPhone" and "WebRTC" device types are supported at the moment
enum:
- OtherPhone
- WebRTC
emergency:
description: Only "address" is supported at the moment
oneOf:
- type: object
required:
- address
properties:
address:
$ref: '#/components/schemas/PostalAddress'
- type: object
required:
- location
properties:
location:
type: object
required:
- id
properties:
id:
type: string
description: Emergency location ID
phoneInfo:
oneOf:
- $ref: '#/components/schemas/PhoneNumberDefinitionTollType'
- $ref: '#/components/schemas/PhoneNumberDefinitionPreferredAreaCode'
- $ref: '#/components/schemas/PhoneNumberDefinitionDirectNumberWithReservationId'
- $ref: '#/components/schemas/PhoneNumberDefinitionNumberId'
PhoneNumberE164:
type: string
pattern: ^\+[1-9]\d{1,14}$
description: Phone number in e.164 format (with '+' prefix)
maxLength: 18
example: '+16501234567'
CommonEmergencyLocationAddressInfoDefault:
type: object
properties:
country:
type: string
description: Country name
countryId:
type: string
description: Internal identifier of a country
countryIsoCode:
type: string
description: ISO code of a country
countryName:
type: string
description: Full name of a country
state:
type: string
description: 'State/Province name. Mandatory for the USA, the UK and Canada
'
stateId:
type: string
description: Internal identifier of a state
stateIsoCode:
type: string
description: ISO code of a state
stateName:
type: string
description: Full name of a state
city:
type: string
description: City name
street:
type: string
description: First line address
street2:
type: string
description: 'Second line address (apartment, suite, unit, building, floor,
etc.)
'
zip:
type: string
description: Postal (Zip) code
customerName:
type: string
description: Customer name
PhoneNumberTollType:
description: Indicates if a number is toll or toll-free
type: string
enum:
- Toll
- TollFree
example: Toll
PhoneNumberDefinitionDirectNumberWithReservationId:
type: object
description: To be used for direct number assignment in case number pool is not supported
required:
- phoneNumber
properties:
phoneNumber:
type: string
description: Phone number ID
reservationId:
type: string
description: Phone number reservation ID
PostalAddress:
type: object
description: Postal address/location
required:
- street
- city
- zip
- country
properties:
street:
type: string
description: Street address
maxLength: 256
example: 20 Davis Dr
street2:
type: string
description: Street address (2nd line)
maxLength: 256
city:
type: string
description: City name
maxLength: 64
example: Belmont
state:
description: State or province information in the target country
maxLength: 64
type: string
example: CA
zip:
description: Postal code in the target country
type: string
maxLength: 10
example: '94002'
country:
description: ISO-3166-1 2-letter country code (alpha2)
type: string
maxLength: 2
minLength: 2
example: US
DeviceUpdateExtensionInfo:
type: object
properties:
id:
type: string
description: Internal identifier of an extension
description: Information on extension that the device is assigned to
SipInfoResource:
type: object
properties:
domain:
type: string
description: SIP domain
outboundProxies:
type: array
description: List of outbound proxies
items:
$ref: '#/components/schemas/OutboundProxyInfo'
userName:
type: string
description: User credentials
password:
type: string
description: User password
authorizationId:
type: string
description: Internal identifier for SIP authorization
EmergencyServiceAddressResource:
type: object
properties:
street:
type: string
street2:
type: string
city:
type: string
zip:
type: string
customerName:
type: string
state:
type: string
description: State/province name
stateId:
type: string
description: Internal identifier of a state
stateIsoCode:
type: string
description: ISO code of a state
stateName:
type: string
description: Full name of a state
countryId:
type: string
description: Internal identifier of a country
countryIsoCode:
type: string
description: ISO code of a country
country:
type: string
description: Country name
countryName:
type: string
description: Full name of a country
outOfCountry:
type: boolean
description: Specifies if emergency address is out of country
syncStatus:
type: string
description: 'Resulting status of emergency address synchronization. Returned
if `syncEmergencyAddress` parameter is set to `true`
'
enum:
- Verified
- Updated
- Deleted
- NotRequired
- Unsupported
- Failed
additionalCustomerName:
type: string
description: 'Name of an additional contact person. Should be specified for
countries except the US, Canada, the UK and Australia.
'
customerEmail:
type: string
format: email
description: 'Email of a primary contact person (receiver). Should be specified
for countries except the US, Canada, the UK and Australia.
'
additionalCustomerEmail:
type: string
format: email
description: 'Email of an additional contact person. Should be specified
for countries except the US, Canada, the UK and Australia.
'
customerPhone:
type: string
description: 'Phone number of a primary contact person (receiver). Should
be specified for countries except the US, Canada, the UK and Australia
'
additionalCustomerPhone:
type: string
description: 'Phone number of an additional contact person. Should be specified
for countries except the US, Canada, the UK & Australia.
'
lineProvisioningStatus:
type: string
description: Status of digital line provisioning
enum:
- Provisioning
- Valid
- Invalid
taxId:
type: string
description: Internal identifier of a tax
description: 'Address for emergency cases. The same emergency address is assigned
to all the numbers of one device
'
DeviceSiteInfo:
type: object
properties:
id:
type: string
description: Internal identifier of a site
name:
type: string
description: Name of a site
description: Site data
BulkOperationExtensionReference:
type: object
description: Information about an extension this device is assigned to
required:
- id
properties:
id:
type: string
description: Internal identifier of a RingCentral extension
example: '12345'
ShippingMethodInfo:
allOf:
- $ref: '#/components/schemas/ShippingMethodIdModel'
- type: object
properties:
name:
type: string
description: Method name, corresponding to the identifier
enum:
- Ground
- 2 Day
- Overnight
SwapDeviceRequest:
description: Swap device request
type: object
properties:
targetDeviceId:
type: string
description: Internal identifier of a target device, to which the current one will be swapped
example: '8459879873'
BulkAddDevicesRequest:
type: object
required:
- records
properties:
records:
type: array
minItems: 1
items:
$ref: '#/components/schemas/BulkAddDevicesItem'
BulkAddDevicesErrorItem:
type: object
required:
- successful
- errors
properties:
successful:
type: boolean
description: Indicates if the provisioning operation was successful for this item, always `false` in this model
example: false
errors:
type: array
minItems: 1
items:
$ref: '#/components/schemas/ApiErrorWithParameter'
SiteBasicInfo:
type: object
required:
- id
- name
properties:
id:
type: string
description: Site extension identifier or "main-site" for the main site
name:
type: string
description: Site name
AccountDeviceUpdate:
type: object
properties:
emergencyServiceAddress:
$ref: '#/components/schemas/EmergencyServiceAddressResourceRequest'
emergency:
$ref: '#/components/schemas/DeviceEmergencyInfo'
extension:
$ref: '#/components/schemas/DeviceUpdateExtensionInfo'
phoneLines:
$ref: '#/components/schemas/DeviceUpdatePhoneLinesInfo'
useAsCommonPhone:
type: boolean
description: 'Supported only for devices assigned to Limited extensions.
If true, enables users to log in to this phone as a common phone
'
name:
type: string
description: Device label, maximum number of symbols is 64
parameters:
Page:
name: page
in: query
description: The result set page number (1-indexed) to return
required: false
explode: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 1
example: 1
PerPage:
name: perPage
in: query
description: 'The number of items per page. If provided value in the request
is greater than a maximum, the maximum value is applied
'
required: false
explode: false
schema:
type: integer
format: int32
minimum: 1
maximum: 1000
default: 100
example: 100
DeviceId:
name: deviceId
in: path
description: Internal identifier of a device
required: true
schema:
type: string
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: '~'
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: '~'
responses:
TooManyRequests:
description: 'General response with **HTTP 429 "Too many requests"** status.
Reasons: certain rate limit is exceeded.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponseModel'
ServiceNotAvailable:
description: 'General response with **HTTP 503 "Service not available"** status.
Reasons: server cannot process the request because of being overloaded, misconfiguration or other issues.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponseModel'
Forbidden:
description: 'General response with **HTTP 403 "Forbidden"** status.
Reasons: the requested operation is forbidden because of certain resource state, lack of permissions, feature unavailability, etc.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponseModel'
InternalError:
description: 'General response with **HTTP 500 "Internal Server Error"** status.
Reasons: general server-side error.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponseModel'
NotFound:
description: 'General response with **HTTP 404 "Not found"** status.
Reasons: the entity with given ID (typically specified in a path parameter), is not found or inaccessible
'
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponseModel'
InvalidRequest:
description: 'General response with **HTTP 400 "Bad request"** status.
Reasons: unparsable request, path, query or body parameters are invalid.
The error description may contain reference to particular parameter(s) which haven''t passed the validation.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ParameterizedErrorResponseModel'
securitySchemes:
OAuth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://platform.ringcentral.com/restapi/oauth/authorize
tokenUrl: https://platform.ringcentral.com/restapi/oauth/token
refreshUrl: https://platform.ringcentral.com/restapi/oauth/token
scopes: {}
x-tagGroups:
- name: Voice
popular: true
tags:
- Business Hours
- Call Blocking
- Call Control
- Call Forwarding
- Call Handling Rules
- Interaction Rules
- State-based Rules
- Call Flip
- Call Log
- Call History
- Call Log Export
- Call Monitoring Groups
- Call Queues
- Call Recordings
- Call Recording Settings
- Device SIP Registration
- Greetings
- IVR
- RingOut
- Verification Calls
- name: SMS and Fax
popular: true
tags:
- Fax
- Message Exports
- Message Store
- Pager Messages
- SMS
- High Volume SMS
- SMS Log Export
- SMS Templates
- Voicemail Broadcasting
- name: Social Messaging
popular: true
tags:
- Identities
- Contents
- name: Team Messaging
popular: true
tags:
- Adaptive Cards
- Bots
- Calendar Events
- Chats
- Conversations
- Compliance Exports
- Contacts
- Incoming Webhooks
- Notes
- Posts
- Profile
- Tasks
- Teams
- name: Video
popular: true
tags:
- Bridge Management
- Delegation Management
- Meetings History
- Meeting Recordings
- RCM Meetings (Legacy)
- RCM Webinars (Legacy)
- name: Webinar
popular: true
tags:
- Webinars and Sessions
- Invitees
- Historical Webinars
- Historical Recordings
- Registration Management
- Registrants
- Webinar Analytics
- Webinar Subscriptions
- name: Analytics
popular: true
tags:
- Business Analytics
- name: Artificial Intelligence
popular: true
tags:
- Insights
- Audio
- Text
- Status
- name: Authentication
tags:
- OAuth 2.0 / OpenID Connect
- Interoperability
- name: Account
tags:
- Company
- Custom Fields
- Features
- Licenses
- Tax Locations
- Cost Centers
- Multi-Site
- Phone Numbers
- Presence
- Regional Settings
- User Permissions
- User Settings
- Audit Trail
- Calling Rates
- Appearance Customization
- Account Integrations
- name: Provisioning
tags:
- Automatic Location Updates
- Devices
- Extensions
- Paging Only Groups
- Park Locations
- Phone Lines
- SCIM
- Shared Lines
- Group Call Pickup
- Delegated Lines Groups
- Directed Call Pickup
- IVR Apps
- Video Configuration
- Number Porting
- SMB
- Account Federation
- Integrations
- Enterprise Portal API
- Push to Talk Provisioning
- BYOC
- name: Address Book
tags:
- External Contacts
- Internal Contacts
- Hybrid Directory Contacts
- Overlay Contacts
- External Shared Directory
- name: Roles and Permissions
tags:
- Permissions
- Role Management
- Site Administration
- User Groups
- name: Events & Notifications
tags:
- Subscriptions
- name: User Integrations
tags:
- Token Management
- Calendar Management
- Calendar Event Management
- Calendar Presence Link
- Cloud Personal Contacts
- Cloud Shared Contacts
- Cloud Directory
- Deprecated Calendar API
- name: Rooms
tags:
- Rooms Client API
- Rooms Management API
- name: App Management
tags:
- App Gallery
- App Rating Review
- Bot Provisioning
- name: Workflow Builder
tags:
- Flows
- Flow Editor
- Flow Log
- Flow Templates
- name: Utilities
tags:
- API Info
- Application Settings
- Async Tasks
- User Notifications
- Client Versions
- End-to-End Encryption