---
title: "Device APIs"
slug: "device-apis"
description: "Use Kentik’s Device APIs to programmatically manage network device configurations, interfaces, and sites. Streamline your monitoring and automation."
updated: 2026-02-20T15:36:30Z
published: 2026-02-20T15:36:30Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://kb.kentik.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Device APIs

This article covers how to get started with the Device APIs:

> [!NOTE]
> **Notes:**
> 
> - The [**API Tester**](https://portal.kentik.com/v4/core/api-tester) in the v4 Portal enables you to securely call the methods of these APIs using your organization's Kentik data.
> - For information about devices, start with [**Network Devices**](/v1/docs/network-devices).
> - Protobuf and OpenAPI specifications for Kentik’s v6 APIs are available in our [**api-schema-public**](https://github.com/kentik/api-schema-public) repository.

## Device Usage

The Device API provides programmatic access to configuration of devices

## Device RPCs

The tables below provide a quick reference to key information about each Remote Procedure Call in these APIs. Use the links in the tables to see schemas for the request and/or response body (if any).

> [!NOTE]
> **Note:** To test methods using your own Kentik data, use the portal's [**API Tester**](https://portal.kentik.com/v4/core/api-tester).

### ListDevices

**API: DeviceService**

| REST Method | REST Endpoint | Description |
| --- | --- | --- |
| GET | /device/v202308beta1 /device | Returns list of configured devices (see [About Devices](https://kb.kentik.com/v4/Cb01.htm)). |
| \| **Request body**: None **Parameters**: None \| **Response body**: [v202308beta1ListDevicesResponse](/v1/docs/device-apis#listdevicesresponse) \| \| --- \| --- \| |
| **Request body**: None **Parameters**: None | **Response body**: [v202308beta1ListDevicesResponse](/v1/docs/device-apis#listdevicesresponse) |

### CreateDevice

**API: DeviceService**

| REST Method | REST Endpoint | Description |
| --- | --- | --- |
| POST | /device/v202308beta1 /device | Create configuration for a new device. Returns the newly created configuration (see [About Devices](https://kb.kentik.com/v4/Cb01.htm)). |
| \| **Request body**: [v202308beta1CreateDeviceRequest](/v1/docs/device-apis#createdevicerequest) **Parameters**: None \| **Response body**: [v202308beta1CreateDeviceResponse](/v1/docs/device-apis#createdeviceresponse) \| \| --- \| --- \| |
| **Request body**: [v202308beta1CreateDeviceRequest](/v1/docs/device-apis#createdevicerequest) **Parameters**: None | **Response body**: [v202308beta1CreateDeviceResponse](/v1/docs/device-apis#createdeviceresponse) |

### DeleteDevices

**API: DeviceService**

| REST Method | REST Endpoint | Description |
| --- | --- | --- |
| POST | /device/v202308beta1 /device/batch | Deletes configuration of multiple devices with specific IDs (see [About Devices](https://kb.kentik.com/v4/Cb01.htm)). |
| \| **Request body**: [v202308beta1DeleteDevicesRequest](/v1/docs/device-apis#deletedevicesrequest) **Parameters**: None \| **Response body**: [v202308beta1DeleteDevicesResponse](/v1/docs/device-apis#deletedeviceresponse) \| \| --- \| --- \| |
| **Request body**: [v202308beta1DeleteDevicesRequest](/v1/docs/device-apis#deletedevicesrequest) **Parameters**: None | **Response body**: [v202308beta1DeleteDevicesResponse](/v1/docs/device-apis#deletedeviceresponse) |

### UpdateDevices

**API: DeviceService**

| REST Method | REST Endpoint | Description |
| --- | --- | --- |
| PUT | /device/v202308beta1 /device/batch | Replaces configuration of multiple devices with attributes in the request. Returns the updated configurations (see [About Devices](https://kb.kentik.com/v4/Cb01.htm)). |
| \| **Request body**: [v202308beta1UpdateDevicesRequest](/v1/docs/device-apis#updatedevicerequest) **Parameters**: None \| **Response body**: [v202308beta1UpdateDevicesResponse](/v1/docs/device-apis#updatedeviceresponse) \| \| --- \| --- \| |
| **Request body**: [v202308beta1UpdateDevicesRequest](/v1/docs/device-apis#updatedevicerequest) **Parameters**: None | **Response body**: [v202308beta1UpdateDevicesResponse](/v1/docs/device-apis#updatedeviceresponse) |

### UpdateDevice

**API: DeviceService**

<editor360-custom-block data-preprocessing="true" data-sanitizationtags="strong"><div data-type="table-content"><table width="1836" class="editor360-table fit-width put-table" borderstyle="solid" style="max-width:1836px;width:1836px;"><colgroup><col style="width:612px;"><col style="width:612px;"><col style="width:612px;"></colgroup><tbody><tr><th colspan="1" rowspan="1" colwidth="612"><p data-block-id="md5n5hjf-bs6x91-186">REST Method</p></th><th colspan="1" rowspan="1" colwidth="612"><p data-block-id="md5n5hjf-vstsbp-187">REST Endpoint</p></th><th colspan="1" rowspan="1" colwidth="612"><p data-block-id="md5n5hjf-vin074-188">Description</p></th></tr><tr><td colspan="1" rowspan="1" colwidth="612"><p data-block-id="md5n5hjf-hfh33c-189"><span type="spanMark">PUT</span> </p></td><td colspan="1" rowspan="1" colwidth="612"><p data-block-id="md5n5hjg-wtsac7-190">/device/v202308beta1<br type="inline">/device/{device.id}</p></td><td colspan="1" rowspan="1" colwidth="612"><p data-block-id="md5n5hjg-8oqxou-191">Replaces configuration of a device with attributes in the request. Returns the updated configuration (see [About Devices](https://kb.kentik.com/v4/Cb01.htm)).</p></td></tr><tr><td colspan="3" rowspan="1" colwidth="612,612,612"><div data-type="table-content"><table width="2438" class="editor360-table fit-width" borderstyle="solid" style="max-width:2438px;width:2438px;"><colgroup><col style="width:1219px;"><col style="width:1219px;"></colgroup><tbody><tr><td colspan="1" rowspan="1" colwidth="1219" style="border-color:#ffffff;"><p data-block-id="md5oepy4-rrqlnc-002"><strong>Request body</strong>:<br type="inline"><a href="/v1/docs/device-apis#updatedevicerequest" target="_self" translate="no" rel="noopener">v202308beta1UpdateDeviceRequest</a></p></td><td colspan="1" rowspan="1" colwidth="1219" style="border-color:#ffffff;"><p data-block-id="md5offi3-8q4tze-006"><strong>Response body</strong>:</p><p data-block-id="md5ofjfs-4hw7fx-007"><a href="/v1/docs/device-apis#updatedeviceresponse" target="_self" translate="no" rel="noopener"> v202308beta1UpdateDeviceResponse</a></p></td></tr></tbody></table></div><p data-block-id="md5n5hjg-5vcyqy-192"> <br type="inline"><span type="spanMark"><strong>Parameters:</strong></span><strong> </strong> </p><div data-type="table-content"><table width="2436" class="editor360-table fit-width" borderstyle="solid" style="max-width:2436px;width:2436px;"><colgroup><col style="width:609px;"><col style="width:609px;"><col style="width:609px;"><col style="width:609px;"></colgroup><tbody><tr><th colspan="1" rowspan="1" colwidth="609"><p data-block-id="md5n5hjg-hk3i1b-193">Name</p></th><th colspan="1" rowspan="1" colwidth="609"><p data-block-id="md5n5hjg-rh3yxe-194">Description</p></th><th colspan="1" rowspan="1" colwidth="609"><p data-block-id="md5n5hjg-enoxie-195">Required</p></th><th colspan="1" rowspan="1" colwidth="609"><p data-block-id="md5n5hjh-kr4j50-196">Type</p></th></tr><tr><td colspan="1" rowspan="1" colwidth="609"><p data-block-id="md5n5hjh-71zmf5-197">device.id</p></td><td colspan="1" rowspan="1" colwidth="609"><p data-block-id="md5n5hjh-1b9ymy-198">System generated unique identifier</p></td><td colspan="1" rowspan="1" colwidth="609"><p data-block-id="md5n5hjh-dg1itf-199">true</p></td><td colspan="1" rowspan="1" colwidth="609"><p data-block-id="md5n5hjh-ibjf17-200">string</p></td></tr></tbody></table></div></td></tr></tbody></table></div></editor360-custom-block>

### GetDevice

**API: DeviceService**

| REST Method | REST Endpoint | Description |
| --- | --- | --- |
| GET | /device/v202308beta1 /device/{device.id} | Returns configuration of a device specified by ID (see [About Devices](https://kb.kentik.com/v4/Cb01.htm)). |
| \| **Request body**: None \| **Response body**: [v202308beta1GetDeviceResponse](/v1/docs/device-apis#getdeviceresponse) \| \| --- \| --- \| **Parameters**: \| Name \| Description \| Required \| Type \| \| --- \| --- \| --- \| --- \| \| device.id \| ID of the requested device \| true \| string \| |
| **Request body**: None | **Response body**: [v202308beta1GetDeviceResponse](/v1/docs/device-apis#getdeviceresponse) |
| Name | Description | Required | Type |
| device.id | ID of the requested device | true | string |

### DeleteDevice

**API: DeviceService**

| REST Method | REST Endpoint | Description |
| --- | --- | --- |
| DELETE | /device/v202308beta1 /device/{device.id} | Deletes configuration of a device with specific ID (see [About Devices](https://kb.kentik.com/v4/Cb01.htm)). |
| \| **Request body**: None \| **Response body**: [v202308beta1DeleteDeviceResponse](/v1/docs/device-apis#deletedeviceresponse) \| \| --- \| --- \| **Parameters**: \| Name \| Description \| Required \| Type \| \| --- \| --- \| --- \| --- \| \| device.id \| ID of the device to be deleted \| true \| string \| |
| **Request body**: None | **Response body**: [v202308beta1DeleteDeviceResponse](/v1/docs/device-apis#deletedeviceresponse) |
| Name | Description | Required | Type |
| device.id | ID of the device to be deleted | true | string |

### UpdateDeviceLabels

**API: DeviceService**

| REST Method | REST Endpoint | Description |
| --- | --- | --- |
| PUT | /device/v202308beta1 /device/{id}/labels | Removes all existing labels from the device and applies the device labels (see [About Device Labels](https://kb.kentik.com/v4/Cb16.htm)) specified by id. Returns the updated configuration. |
| \| **Request body**: [v202308beta1UpdateDeviceLabelsRequest](/v1/docs/device-apis#updatedevicelabelsrequest) \| **Response body**: [v202308beta1UpdateDeviceLabelsResponse](/v1/docs/device-apis#updatedevicelabelsresponse) \| \| --- \| --- \| **Parameters**: \| Name \| Description \| Required \| Type \| \| --- \| --- \| --- \| --- \| \| id \| ID of the device to be updated \| true \| string \| |
| **Request body**: [v202308beta1UpdateDeviceLabelsRequest](/v1/docs/device-apis#updatedevicelabelsrequest) | **Response body**: [v202308beta1UpdateDeviceLabelsResponse](/v1/docs/device-apis#updatedevicelabelsresponse) |
| Name | Description | Required | Type |
| id | ID of the device to be updated | true | string |

## Device Schemas

This API uses the following schemas.

#### Label

| **Schema:** devicev202308beta1Label | **Type:** object |
| --- | --- |
| **Properties:** \| Name \| Value \| \| --- \| --- \| \| id \| type: string description: Label ID \| \| name \| type: string description: Label name \| \| description \| type: string description: Label description \| \| edate \| type: string format: date-time description: Label end date (UTC) \| \| cdate \| type: string format: date-time description: Label creation date (UTC) \| \| userId \| type: string description: User ID \| \| companyId \| type: string description: Company ID \| \| color \| type: string description: Label color \| \| order \| type: string description: Label order \| \| pivotDeviceId \| type: string description: Pivot device ID \| \| pivotLabelId \| type: string description: Pivot label ID \| |
| Name | Value |
| id | type: string description: Label ID |
| name | type: string description: Label name |
| description | type: string description: Label description |
| edate | type: string format: date-time description: Label end date (UTC) |
| cdate | type: string format: date-time description: Label creation date (UTC) |
| userId | type: string description: User ID |
| companyId | type: string description: Company ID |
| color | type: string description: Label color |
| order | type: string description: Label order |
| pivotDeviceId | type: string description: Pivot device ID |
| pivotLabelId | type: string description: Pivot label ID |

#### protobufAny

| **Schema:** protobufAny | **Type:** object |
| --- | --- |
| **Properties:** \| Name \| Value \| \| --- \| --- \| \| typeUrl \| type: string \| \| value \| type: string format: byte \| |
| Name | Value |
| typeUrl | type: string |
| value | type: string format: byte |

#### rpcStatus

| **Schema:** rpcStatus | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| code \| type: integer format: int32 \| \| message \| type: string \| \| details \| type: array items: $ref: [protobufAny](/v1/docs/device-apis#protobufany) \| |
| Name | Value |
| code | type: integer format: int32 |
| message | type: string |
| details | type: array items: $ref: [protobufAny](/v1/docs/device-apis#protobufany) |

#### CreateDeviceRequest

| **Schema:** v202308beta1CreateDeviceRequest | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| device \| $ref: [v202308beta1DeviceConcise](/v1/docs/device-apis#deviceconcise) \| |
| Name | Value |
| device | $ref: [v202308beta1DeviceConcise](/v1/docs/device-apis#deviceconcise) |

#### CreateDeviceResponse

| **Schema:** v202308beta1CreateDeviceResponse | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| device \| $ref: [v202308beta1DeviceDetailed](/v1/docs/device-apis#devicedetailed) \| |
| Name | Value |
| device | $ref: [v202308beta1DeviceDetailed](/v1/docs/device-apis#devicedetailed) |

#### CreateDevicesRequest

| **Schema:** v202308beta1CreateDevicesRequest | **Type:** object |
| --- | --- |
| **Properties (* = required)** \| Name \| Value \| \| --- \| --- \| \| devices * \| type: array items: $ref: [v202308beta1DeviceConcise](/v1/docs/device-apis#deviceconcise) description: List of configurations of devices to be created \| |
| Name | Value |
| devices * | type: array items: $ref: [v202308beta1DeviceConcise](/v1/docs/device-apis#deviceconcise) description: List of configurations of devices to be created |

#### CreateDevicesResponse

| **Schema:** v202308beta1CreateDevicesResponse | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| devices \| type: array items: $ref: [v202308beta1DeviceDetailed](/v1/docs/device-apis#devicedetailed) description: List of configurations of newly created devices \| \| failedDevices \| type: array items: type: string description: List of names of devices that failed to be created \| |
| Name | Value |
| devices | type: array items: $ref: [v202308beta1DeviceDetailed](/v1/docs/device-apis#devicedetailed) description: List of configurations of newly created devices |
| failedDevices | type: array items: type: string description: List of names of devices that failed to be created |

#### CustomColumnData

| **Schema:** v202308beta1CustomColumnData | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| deviceId \| type: string description: Device ID \| \| fieldId \| type: string description: Field ID \| \| colName \| type: string description: Column name \| \| description \| type: string description: Description \| \| colType \| type: string description: Column type \| \| deviceType \| type: string description: Device type \| |
| Name | Value |
| deviceId | type: string description: Device ID |
| fieldId | type: string description: Field ID |
| colName | type: string description: Column name |
| description | type: string description: Description |
| colType | type: string description: Column type |
| deviceType | type: string description: Device type |

#### DeleteDeviceResponse

| **Schema:** v202308beta1DeleteDeviceResponse **Properties**: None. | **Type:** object |
| --- | --- |

#### DeleteDevicesRequest

| **Schema:** v202308beta1DeleteDevicesRequest | **Type:** object |
| --- | --- |
| **Properties****(* = required)** \| Name \| Value \| \| --- \| --- \| \| ids * \| type: array items: type: string description: List of IDs of devices to be deleted \| |
| Name | Value |
| ids * | type: array items: type: string description: List of IDs of devices to be deleted |

#### DeleteDevicesResponse

| **Schema:** v202308beta1DeleteDevicesResponse | **Type:** object |
| --- | --- |
| **Properties:** \| Name \| Value \| \| --- \| --- \| \| failedDevices \| type: array items: type: string description: List of IDs of devices that failed to be deleted \| |
| Name | Value |
| failedDevices | type: array items: type: string description: List of IDs of devices that failed to be deleted |

#### DeviceConcise

| **Schema:** v202308beta1DeviceConcise | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| id \| type: string description: System generated unique identifier title: id \| \| deviceName \| type: string description: Device name (device_name) - The name of the device. Valid characters: alphanumeric and underscores. Length: min=4, max=60. \| \| deviceSubtype \| type: string description: Device subtype (device_subtype) - The device subtype. \| \| cdnAttr \| type: string description: CDN attributes (cdn_attr) - If this is a DNS server, you can contribute its queries to Kentik's CDN attribution database. Valid values: "Y" or "N". ** cdn_attr is required when the device subtype's parent type is "host-nprobe-dns-www" \| \| deviceDescription \| type: string description: Description (device_description) - The device description. Valid characters: any. Length: max=128. \| \| sendingIps \| type: array items: type: string description: Device ip (sending_ips) - Array containing one or more IP address(es), from which the device is sending flow. ** sending_ips is required when the device subtype's parent type is "router" \| \| deviceSampleRate \| type: number format: double description: Sample rate (device_sample_rate) - The rate at which the device is sampling flows. Valid values: integer bigger than 1. Recommended rate varies depending on flow volume; see https://kb.kentik.com/Ab02.htm#Ab02-Flow_Sampling. ** device_sample_rate is required when the device subtype's parent type is "router" \| \| planId \| type: integer format: int64 description: Plan (plan_id) - The ID of the plan to which this device is assigned. Available plan(s) can be found via the Plans API. Valid value: integer. \| \| siteId \| type: integer format: int64 description: Site (site_id) - The ID of the site (if any) to which this device is assigned. Site IDs are system generated when a site is created. Valid value: integer. \| \| minimizeSnmp \| type: boolean description: SNMP polling (minimize_snmp) - The interval at which SNMP will be polled. If "false" (Standard), interface counter will be polled every 10 minutes and interface description every 30 minutes. If "true" (Minimum) (Minimum), interface counter won't be polled and interface description will be polled every 6 hours. ** minimize_snmp is required when the device subtype's parent type is "router" \| \| deviceSnmpIp \| type: string description: Device SNMP IP (device_snmp_ip) - The SNMP IP to use when polling the device. device_snmp_ip is ignored unless the device subtype's parent type is "router" \| \| deviceSnmpCommunity \| type: string description: SNMP community (device_snmp_community) - The SNMP community to use when polling the device. device_snmp_community is ignored unless the device subtype's parent type is "router" \| \| deviceSnmpV3Conf \| $ref: [v202308beta1DeviceSnmpV3Conf](/v1/docs/device-apis#devicesnmpv3conf) \| \| deviceBgpType \| type: string description: BGP (device_bgp_type) - Device bgp type. Valid values: "none" (use generic IP/ASN mapping), "device" (peer with the device itself), "other_device" (share routing table of existing peered device) \| \| deviceBgpNeighborIp \| type: string description: Your IPv4 peering address (device_bgp_neighbor_ip) - A valid IPv4 address to use for peering with the device. ** An IPv4 and/or IPv6 peering address is required when device_bgp_type is set to "device" \| \| deviceBgpNeighborIp6 \| type: string description: Your IPv6 peering address (device_bgp_neighbor_ip6) - A valid IPv6 address to use for peering with the device. ** An IPv4 and/or IPv6 peering address is required when device_bgp_type is set to "device" \| \| deviceBgpNeighborAsn \| type: string description: Your ASN (device_bgp_neighbor_asn) - The valid AS number (ASN) of the autonomous system that this device belongs to. ** device_bgp_neighbor_asn is required when device_bgp_type is set to "device" \| \| deviceBgpPassword \| type: string description: BGP md5 password (device_bgp_password) - Optional BGP MD5 password (shared authentication password for BGP peering). Valid characters: alphanumeric. Length: 32. device_bgp_password is optional when device_bgp_type is set to "device" \| \| useBgpDeviceId \| type: integer format: int64 description: Select master BGP device (use_bgp_device_id) - The ID of the device whose BGP table should be shared with this device. ** use_bgp_device_id is required when device_bgp_type is set to "other_device"). Valid value: a system-generated device_id \| \| deviceBgpFlowspec \| type: boolean description: BGP Flowspec Compatibility (device_bgp_flowspec) - Toggle BGP Flowspec Compatibility for device. \| \| nms \| $ref: [v202308beta1DeviceNmsConfig](/v1/docs/device-apis#devicenmsconfig) \| \| deviceBgpCredentialName \| type: string description: BGP Credential Name (device_bgp_credential_name) - Optional Credential Name (Credential for BGP peering). Valid characters: alphanumeric. Length: 32. \| \| flowSnmpCredentialName \| type: string description: Snmp Credential Name (flow_snmp_credential_name) - Optional Credential Name (Credential for Flow Snmp peering). Valid characters: alphanumeric. Length: 32. \| |
| Name | Value |
| id | type: string description: System generated unique identifier title: id |
| deviceName | type: string description: Device name (device_name) - The name of the device. Valid characters: alphanumeric and underscores. Length: min=4, max=60. |
| deviceSubtype | type: string description: Device subtype (device_subtype) - The device subtype. |
| cdnAttr | type: string description: CDN attributes (cdn_attr) - If this is a DNS server, you can contribute its queries to Kentik's CDN attribution database. Valid values: "Y" or "N". ** cdn_attr is required when the device subtype's parent type is "host-nprobe-dns-www" |
| deviceDescription | type: string description: Description (device_description) - The device description. Valid characters: any. Length: max=128. |
| sendingIps | type: array items: type: string description: Device ip (sending_ips) - Array containing one or more IP address(es), from which the device is sending flow. ** sending_ips is required when the device subtype's parent type is "router" |
| deviceSampleRate | type: number format: double description: Sample rate (device_sample_rate) - The rate at which the device is sampling flows. Valid values: integer bigger than 1. Recommended rate varies depending on flow volume; see https://kb.kentik.com/Ab02.htm#Ab02-Flow_Sampling. ** device_sample_rate is required when the device subtype's parent type is "router" |
| planId | type: integer format: int64 description: Plan (plan_id) - The ID of the plan to which this device is assigned. Available plan(s) can be found via the Plans API. Valid value: integer. |
| siteId | type: integer format: int64 description: Site (site_id) - The ID of the site (if any) to which this device is assigned. Site IDs are system generated when a site is created. Valid value: integer. |
| minimizeSnmp | type: boolean description: SNMP polling (minimize_snmp) - The interval at which SNMP will be polled. If "false" (Standard), interface counter will be polled every 10 minutes and interface description every 30 minutes. If "true" (Minimum) (Minimum), interface counter won't be polled and interface description will be polled every 6 hours. ** minimize_snmp is required when the device subtype's parent type is "router" |
| deviceSnmpIp | type: string description: Device SNMP IP (device_snmp_ip) - The SNMP IP to use when polling the device. device_snmp_ip is ignored unless the device subtype's parent type is "router" |
| deviceSnmpCommunity | type: string description: SNMP community (device_snmp_community) - The SNMP community to use when polling the device. device_snmp_community is ignored unless the device subtype's parent type is "router" |
| deviceSnmpV3Conf | $ref: [v202308beta1DeviceSnmpV3Conf](/v1/docs/device-apis#devicesnmpv3conf) |
| deviceBgpType | type: string description: BGP (device_bgp_type) - Device bgp type. Valid values: "none" (use generic IP/ASN mapping), "device" (peer with the device itself), "other_device" (share routing table of existing peered device) |
| deviceBgpNeighborIp | type: string description: Your IPv4 peering address (device_bgp_neighbor_ip) - A valid IPv4 address to use for peering with the device. ** An IPv4 and/or IPv6 peering address is required when device_bgp_type is set to "device" |
| deviceBgpNeighborIp6 | type: string description: Your IPv6 peering address (device_bgp_neighbor_ip6) - A valid IPv6 address to use for peering with the device. ** An IPv4 and/or IPv6 peering address is required when device_bgp_type is set to "device" |
| deviceBgpNeighborAsn | type: string description: Your ASN (device_bgp_neighbor_asn) - The valid AS number (ASN) of the autonomous system that this device belongs to. ** device_bgp_neighbor_asn is required when device_bgp_type is set to "device" |
| deviceBgpPassword | type: string description: BGP md5 password (device_bgp_password) - Optional BGP MD5 password (shared authentication password for BGP peering). Valid characters: alphanumeric. Length: 32. device_bgp_password is optional when device_bgp_type is set to "device" |
| useBgpDeviceId | type: integer format: int64 description: Select master BGP device (use_bgp_device_id) - The ID of the device whose BGP table should be shared with this device. ** use_bgp_device_id is required when device_bgp_type is set to "other_device"). Valid value: a system-generated device_id |
| deviceBgpFlowspec | type: boolean description: BGP Flowspec Compatibility (device_bgp_flowspec) - Toggle BGP Flowspec Compatibility for device. |
| nms | $ref: [v202308beta1DeviceNmsConfig](/v1/docs/device-apis#devicenmsconfig) |
| deviceBgpCredentialName | type: string description: BGP Credential Name (device_bgp_credential_name) - Optional Credential Name (Credential for BGP peering). Valid characters: alphanumeric. Length: 32. |
| flowSnmpCredentialName | type: string description: Snmp Credential Name (flow_snmp_credential_name) - Optional Credential Name (Credential for Flow Snmp peering). Valid characters: alphanumeric. Length: 32. |

#### DeviceDetailed

| **Schema:** v202308beta1DeviceDetailed | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| id \| type: string description: System generated unique identifier readOnly: true \| \| companyId \| type: string description: Company ID \| \| deviceName \| type: string description: Device name \| \| deviceAlias \| type: string description: Device alias \| \| deviceType \| type: string description: Device type \| \| deviceDescription \| type: string description: Device description \| \| site \| $ref: [v202308beta1Site](/v1/docs/device-apis#site) \| \| plan \| $ref: [v202308beta1Plan](/v1/docs/device-apis#plan) \| \| labels \| type: array items: $ref: [devicev202308beta1Label](/v1/docs/device-apis#label) description: List of labels \| \| allInterfaces \| type: array items: $ref: [v202308beta1Interface](/v1/docs/device-apis#interface) description: List of interfaces \| \| deviceFlowType \| type: string description: Device flow type \| \| deviceSampleRate \| type: string description: Device sample rate \| \| sendingIps \| type: array items: type: string description: List of sending IPs \| \| deviceSnmpIp \| type: string description: Device SNMP IP \| \| deviceSnmpCommunity \| type: string description: Device SNMP community title: Keeping these tokens so we can give the user a useful error. They are removed from DeviceRequest \| \| minimizeSnmp \| type: boolean description: Minimize SNMP \| \| deviceBgpType \| type: string description: Device BGP type \| \| deviceBgpNeighborIp \| type: string description: Device BGP neighbor IP \| \| deviceBgpNeighborIp6 \| type: string description: Device BGP neighbor IP6 \| \| deviceBgpNeighborAsn \| type: string description: Device BGP neighbor ASN \| \| deviceBgpFlowspec \| type: boolean description: Device BGP flowspec \| \| deviceBgpPassword \| type: string description: Device BGP password title: Keeping these tokens so we can give the user a useful error. They are removed from DeviceRequest \| \| deviceBgpLabelUnicast \| type: boolean description: Device BGP label unicast \| \| bgpLookupStrategy \| type: string description: BGP lookup strategy \| \| deviceStatus \| type: string description: Device status \| \| useBgpDeviceId \| type: string description: Use BGP device ID \| \| customColumns \| type: string description: Custom columns \| \| customColumnData \| type: array items: $ref: [v202308beta1CustomColumnData](/v1/docs/device-apis#customcolumndata) description: Custom column data \| \| deviceChfClientPort \| type: string description: Device CHF client port \| \| deviceChfClientProtocol \| type: string description: Device CHF client protocol \| \| deviceChfInterface \| type: string description: Device CHF interface \| \| deviceAgentType \| type: string description: Device agent type \| \| maxFlowRate \| type: integer format: int64 description: Max flow rate \| \| maxBigFlowRate \| type: integer format: int64 description: Max big flow rate \| \| deviceProxyBgp \| type: string description: Device proxy BGP \| \| deviceProxyBgp6 \| type: string description: Device proxy BGP6 \| \| createdDate \| type: string format: date-time description: Creation timestamp (UTC) \| \| updatedDate \| type: string format: date-time description: Last modification timestamp (UTC) \| \| deviceSnmpV3ConfEnabled \| type: boolean description: Device SNMP v3 configuration enabled \| \| deviceSnmpV3Conf \| $ref: [v202308beta1DeviceSnmpV3Conf](/v1/docs/device-apis#devicesnmpv3conf) \| \| cdnAttr \| type: string description: CDN attributes \| \| bgpPeerIp4 \| type: string description: BGP peer IP4 \| \| bgpPeerIp6 \| type: string description: BGP peer IP6 \| \| deviceSubtype \| type: string description: Device subtype \| \| deviceVendorType \| type: string description: Device vendor type \| \| deviceModelType \| type: string description: Device model type \| \| cloudExportId \| type: string description: Cloud export ID \| \| deviceKproxy \| type: string description: Device KProxy \| \| snmpEnabled \| type: string description: SNMP enabled \| \| snmpDisabledReason \| type: string description: SNMP disabled reason \| \| snmpDisabledReasonOther \| type: string description: SNMP disabled reason other \| \| bgpDisabledReason \| type: string description: BGP disabled reason \| \| bgpDisabledReasonOther \| type: string description: BGP disabled reason other \| \| deviceManufacturer \| type: string description: Device manufacturer \| \| deviceAlert \| type: string description: Device alert \| \| role \| type: string description: Role \| \| deviceGnmiV1Conf \| $ref: [v202308beta1GnmiV1Conf](/v1/docs/device-apis#gnmiv1conf) \| \| useAsnFromFlow \| type: boolean description: Use ASN from flow \| \| maxInterface \| type: integer format: int64 description: Max interface \| \| maxInterfaceCheck \| type: integer format: int64 description: Max interface check \| \| nms \| $ref: [v202308beta1DeviceNmsConfig](/v1/docs/device-apis#devicenmsconfig) \| \| deviceBgpCredentialName \| type: string description: BGP Credential Name (device_bgp_credential_name) - Optional Credential Name (Credential for BGP peering). Valid characters: alphanumeric. Length: 32. \| \| flowSnmpCredentialName \| type: string description: Snmp Credential Name (flow_snmp_credential_name) - Optional Credential Name (Credential for Flow Snmp peering). Valid characters: alphanumeric. Length: 32. \| |
| Name | Value |
| id | type: string description: System generated unique identifier readOnly: true |
| companyId | type: string description: Company ID |
| deviceName | type: string description: Device name |
| deviceAlias | type: string description: Device alias |
| deviceType | type: string description: Device type |
| deviceDescription | type: string description: Device description |
| site | $ref: [v202308beta1Site](/v1/docs/device-apis#site) |
| plan | $ref: [v202308beta1Plan](/v1/docs/device-apis#plan) |
| labels | type: array items: $ref: [devicev202308beta1Label](/v1/docs/device-apis#label) description: List of labels |
| allInterfaces | type: array items: $ref: [v202308beta1Interface](/v1/docs/device-apis#interface) description: List of interfaces |
| deviceFlowType | type: string description: Device flow type |
| deviceSampleRate | type: string description: Device sample rate |
| sendingIps | type: array items: type: string description: List of sending IPs |
| deviceSnmpIp | type: string description: Device SNMP IP |
| deviceSnmpCommunity | type: string description: Device SNMP community title: Keeping these tokens so we can give the user a useful error. They are removed from DeviceRequest |
| minimizeSnmp | type: boolean description: Minimize SNMP |
| deviceBgpType | type: string description: Device BGP type |
| deviceBgpNeighborIp | type: string description: Device BGP neighbor IP |
| deviceBgpNeighborIp6 | type: string description: Device BGP neighbor IP6 |
| deviceBgpNeighborAsn | type: string description: Device BGP neighbor ASN |
| deviceBgpFlowspec | type: boolean description: Device BGP flowspec |
| deviceBgpPassword | type: string description: Device BGP password title: Keeping these tokens so we can give the user a useful error. They are removed from DeviceRequest |
| deviceBgpLabelUnicast | type: boolean description: Device BGP label unicast |
| bgpLookupStrategy | type: string description: BGP lookup strategy |
| deviceStatus | type: string description: Device status |
| useBgpDeviceId | type: string description: Use BGP device ID |
| customColumns | type: string description: Custom columns |
| customColumnData | type: array items: $ref: [v202308beta1CustomColumnData](/v1/docs/device-apis#customcolumndata) description: Custom column data |
| deviceChfClientPort | type: string description: Device CHF client port |
| deviceChfClientProtocol | type: string description: Device CHF client protocol |
| deviceChfInterface | type: string description: Device CHF interface |
| deviceAgentType | type: string description: Device agent type |
| maxFlowRate | type: integer format: int64 description: Max flow rate |
| maxBigFlowRate | type: integer format: int64 description: Max big flow rate |
| deviceProxyBgp | type: string description: Device proxy BGP |
| deviceProxyBgp6 | type: string description: Device proxy BGP6 |
| createdDate | type: string format: date-time description: Creation timestamp (UTC) |
| updatedDate | type: string format: date-time description: Last modification timestamp (UTC) |
| deviceSnmpV3ConfEnabled | type: boolean description: Device SNMP v3 configuration enabled |
| deviceSnmpV3Conf | $ref: [v202308beta1DeviceSnmpV3Conf](/v1/docs/device-apis#devicesnmpv3conf) |
| cdnAttr | type: string description: CDN attributes |
| bgpPeerIp4 | type: string description: BGP peer IP4 |
| bgpPeerIp6 | type: string description: BGP peer IP6 |
| deviceSubtype | type: string description: Device subtype |
| deviceVendorType | type: string description: Device vendor type |
| deviceModelType | type: string description: Device model type |
| cloudExportId | type: string description: Cloud export ID |
| deviceKproxy | type: string description: Device KProxy |
| snmpEnabled | type: string description: SNMP enabled |
| snmpDisabledReason | type: string description: SNMP disabled reason |
| snmpDisabledReasonOther | type: string description: SNMP disabled reason other |
| bgpDisabledReason | type: string description: BGP disabled reason |
| bgpDisabledReasonOther | type: string description: BGP disabled reason other |
| deviceManufacturer | type: string description: Device manufacturer |
| deviceAlert | type: string description: Device alert |
| role | type: string description: Role |
| deviceGnmiV1Conf | $ref: [v202308beta1GnmiV1Conf](/v1/docs/device-apis#gnmiv1conf) |
| useAsnFromFlow | type: boolean description: Use ASN from flow |
| maxInterface | type: integer format: int64 description: Max interface |
| maxInterfaceCheck | type: integer format: int64 description: Max interface check |
| nms | $ref: [v202308beta1DeviceNmsConfig](/v1/docs/device-apis#devicenmsconfig) |
| deviceBgpCredentialName | type: string description: BGP Credential Name (device_bgp_credential_name) - Optional Credential Name (Credential for BGP peering). Valid characters: alphanumeric. Length: 32. |
| flowSnmpCredentialName | type: string description: Snmp Credential Name (flow_snmp_credential_name) - Optional Credential Name (Credential for Flow Snmp peering). Valid characters: alphanumeric. Length: 32. |

#### DeviceNmsConfig

| **Schema:** v202308beta1DeviceNmsConfig | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| agentId \| type: string description: ID of the agent that is monitoring this device. \| \| ipAddress \| type: string description: Local IP address of this device. \| \| snmp \| $ref: [v202308beta1DeviceNmsSnmpConfig](/v1/docs/device-apis#devicenmssnmpconfig) \| \| st \| $ref: [v202308beta1DeviceNmsStConfig](/v1/docs/device-apis#devicenmsstconfig) \| |
| Name | Value |
| agentId | type: string description: ID of the agent that is monitoring this device. |
| ipAddress | type: string description: Local IP address of this device. |
| snmp | $ref: [v202308beta1DeviceNmsSnmpConfig](/v1/docs/device-apis#devicenmssnmpconfig) |
| st | $ref: [v202308beta1DeviceNmsStConfig](/v1/docs/device-apis#devicenmsstconfig) |

#### DeviceNmsSnmpConfig

| **Schema:** v202308beta1DeviceNmsSnmpConfig | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| credentialName \| type: string description: Name of the SNMP credentials from the credential vault. \| \| port \| type: integer format: int64 description: SNMP port, to override default of 161. \| \| timeout \| type: string description: Timeout, to override default of 2s. \| |
| Name | Value |
| credentialName | type: string description: Name of the SNMP credentials from the credential vault. |
| port | type: integer format: int64 description: SNMP port, to override default of 161. |
| timeout | type: string description: Timeout, to override default of 2s. |

#### DeviceNmsStConfig

| **Schema:** v202308beta1DeviceNmsStConfig | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| credentialName \| type: string description: Name of the ST credentials from the credential vault. \| \| port \| type: integer format: int64 description: ST port, to override default of 6030. \| \| timeout \| type: string description: Timeout, to override default of 2s. \| \| secure \| type: boolean description: Use SSL to connect to this device. \| |
| Name | Value |
| credentialName | type: string description: Name of the ST credentials from the credential vault. |
| port | type: integer format: int64 description: ST port, to override default of 6030. |
| timeout | type: string description: Timeout, to override default of 2s. |
| secure | type: boolean description: Use SSL to connect to this device. |

#### DeviceSnmpV3Conf

| **Schema:** v202308beta1DeviceSnmpV3Conf | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| username \| type: string description: UserName (username) - the user name to use to authenticate via SNMP v3. ** UserName is required when device_snmp_v3_conf is not null \| \| authenticationProtocol \| type: string description: Authentication Protocol (authentication_protocol) - the auth protocol to use via SNMP v3 \| \| authenticationPassphrase \| type: string description: Authentication Passphrase (authentication_passphrase) - the passphrase to use for SNMP v3 authentication protocol (required when AuthenticationProtocol not NoAuth. \| \| privacyProtocol \| type: string description: Privacy Protocol (privacy_protocol) - the privacy protocol to use to authenticate via SNMP v3 \| \| privacyPassphrase \| type: string description: Privacy Passphrase (privacy_passphrase) - the passphrase to use for SNMP v3 privacy protocol (required when PrivacyProtocol not NoPriv) \| |
| Name | Value |
| username | type: string description: UserName (username) - the user name to use to authenticate via SNMP v3. ** UserName is required when device_snmp_v3_conf is not null |
| authenticationProtocol | type: string description: Authentication Protocol (authentication_protocol) - the auth protocol to use via SNMP v3 |
| authenticationPassphrase | type: string description: Authentication Passphrase (authentication_passphrase) - the passphrase to use for SNMP v3 authentication protocol (required when AuthenticationProtocol not NoAuth. |
| privacyProtocol | type: string description: Privacy Protocol (privacy_protocol) - the privacy protocol to use to authenticate via SNMP v3 |
| privacyPassphrase | type: string description: Privacy Passphrase (privacy_passphrase) - the passphrase to use for SNMP v3 privacy protocol (required when PrivacyProtocol not NoPriv) |

#### GetDeviceResponse

| **Schema:** v202308beta1GetDeviceResponse | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| device \| $ref: [v202308beta1DeviceDetailed](/v1/docs/device-apis#devicedetailed) \| |
| Name | Value |
| device | $ref: [v202308beta1DeviceDetailed](/v1/docs/device-apis#devicedetailed) |

#### GnmiV1Conf

| **Schema:** v202308beta1GnmiV1Conf | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| dialoutServer \| type: string description: Dialout server \| |
| Name | Value |
| dialoutServer | type: string description: Dialout server |

#### Interface

| **Schema:** v202308beta1Interface | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| interfaceDescription \| type: string description: Interface description \| \| initialSnmpSpeed \| type: string description: Initial SNMP speed \| \| deviceId \| type: string description: Device ID \| \| snmpSpeed \| type: string description: SNMP speed \| \| snmpAlias \| type: string description: SNMP alias \| \| snmpId \| type: string description: SNMP ID \| \| connectivityType \| type: string description: Connectivity type \| \| networkBoundary \| type: string description: Network boundary \| \| provider \| type: string description: Provider \| |
| Name | Value |
| interfaceDescription | type: string description: Interface description |
| initialSnmpSpeed | type: string description: Initial SNMP speed |
| deviceId | type: string description: Device ID |
| snmpSpeed | type: string description: SNMP speed |
| snmpAlias | type: string description: SNMP alias |
| snmpId | type: string description: SNMP ID |
| connectivityType | type: string description: Connectivity type |
| networkBoundary | type: string description: Network boundary |
| provider | type: string description: Provider |

#### LabelConcise

| **Schema:** v202308beta1LabelConcise | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| id \| type: integer format: int64 description: Label ID \| |
| Name | Value |
| id | type: integer format: int64 description: Label ID |

#### ListDevicesResponse

| **Schema:** v202308beta1ListDevicesResponse | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| devices \| type: array items: $ref: v202308beta1DeviceDetailed description: List of configurations of devices \| \| invalidCount \| type: integer format: int64 description: Number of invalid entries encountered while collecting dat \| |
| Name | Value |
| devices | type: array items: $ref: v202308beta1DeviceDetailed description: List of configurations of devices |
| invalidCount | type: integer format: int64 description: Number of invalid entries encountered while collecting dat |

#### Plan

| **Schema:** v202308beta1Plan | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| id \| type: string description: Plan ID \| \| name \| type: string description: Plan name \| |
| Name | Value |
| id | type: string description: Plan ID |
| name | type: string description: Plan name |

#### Site

| **Schema:** v202308beta1Site | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| id \| type: string description: Site ID \| \| siteName \| type: string description: Site name \| \| lat \| type: number format: double description: Site latitude \| \| lon \| type: number format: double description: Site longitude \| \| companyId \| type: string description: Company ID \| |
| Name | Value |
| id | type: string description: Site ID |
| siteName | type: string description: Site name |
| lat | type: number format: double description: Site latitude |
| lon | type: number format: double description: Site longitude |
| companyId | type: string description: Company ID |

#### UpdateDeviceLabelsRequest

| **Schema:** v202308beta1UpdateDeviceLabelsRequest | **Type:** object |
| --- | --- |
| **Properties****(* = required)** \| Name \| Value \| \| --- \| --- \| \| id * \| type: string description: ID of the device to be updated \| \| labels * \| type: array items: $ref: [v202308beta1LabelConcise](/v1/docs/device-apis#labelconcise) description: List of labels to be added to the device \| |
| Name | Value |
| id * | type: string description: ID of the device to be updated |
| labels * | type: array items: $ref: [v202308beta1LabelConcise](/v1/docs/device-apis#labelconcise) description: List of labels to be added to the device |

#### UpdateDeviceLabelsResponse

| **Schema:** v202308beta1UpdateDeviceLabelsResponse | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| device \| $ref: [v202308beta1DeviceDetailed](/v1/docs/device-apis#devicedetailed) \| |
| Name | Value |
| device | $ref: [v202308beta1DeviceDetailed](/v1/docs/device-apis#devicedetailed) |

#### UpdateDeviceRequest

| **Schema:** v202308beta1UpdateDeviceRequest | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| device \| $ref: [v202308beta1DeviceConcise](/v1/docs/device-apis#deviceconcise) \| |
| Name | Value |
| device | $ref: [v202308beta1DeviceConcise](/v1/docs/device-apis#deviceconcise) |

#### UpdateDeviceResponse

| **Schema:** v202308beta1UpdateDeviceResponse | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| device \| $ref: [v202308beta1DeviceDetailed](/v1/docs/device-apis#devicedetailed) \| |
| Name | Value |
| device | $ref: [v202308beta1DeviceDetailed](/v1/docs/device-apis#devicedetailed) |

#### UpdateDevicesRequest

| **Schema:** v202308beta1UpdateDevicesRequest | **Type:** object |
| --- | --- |
| **Properties (* = required)** \| Name \| Value \| \| --- \| --- \| \| devices * \| type: array items: $ref: [v202308beta1DeviceConcise](/v1/docs/device-apis#deviceconcise) description: List of configurations of devices to be updated \| |
| Name | Value |
| devices * | type: array items: $ref: [v202308beta1DeviceConcise](/v1/docs/device-apis#deviceconcise) description: List of configurations of devices to be updated |

#### UpdateDevicesResponse

| **Schema:** v202308beta1UpdateDevicesResponse | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| devices \| type: array items: $ref: [v202308beta1DeviceDetailed](/v1/docs/device-apis#devicedetailed) description: List of configurations of updated devices \| \| failedDevices \| type: array items: type: string description: List of IDs of devices that failed to be updated \| |
| Name | Value |
| devices | type: array items: $ref: [v202308beta1DeviceDetailed](/v1/docs/device-apis#devicedetailed) description: List of configurations of updated devices |
| failedDevices | type: array items: type: string description: List of IDs of devices that failed to be updated |
