RingCentral · Capability

RingCentral API — Devices

RingCentral API — Devices. 10 operations. Lead operation: Get Device. Self-contained Naftiko capability covering one Ringcentral business surface.

Run with Naftiko RingcentralDevices

What You Can Do

GET
Readdevice — Get Device
/v1/restapi/v1-0/account/{accountid}/device/{deviceid}
PUT
Updatedevice — Update Device
/v1/restapi/v1-0/account/{accountid}/device/{deviceid}
PUT
Updatedeviceemergency — Update Device Emergency Info
/v1/restapi/v1-0/account/{accountid}/device/{deviceid}/emergency
GET
Readdevicesipinfo — Get Device SIP Info
/v1/restapi/v1-0/account/{accountid}/device/{deviceid}/sip-info
GET
Listextensiondevices — List Extension Devices
/v1/restapi/v1-0/account/{accountid}/extension/{extensionid}/device
POST
Adddevicetoinventory — Add Phone to Inventory
/v1/restapi/v2/accounts/{accountid}/device-inventory
DELETE
Deletedevicefrominventory — Delete Device from Inventory
/v1/restapi/v2/accounts/{accountid}/device-inventory
POST
Bulkadddevicesv2 — Add BYOD Devices
/v1/restapi/v2/accounts/{accountid}/devices/bulk-add
DELETE
Removelinejwspublic — Remove phone line
/v1/restapi/v2/accounts/{accountid}/devices/{deviceid}
POST
Replacedevicesjwspublic — Swap Devices
/v1/restapi/v2/accounts/{accountid}/extensions/{extensionid}/devices/{deviceid}/replace

MCP Tools

get-device

Get Device

read-only idempotent
update-device

Update Device

idempotent
update-device-emergency-info

Update Device Emergency Info

idempotent
get-device-sip-info

Get Device SIP Info

read-only idempotent
list-extension-devices

List Extension Devices

read-only idempotent
add-phone-inventory

Add Phone to Inventory

delete-device-inventory

Delete Device from Inventory

idempotent
add-byod-devices

Add BYOD Devices

remove-phone-line

Remove phone line

idempotent
swap-devices

Swap Devices

Capability Spec

platform-devices.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: RingCentral API — Devices
  description: 'RingCentral API — Devices. 10 operations. Lead operation: Get Device. Self-contained Naftiko capability covering
    one Ringcentral business surface.'
  tags:
  - Ringcentral
  - Devices
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    RINGCENTRAL_API_KEY: RINGCENTRAL_API_KEY
capability:
  consumes:
  - type: http
    namespace: platform-devices
    baseUri: https://platform.ringcentral.com
    description: RingCentral API — Devices business capability. Self-contained, no shared references.
    resources:
    - name: restapi-v1.0-account-accountId-device-deviceId
      path: /restapi/v1.0/account/{accountId}/device/{deviceId}
      operations:
      - name: readdevice
        method: GET
        description: Get Device
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: syncEmergencyAddress
          in: query
          type: boolean
          description: Specifies if an emergency address should be synchronized or not
      - name: updatedevice
        method: PUT
        description: Update Device
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: prestatement
          in: query
          type: boolean
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: restapi-v1.0-account-accountId-device-deviceId-emergency
      path: /restapi/v1.0/account/{accountId}/device/{deviceId}/emergency
      operations:
      - name: updatedeviceemergency
        method: PUT
        description: Update Device Emergency Info
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: restapi-v1.0-account-accountId-device-deviceId-sip-info
      path: /restapi/v1.0/account/{accountId}/device/{deviceId}/sip-info
      operations:
      - name: readdevicesipinfo
        method: GET
        description: Get Device SIP Info
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: restapi-v1.0-account-accountId-extension-extensionId-device
      path: /restapi/v1.0/account/{accountId}/extension/{extensionId}/device
      operations:
      - name: listextensiondevices
        method: GET
        description: List Extension Devices
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: linePooling
          in: query
          type: string
          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 li
        - name: feature
          in: query
          type: string
          description: Device feature or multiple features supported
        - name: type
          in: query
          type: string
          description: Device type
        - name: lineType
          in: query
          type: string
          description: Phone line type
    - name: restapi-v2-accounts-accountId-device-inventory
      path: /restapi/v2/accounts/{accountId}/device-inventory
      operations:
      - name: adddevicetoinventory
        method: POST
        description: Add Phone to Inventory
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deletedevicefrominventory
        method: DELETE
        description: Delete Device from Inventory
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: restapi-v2-accounts-accountId-devices-bulk-add
      path: /restapi/v2/accounts/{accountId}/devices/bulk-add
      operations:
      - name: bulkadddevicesv2
        method: POST
        description: Add BYOD Devices
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: restapi-v2-accounts-accountId-devices-deviceId
      path: /restapi/v2/accounts/{accountId}/devices/{deviceId}
      operations:
      - name: removelinejwspublic
        method: DELETE
        description: Remove phone line
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: deviceId
          in: path
          type: string
          description: Internal identifier of a source device
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: restapi-v2-accounts-accountId-extensions-extensionId-devices-deviceId-replace
      path: /restapi/v2/accounts/{accountId}/extensions/{extensionId}/devices/{deviceId}/replace
      operations:
      - name: replacedevicesjwspublic
        method: POST
        description: Swap Devices
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: deviceId
          in: path
          type: string
          description: Internal identifier of a source device that is currently assigned to the given extension
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: bearer
      token: '{{env.RINGCENTRAL_API_KEY}}'
  exposes:
  - type: rest
    namespace: platform-devices-rest
    port: 8080
    description: REST adapter for RingCentral API — Devices. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/restapi/v1-0/account/{accountid}/device/{deviceid}
      name: restapi-v1-0-account-accountid-device-deviceid
      description: REST surface for restapi-v1.0-account-accountId-device-deviceId.
      operations:
      - method: GET
        name: readdevice
        description: Get Device
        call: platform-devices.readdevice
        with:
          syncEmergencyAddress: rest.syncEmergencyAddress
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: updatedevice
        description: Update Device
        call: platform-devices.updatedevice
        with:
          prestatement: rest.prestatement
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/restapi/v1-0/account/{accountid}/device/{deviceid}/emergency
      name: restapi-v1-0-account-accountid-device-deviceid-emergency
      description: REST surface for restapi-v1.0-account-accountId-device-deviceId-emergency.
      operations:
      - method: PUT
        name: updatedeviceemergency
        description: Update Device Emergency Info
        call: platform-devices.updatedeviceemergency
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/restapi/v1-0/account/{accountid}/device/{deviceid}/sip-info
      name: restapi-v1-0-account-accountid-device-deviceid-sip-info
      description: REST surface for restapi-v1.0-account-accountId-device-deviceId-sip-info.
      operations:
      - method: GET
        name: readdevicesipinfo
        description: Get Device SIP Info
        call: platform-devices.readdevicesipinfo
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/restapi/v1-0/account/{accountid}/extension/{extensionid}/device
      name: restapi-v1-0-account-accountid-extension-extensionid-device
      description: REST surface for restapi-v1.0-account-accountId-extension-extensionId-device.
      operations:
      - method: GET
        name: listextensiondevices
        description: List Extension Devices
        call: platform-devices.listextensiondevices
        with:
          linePooling: rest.linePooling
          feature: rest.feature
          type: rest.type
          lineType: rest.lineType
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/restapi/v2/accounts/{accountid}/device-inventory
      name: restapi-v2-accounts-accountid-device-inventory
      description: REST surface for restapi-v2-accounts-accountId-device-inventory.
      operations:
      - method: POST
        name: adddevicetoinventory
        description: Add Phone to Inventory
        call: platform-devices.adddevicetoinventory
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletedevicefrominventory
        description: Delete Device from Inventory
        call: platform-devices.deletedevicefrominventory
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/restapi/v2/accounts/{accountid}/devices/bulk-add
      name: restapi-v2-accounts-accountid-devices-bulk-add
      description: REST surface for restapi-v2-accounts-accountId-devices-bulk-add.
      operations:
      - method: POST
        name: bulkadddevicesv2
        description: Add BYOD Devices
        call: platform-devices.bulkadddevicesv2
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/restapi/v2/accounts/{accountid}/devices/{deviceid}
      name: restapi-v2-accounts-accountid-devices-deviceid
      description: REST surface for restapi-v2-accounts-accountId-devices-deviceId.
      operations:
      - method: DELETE
        name: removelinejwspublic
        description: Remove phone line
        call: platform-devices.removelinejwspublic
        with:
          deviceId: rest.deviceId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/restapi/v2/accounts/{accountid}/extensions/{extensionid}/devices/{deviceid}/replace
      name: restapi-v2-accounts-accountid-extensions-extensionid-devices-deviceid-replace
      description: REST surface for restapi-v2-accounts-accountId-extensions-extensionId-devices-deviceId-replace.
      operations:
      - method: POST
        name: replacedevicesjwspublic
        description: Swap Devices
        call: platform-devices.replacedevicesjwspublic
        with:
          deviceId: rest.deviceId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: platform-devices-mcp
    port: 9090
    transport: http
    description: MCP adapter for RingCentral API — Devices. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: get-device
      description: Get Device
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platform-devices.readdevice
      with:
        syncEmergencyAddress: tools.syncEmergencyAddress
      outputParameters:
      - type: object
        mapping: $.
    - name: update-device
      description: Update Device
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: platform-devices.updatedevice
      with:
        prestatement: tools.prestatement
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: update-device-emergency-info
      description: Update Device Emergency Info
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: platform-devices.updatedeviceemergency
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-device-sip-info
      description: Get Device SIP Info
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platform-devices.readdevicesipinfo
      outputParameters:
      - type: object
        mapping: $.
    - name: list-extension-devices
      description: List Extension Devices
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platform-devices.listextensiondevices
      with:
        linePooling: tools.linePooling
        feature: tools.feature
        type: tools.type
        lineType: tools.lineType
      outputParameters:
      - type: object
        mapping: $.
    - name: add-phone-inventory
      description: Add Phone to Inventory
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-devices.adddevicetoinventory
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-device-inventory
      description: Delete Device from Inventory
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: platform-devices.deletedevicefrominventory
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: add-byod-devices
      description: Add BYOD Devices
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-devices.bulkadddevicesv2
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: remove-phone-line
      description: Remove phone line
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: platform-devices.removelinejwspublic
      with:
        deviceId: tools.deviceId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: swap-devices
      description: Swap Devices
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-devices.replacedevicesjwspublic
      with:
        deviceId: tools.deviceId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.