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