---
title: "Add BYOD Devices"
method: POST
path: "/restapi/v2/accounts/{accountId}/devices/bulk-add"
tags: ["Devices"]
---

# Add BYOD Devices

`POST /restapi/v2/accounts/{accountId}/devices/bulk-add`

Adds multiple BYOD (customer provided) devices to an account.

## Path parameters

- `accountId` string, required

## Request body

- BulkAddDevicesRequest
  - `records` BulkAddDevicesItem[], required
    - `costCenterId` string — Internal identifier of a cost center
    - `extension` BulkOperationExtensionReference, required — Information about an extension this device is assigned to
      - `id` string, required — Internal identifier of a RingCentral extension
    - `type` 'OtherPhone' | 'WebRTC', required — Device type. Only "OtherPhone" and "WebRTC" device types are supported at the moment
    - `emergency` union, required — Only "address" is supported at the moment
      - object
        - `address` PostalAddress, required — Postal address/location
          - `street` string, required — Street address
          - `street2` string — Street address (2nd line)
          - `city` string, required — City name
          - `state` string — State or province information in the target country
          - `zip` string, required — Postal code in the target country
          - `country` string, required — ISO-3166-1 2-letter country code (alpha2)
      - object
        - `location` object, required
          - `id` string, required — Emergency location ID
    - `phoneInfo` union, required
      - PhoneNumberDefinitionTollType — To use as selection criteria when a number to be selected from the number pool.
        - `tollType` 'Toll' | 'TollFree', required — Indicates if a number is toll or toll-free
      - PhoneNumberDefinitionPreferredAreaCode — To use as selection hint when a "toll" number to be selected from the number pool.
        - `preferredAreaCode` string, required — Preferred area code to use if numbers available
      - PhoneNumberDefinitionDirectNumberWithReservationId — To be used for direct number assignment in case number pool is not supported
        - `phoneNumber` string, required — Phone number ID
        - `reservationId` string — Phone number reservation ID
      - PhoneNumberDefinitionNumberId — To be used to assign a number by ID
        - `phoneNumberId` string, required — Phone number ID

## Response `200`

Successful response

- BulkAddDevicesResponse
  - `results` union[], required
    - union
      - BulkAddDevicesSuccessItem
        - `successful` boolean, required — Indicates if the provisioning operation was successful for this item, always `true` in this model
        - `id` string, required — Internal identifier of the created device
        - `extension` BulkOperationExtensionReference, required — Information about an extension this device is assigned to
          - `id` string, required — Internal identifier of a RingCentral extension
        - `phoneNumber` string, required — Phone number in e.164 format (with '+' prefix)
      - BulkAddDevicesErrorItem
        - `successful` boolean, required — Indicates if the provisioning operation was successful for this item, always `false` in this model
        - `errors` ApiErrorWithParameter[], required
          - `errorCode` string, required — Logical error code (typically, 3 letters followed with number, dash separated)
          - `message` string, required — User-friendly error message
          - `parameterName` string — The name of the API parameter/attribute which caused the error
          - `parameterValue` string — The value of the API parameter/attribute which caused the error

## Other responses

- `400` — General response with **HTTP 400 "Bad request"** status.<br> 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.
- `403` — General response with **HTTP 403 "Forbidden"** status.<br> Reasons: the requested operation is forbidden because of certain resource state, lack of permissions, feature unavailability, etc.
- `404` — General response with **HTTP 404 "Not found"** status.<br> Reasons: the entity with given ID (typically specified in a path parameter), is not found or inaccessible
- `429` — General response with **HTTP 429 "Too many requests"** status.<br> Reasons: certain rate limit is exceeded.
- `500` — General response with **HTTP 500 "Internal Server Error"** status.<br> Reasons: general server-side error.
- `503` — General response with **HTTP 503 "Service not available"** status.<br> Reasons: server cannot process the request because of being overloaded, misconfiguration or other issues.

---

[API](https://skmtc.net/ringcentral/apis/ringcentral-api.md) · [All operations](https://skmtc.net/ringcentral/apis/ringcentral-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ringcentral/ringcentral-api/revisions/8d602198ec97/schema)
