RingCentral Devices API

The Devices API from RingCentral — 8 operation(s) for devices.

Operations 10

POST /restapi/v2/accounts/{accountId}/device-inventory Add Phone to Inventory #
DELETE /restapi/v2/accounts/{accountId}/device-inventory Delete Device from Inventory #
DELETE /restapi/v2/accounts/{accountId}/devices/{deviceId} Remove phone line #
POST /restapi/v2/accounts/{accountId}/devices/bulk-add Add BYOD Devices #
POST /restapi/v2/accounts/{accountId}/extensions/{extensionId}/devices/{deviceId}/replace Swap Devices #
GET /restapi/v1.0/account/{accountId}/device/{deviceId} Get Device #
PUT /restapi/v1.0/account/{accountId}/device/{deviceId} Update Device #
GET /restapi/v1.0/account/{accountId}/device/{deviceId}/sip-info Get Device SIP Info #
PUT /restapi/v1.0/account/{accountId}/device/{deviceId}/emergency Update Device Emergency Info #
GET /restapi/v1.0/account/{accountId}/extension/{extensionId}/device List Extension Devices #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ringcentral-devices-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ringcentral-devices-api-openapi.yml Raw ↑
openapi: 3.2.0
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:
    ShippingMethodInfo:
      allOf:
      - $ref: '#/components/schemas/ShippingMethodIdModel'
      - type: object
        properties:
          name:
            type: string
            description: Method name, corresponding to the identifier
            enum:
            - Ground
            - 2 Day
            - Overnight
    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'
    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'
    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
    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
    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'
    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
    BulkAddDevicesResponse:
      type: object
      required:
      - results
      properties:
        results:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/BulkAddDevicesSuccessItem'
            - $ref: '#/components/schemas/BulkAddDevicesErrorItem'
    UpdateDevicePhoneInfo:
      type: object
      properties:
        id:
          type: string
          description: Internal identifier of a phone number
    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'
    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'
    BillingStatementCharges:
      type: object
      properties:
        description:
          type: string
        amount:
          type: number
          format: double
        feature:
          type: string
        freeServiceCredit:
          type: number
          format: double
    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
    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
    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'
    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

        '
    AddonInfo:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        count:
          type: integer
          format: int32
    PhoneNumberE164:
      type: string
      pattern: ^\+[1-9]\d{1,14}$
      description: Phone number in e.164 format (with '+' prefix)
      maxLength: 18
      example: '+16501234567'
    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'
    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

        '
    PhoneLineTypeEnum:
      type: string
      description: The type of phone line
      enum:
      - Unknown
      - Standalone
      - StandaloneFree
      - BlaPrimary
      - BlaSecondary
    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'
    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
        se

# --- truncated at 32 KB (63 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ringcentral/refs/heads/main/openapi/ringcentral-devices-api-openapi.yml