---
title: "BGP Monitoring APIs"
slug: "bgp-monitoring-apis"
description: "Get started with Kentik's BGP Monitoring APIs to manage BGP prefixes, monitor reachability, and retrieve routing data efficiently."
updated: 2026-02-20T15:29:59Z
published: 2026-02-20T15:29:59Z
---

> ## 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.

# BGP Monitoring APIs

This article covers how to get started with the BGP Monitoring 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.
> - BGP monitoring is supported in the Kentik portal via BGP Monitor tests, which report on BGP reachability, path changes, and events. For more information, see [**BGP Monitor Details Page**](/v1/docs/test-control-center#bgp-monitor-details-page)**.**
> - Protobuf and OpenAPI specifications for Kentik’s v6 APIs are available in our [**api-schema-public**](https://github.com/kentik/api-schema-public) repository.

## BGP Monitoring Usage

The topics below provide important background information for the use of these APIs.

### Overview

The BGP Monitoring API provides programmatic access to Kentik's BGP monitoring system. The APIs handle two distinct functions:

- **Admin service**: manages monitoring of advertised BGP prefixes as collected from global vantage points.
- **Data service**: handles retrieval of two classes of data for any IP prefix:
  - metrics for reachability and path changes, which provide a time series for a specified interval;
  - routes, which provide a snapshot of routing information for particular timestamp.

The services described above use the following endpoints:

| Endpoint | Purpose |
| --- | --- |
| BgpMonitoringAdminService | CRUD operations for BGP monitors |
| BgpMonitoringDataService | Retrieval of BGP monitoring data |

Both REST endpoints and gRPC RPCs are provided.

#### Known Limitations

The API currently does not support retrieval of BGP event history.

### BGP Monitoring Data

Kentik's BGP monitoring API provides the following information about network prefixes:

- **Reachability**: expressed as the percentage of vantage points reporting the prefix
- **Path changes**: the number of changes in a given time range
- **Routes**: AS Path, next hop

#### Data Retrieval Limitations

The following considerations apply to data retrieval using these APIs:

- BGP metrics and routes can be retrieved for any prefix with prefix length greater than 14 and any time interval. Prefixes with smaller length must be split into subnets (sub-prefixes) and requested individually.
- Requests for BGP metrics can can specify one or more metric types to be retrieved for a single prefix. Observed data are returned as a sequence of messages, one for each metric type and observation time.
- Route requests retrieve snapshot of information for specified prefix and time. Responses contain also mapping of ASNs to AS names for convenience.

### Working with BGP Monitoring

The topics below cover important information related to using Kentik's BGP monitoring APIs.

#### BGP Prefixes

These APIs represent BGP prefixes using NLRI (Network Layer Reachability Information) objects. While NLRI objects allow representation of any type of network address, the system currently supports only IPv4 and IPv6 unicast in standard textual representation:

- **IPv4**: dotted-decimal notation
- **IPv6**: [RFC 5952](https://www.rfc-editor.org/rfc/rfc5952) syntax

#### BGP Monitor Tests

BGP Monitors enable the generation of alerts for group network prefixes (IPv4 or IPv6) based on the following factors:

- Visibility/reachability of prefixes
- Mismatch of originating ASNs with a specified list of valid originators
- Validity of advertisements with respect to RPKI (Resource Public Key Infrastructure)

#### Configuration Limitations

The following considerations apply when configuring a BGP monitor test:

- Each BGP monitor instance can monitor up to 10 prefixes.
- The length of each monitored (IPv4 or IPv6) prefix must be greater than 14. Prefixes with smaller length must be split into subnets (sub-prefixes).

## BGP Monitoring 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).

### ListMonitors

**API: BgpMonitoringAdminService**

| REST Method | REST Endpoint | Description |
| --- | --- | --- |
| GET | /bgp_monitoring/v202210 /monitors | Returns list of all BGP monitors present in the account. |
| \| **Request body:** None **Parameters:** None \| **Response body:** [v202210ListMonitorsResponse](/v1/docs/bgp-monitoring-apis#listmonitorsresponse) \| \| --- \| --- \| |
| **Request body:** None **Parameters:** None | **Response body:** [v202210ListMonitorsResponse](/v1/docs/bgp-monitoring-apis#listmonitorsresponse) |

### CreateMonitor

**API: BgpMonitoringAdminService**

| REST Method | REST Endpoint | Description |
| --- | --- | --- |
| POST | /bgp_monitoring/v202210 /monitors | Creates new BGP Monitor and if successful returns its configuration. |
| \| **Request body:** [v202210CreateMonitorRequest](/v1/docs/bgp-monitoring-apis#createmonitorrequest) **Parameters:** None \| **Response body:** [v202210CreateMonitorResponse](/v1/docs/bgp-monitoring-apis#createmonitorresponse) \| \| --- \| --- \| |
| **Request body:** [v202210CreateMonitorRequest](/v1/docs/bgp-monitoring-apis#createmonitorrequest) **Parameters:** None | **Response body:** [v202210CreateMonitorResponse](/v1/docs/bgp-monitoring-apis#createmonitorresponse) |

### GetMonitor

**API: BgpMonitoringAdminService**

<editor360-custom-block data-preprocessing="true" data-sanitizationtags="strong"><div data-type="table-content"> <table width="1356" class="editor360-table fit-width get-table" borderstyle="solid" style="max-width:1356px;width:1356px;"> <colgroup> <col style="width:452px;"> <col style="width:452px;"> <col style="width:452px;"> </colgroup> <tbody> <tr> <th colspan="1" rowspan="1" colwidth="452"> <p data-block-id="mcyrhhyy-bn4b1i-325">REST Method</p> </th> <th colspan="1" rowspan="1" colwidth="452"> <p data-block-id="mcyrhhyy-vqjjbp-326">REST Endpoint</p> </th> <th colspan="1" rowspan="1" colwidth="452"> <p data-block-id="mcyrhhyy-mundwj-327">Description</p> </th> </tr> <tr> <td colspan="1" rowspan="1" colwidth="452"> <p data-block-id="mcyrhhyz-bcoj72-328"><span type="spanMark">GET</span> </p> </td> <td colspan="1" rowspan="1" colwidth="452"> <p data-block-id="mcyrhhyz-lsm1kk-329">/bgp_monitoring/v202210<br type="inline">/monitors/{id}</p> </td> <td colspan="1" rowspan="1" colwidth="452"> <p data-block-id="mcyrhhyz-gwn5t6-330">Returns configuration of existing BGP monitor with specific ID.</p> </td> </tr> <tr> <td colspan="3" rowspan="1" colwidth="452,452,452"> <div data-type="table-content"> <table width="1326" class="editor360-table fit-width" borderstyle="solid" style="max-width:1326px;width:1326px;"> <colgroup> <col style="width:663px;"> <col style="width:663px;"> </colgroup> <tbody> <tr> <td colspan="1" rowspan="1" colwidth="663" style="border-color:#ffffff;"> <p data-block-id="mcyu32rb-lm0vw1-940"><strong>Request body:</strong><br type="inline"><span type="spanMark">None</span></p> </td> <td colspan="1" rowspan="1" colwidth="663" style="border-color:#ffffff;"> <p data-block-id="mcyu3rav-rs32i8-944"><strong>Response body:</strong><br type="inline"><a href="/v1/docs/bgp-monitoring-apis#getmonitorresponse" target="_self" translate="no" rel="noopener"> v202210GetMonitorResponse</a></p> </td> </tr> </tbody> </table> </div> <p data-block-id="mcyrhhyz-0fo09z-331"> <span type="spanMark"><br type="inline"><strong>Parameters:</strong></span><strong> </strong> </p> <div data-type="table-content"> <table width="1796" class="editor360-table fit-width" borderstyle="solid" style="max-width:1796px;width:1796px;"> <colgroup> <col style="width:449px;"> <col style="width:449px;"> <col style="width:449px;"> <col style="width:449px;"> </colgroup> <tbody> <tr> <th colspan="1" rowspan="1" colwidth="449"> <p data-block-id="mcyrhhz0-4hk88k-332">Name</p> </th> <th colspan="1" rowspan="1" colwidth="449"> <p data-block-id="mcyrhhz0-yfzmic-333">Description</p> </th> <th colspan="1" rowspan="1" colwidth="449"> <p data-block-id="mcyrhhz0-crc7rn-334">Required</p> </th> <th colspan="1" rowspan="1" colwidth="449"> <p data-block-id="mcyrhhz0-2c913m-335">Type</p> </th> </tr> <tr> <td colspan="1" rowspan="1" colwidth="449"> <p data-block-id="mcyrhhz0-rfj1lt-336">id</p> </td> <td colspan="1" rowspan="1" colwidth="449"> <p data-block-id="mcyrhhz1-jakt5l-337">ID of the BGP monitor to be retrieved</p> </td> <td colspan="1" rowspan="1" colwidth="449"> <p data-block-id="mcyrhhz1-pywerc-338">true</p> </td> <td colspan="1" rowspan="1" colwidth="449"> <p data-block-id="mcyrhhz1-lvgrsl-339">string</p> </td> </tr> </tbody> </table> </div> </td> </tr> </tbody> </table></div></editor360-custom-block>

### DeleteMonitor

**API: BgpMonitoringAdminService**

<editor360-custom-block data-preprocessing="true" data-sanitizationtags="strong"><div data-type="table-content"> <table width="1356" class="editor360-table fit-width delete-table" borderstyle="solid" style="max-width:1356px;width:1356px;"> <colgroup> <col style="width:452px;"> <col style="width:452px;"> <col style="width:452px;"> </colgroup> <tbody> <tr> <th colspan="1" rowspan="1" colwidth="452"> <p data-block-id="mcyrhhz2-43wn8x-340">REST Method</p> </th> <th colspan="1" rowspan="1" colwidth="452"> <p data-block-id="mcyrhhz2-pidc2j-341">REST Endpoint</p> </th> <th colspan="1" rowspan="1" colwidth="452"> <p data-block-id="mcyrhhz2-pepap5-342">Description</p> </th> </tr> <tr> <td colspan="1" rowspan="1" colwidth="452"> <p data-block-id="mcyrhhz2-r22irz-343"><span type="spanMark">DELETE</span> </p> </td> <td colspan="1" rowspan="1" colwidth="452"> <p data-block-id="mcyrhhz2-qmf9wv-344">/bgp_monitoring/v202210<br type="inline">/monitors/{id}</p> </td> <td colspan="1" rowspan="1" colwidth="452"> <p data-block-id="mcyrhhz3-j90rlm-345">Delete BGP monitor with with specific ID.</p> </td> </tr> <tr> <td colspan="3" rowspan="1" colwidth="452,452,452"> <div data-type="table-content"> <table width="1326" class="editor360-table fit-width" borderstyle="solid" style="max-width:1326px;width:1326px;"> <colgroup> <col style="width:663px;"> <col style="width:663px;"> </colgroup> <tbody> <tr> <td colspan="1" rowspan="1" colwidth="663" style="border-color:#ffffff;"> <p data-block-id="mcyubn8n-n98zh1-949"><strong>Request body:</strong><br type="inline">None</p> </td> <td colspan="1" rowspan="1" colwidth="663" style="border-color:#ffffff;"> <p data-block-id="mcyuc7x1-3iqagf-953"><strong>Response body:</strong><br type="inline"><a href="/v1/docs/bgp-monitoring-apis#deletemonitorresponse" target="_self" translate="no" rel="noopener"> v202210DeleteMonitorResponse</a></p> </td> </tr> </tbody> </table> </div> <p data-block-id="mcyrhhz3-nzmuq2-346"><br type="inline"><span type="spanMark"><strong>Parameters:</strong></span><strong> </strong> </p> <div data-type="table-content"> <table width="1796" class="editor360-table fit-width" borderstyle="solid" style="max-width:1796px;width:1796px;"> <colgroup> <col style="width:449px;"> <col style="width:449px;"> <col style="width:449px;"> <col style="width:449px;"> </colgroup> <tbody> <tr> <th colspan="1" rowspan="1" colwidth="449"> <p data-block-id="mcyrhhz3-o1i7fv-347">Name</p> </th> <th colspan="1" rowspan="1" colwidth="449"> <p data-block-id="mcyrhhz3-2228o4-348">Description</p> </th> <th colspan="1" rowspan="1" colwidth="449"> <p data-block-id="mcyrhhz3-38qysn-349">Required</p> </th> <th colspan="1" rowspan="1" colwidth="449"> <p data-block-id="mcyrhhz4-v8qitc-350">Type</p> </th> </tr> <tr> <td colspan="1" rowspan="1" colwidth="449"> <p data-block-id="mcyrhhz4-dm9ar9-351">id</p> </td> <td colspan="1" rowspan="1" colwidth="449"> <p data-block-id="mcyrhhz4-yy1oz7-352">ID of the BGP monitor to be deleted</p> </td> <td colspan="1" rowspan="1" colwidth="449"> <p data-block-id="mcyrhhz4-ze9mpl-353">true</p> </td> <td colspan="1" rowspan="1" colwidth="449"> <p data-block-id="mcyrhhz4-igc3s1-354">string</p> </td> </tr> </tbody> </table> </div> </td> </tr> </tbody> </table></div></editor360-custom-block>

### UpdateMonitor

**API: BgpMonitoringAdminService**

| REST Method | REST Endpoint | Description |
| --- | --- | --- |
| PUT | /bgp_monitoring/v202210 /monitors/{id} | Updates configuration of BGP monitor with specific ID and returns updated configuration. |
| \| **Request body**: [v202210UpdateMonitorRequest](/v1/docs/bgp-monitoring-apis#updatemonitorrequest) \| **Response body:** [v202210UpdateMonitorResponse](/v1/docs/bgp-monitoring-apis#updatemonitorresponse) \| \| --- \| --- \| **Parameters**: \| Name \| Description \| Required \| Type \| \| --- \| --- \| --- \| --- \| \| id \| System generated unique identifier \| true \| string \| |
| **Request body**: [v202210UpdateMonitorRequest](/v1/docs/bgp-monitoring-apis#updatemonitorrequest) | **Response body:** [v202210UpdateMonitorResponse](/v1/docs/bgp-monitoring-apis#updatemonitorresponse) |
| Name | Description | Required | Type |
| id | System generated unique identifier | true | string |

### SetMonitorStatus

**API: BgpMonitoringAdminService**

| REST Method | REST Endpoint | Description |
| --- | --- | --- |
| PUT | /bgp_monitoring/v202210 /monitors/{id}/status | Sets administrative status of BGP monitor with specific ID. |
| \| **Request body:** [v202210SetMonitorStatusRequest](/v1/docs/bgp-monitoring-apis#setmonitorstatusrequest) \| **Response body**: [v202210SetMonitorStatusResponse](/v1/docs/bgp-monitoring-apis#setmonitorstatusresponse) \| \| --- \| --- \| **Parameters**: \| Name \| Description \| Required \| Type \| \| --- \| --- \| --- \| --- \| \| id \| ID of the BGP monitor whose status is to be modified \| true \| string \| |
| **Request body:** [v202210SetMonitorStatusRequest](/v1/docs/bgp-monitoring-apis#setmonitorstatusrequest) | **Response body**: [v202210SetMonitorStatusResponse](/v1/docs/bgp-monitoring-apis#setmonitorstatusresponse) |
| Name | Description | Required | Type |
| id | ID of the BGP monitor whose status is to be modified | true | string |

### GetMetricsForTarget

**API: BgpMonitoringDataService**

| REST Method | REST Endpoint | Description |
| --- | --- | --- |
| POST | /bgp_monitoring/v202210 /metrics | Retrieve metric data for single BGP prefix and time interval. |
| \| **Request body**: [v202210GetMetricsForTargetRequest](/v1/docs/bgp-monitoring-apis#getmetricsfortargetrequest) **Parameters**: None \| **Response body**: [v202210GetMetricsForTargetResponse](/v1/docs/bgp-monitoring-apis#getmetricsfortargetresponse) \| \| --- \| --- \| |
| **Request body**: [v202210GetMetricsForTargetRequest](/v1/docs/bgp-monitoring-apis#getmetricsfortargetrequest) **Parameters**: None | **Response body**: [v202210GetMetricsForTargetResponse](/v1/docs/bgp-monitoring-apis#getmetricsfortargetresponse) |

### GetRoutesForTarget

**API: BgpMonitoringDataService**

| REST Method | REST Endpoint | Description |
| --- | --- | --- |
| POST | /bgp_monitoring/v202210 /routes | Retrieve snapshot of route information for single BGP prefix at specific time. |
| \| **Request body**: [v202210GetRoutesForTargetRequest](/v1/docs/bgp-monitoring-apis#getroutesfortargetrequest) **Parameters**: None \| **Response body**: [v202210GetRoutesForTargetResponse](/v1/docs/bgp-monitoring-apis#getroutesfortargetresponse) \| \| --- \| --- \| |
| **Request body**: [v202210GetRoutesForTargetRequest](/v1/docs/bgp-monitoring-apis#getroutesfortargetrequest) **Parameters**: None | **Response body**: [v202210GetRoutesForTargetResponse](/v1/docs/bgp-monitoring-apis#getroutesfortargetresponse) |

## BGP Monitoring Schemas

This API uses the following schemas.

#### 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/bgp-monitoring-apis#protobufany) \| |
| Name | Value |
| code | type: integer format: int32 |
| message | type: string |
| details | type: array items: $ref: [protobufAny](/v1/docs/bgp-monitoring-apis#protobufany) |

#### Afi

| **Schema:** v202104Afi | **Type:** string |
| --- | --- |
| **Attributes**: \| Key \| Value \| \| --- \| --- \| \| enum \| AFI_UNSPECIFIED, AFI_IP4, AFI_IP6 \| \| default \| AFI_UNSPECIFIED \| |
| Key | Value |
| enum | AFI_UNSPECIFIED, AFI_IP4, AFI_IP6 |
| default | AFI_UNSPECIFIED |

#### RpkiStatus

| **Schema:** v202104RpkiStatus | **Type:** string |
| --- | --- |
| **Attributes**: \| Key \| Value \| \| --- \| --- \| \| enum \| RPKI_STATUS_UNSPECIFIED, RPKI_STATUS_NOT_FOUND, RPKI_STATUS_EXPLICIT_INVALID, RPKI_STATUS_INVALID_PREFIX, RPKI_STATUS_INVALID, RPKI_STATUS_VALID, RPKI_STATUS_ERROR \| \| default \| RPKI_STATUS_UNSPECIFIED \| \| description \| - RPKI_STATUS_UNSPECIFIED: Invalid value. - RPKI_STATUS_NOT_FOUND: No matching ROAs found for the prefix. - RPKI_STATUS_EXPLICIT_INVALID: Explicitly invalid prefix matching ROA - RPKI_STATUS_INVALID_PREFIX: Prefix format not suitable for validation - RPKI_STATUS_INVALID: Prefix origin does not match any matching ROA - RPKI_STATUS_VALID: Prefix origin matches an ROA - RPKI_STATUS_ERROR: Error during validation \| |
| Key | Value |
| enum | RPKI_STATUS_UNSPECIFIED, RPKI_STATUS_NOT_FOUND, RPKI_STATUS_EXPLICIT_INVALID, RPKI_STATUS_INVALID_PREFIX, RPKI_STATUS_INVALID, RPKI_STATUS_VALID, RPKI_STATUS_ERROR |
| default | RPKI_STATUS_UNSPECIFIED |
| description | - RPKI_STATUS_UNSPECIFIED: Invalid value. - RPKI_STATUS_NOT_FOUND: No matching ROAs found for the prefix. - RPKI_STATUS_EXPLICIT_INVALID: Explicitly invalid prefix matching ROA - RPKI_STATUS_INVALID_PREFIX: Prefix format not suitable for validation - RPKI_STATUS_INVALID: Prefix origin does not match any matching ROA - RPKI_STATUS_VALID: Prefix origin matches an ROA - RPKI_STATUS_ERROR: Error during validation |

#### Safi

| **Schema:** v202104Safi | **Type:** string |
| --- | --- |
| \| Key \| Value \| \| --- \| --- \| \| enum \| SAFI_UNSPECIFIED, SAFI_UNICAST, SAFI_MPLS, SAFI_L3VPN \| \| default \| SAFI_UNSPECIFIED \| |
| Key | Value |
| enum | SAFI_UNSPECIFIED, SAFI_UNICAST, SAFI_MPLS, SAFI_L3VPN |
| default | SAFI_UNSPECIFIED |

#### VantagePoint

| **Schema:** v202104VantagePoint | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| dataset \| type: string description: Name of the collector data set readOnly: true \| \| collector \| type: string description: Name of the collector readOnly: true \| \| peerAsn \| type: integer format: int64 description: ASN of the peer from which the collector receives BGP data readOnly: true \| \| peerIp \| type: string description: IP address of the peer from which the collector receives BGP data readOnly: true \| |
| Name | Value |
| dataset | type: string description: Name of the collector data set readOnly: true |
| collector | type: string description: Name of the collector readOnly: true |
| peerAsn | type: integer format: int64 description: ASN of the peer from which the collector receives BGP data readOnly: true |
| peerIp | type: string description: IP address of the peer from which the collector receives BGP data readOnly: true |

#### UserInfo

| **Schema:** v202202UserInfo | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| id \| type: string description: Unique ID of the user readOnly: true \| \| email \| type: string description: E-mail address of the user readOnly: true \| \| fullName \| type: string description: Full name of the user readOnly: true \| |
| Name | Value |
| id | type: string description: Unique ID of the user readOnly: true |
| email | type: string description: E-mail address of the user readOnly: true |
| fullName | type: string description: Full name of the user readOnly: true |

#### BgpHealthSettings

| **Schema:** v202210BgpHealthSettings | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| reachabilityWarning \| type: number format: float description: Threshold (in percents) for triggering warning level alert \| \| reachabilityCritical \| type: number format: float description: Threshold (in percents) for triggering critical level alert \| |
| Name | Value |
| reachabilityWarning | type: number format: float description: Threshold (in percents) for triggering warning level alert |
| reachabilityCritical | type: number format: float description: Threshold (in percents) for triggering critical level alert |

#### BgpMetric

| **Schema:** v202210BgpMetric | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| timestamp \| type: string format: date-time description: UTC time of the observation readOnly: true \| \| nlri \| $ref: [v202210Nlri](/v1/docs/bgp-monitoring-apis#nlri) \| \| reachability \| type: number format: float description: Percentage of vantage points reporting the prefix reachable readOnly: true \| \| pathChanges \| type: integer format: int64 description: Number of AS path changes for the prefix across all vantage points in the queried time interval readOnly: true \| |
| Name | Value |
| timestamp | type: string format: date-time description: UTC time of the observation readOnly: true |
| nlri | $ref: [v202210Nlri](/v1/docs/bgp-monitoring-apis#nlri) |
| reachability | type: number format: float description: Percentage of vantage points reporting the prefix reachable readOnly: true |
| pathChanges | type: integer format: int64 description: Number of AS path changes for the prefix across all vantage points in the queried time interval readOnly: true |

#### BgpMetricType

| **Schema:** v202210BgpMetricType | **Type:** string |
| --- | --- |
| **Attributes**: \| Key \| Value \| \| --- \| --- \| \| enum \| BGP_METRIC_TYPE_UNSPECIFIED, BGP_METRIC_TYPE_REACHABILITY, BGP_METRIC_TYPE_PATH_CHANGES \| \| default \| BGP_METRIC_TYPE_UNSPECIFIED \| \| description \| - BGP_METRIC_TYPE_UNSPECIFIED: Invalid value. - BGP_METRIC_TYPE_REACHABILITY: Reachability metric in percents - BGP_METRIC_TYPE_PATH_CHANGES: Number of path changes over time interval \| |
| Key | Value |
| enum | BGP_METRIC_TYPE_UNSPECIFIED, BGP_METRIC_TYPE_REACHABILITY, BGP_METRIC_TYPE_PATH_CHANGES |
| default | BGP_METRIC_TYPE_UNSPECIFIED |
| description | - BGP_METRIC_TYPE_UNSPECIFIED: Invalid value. - BGP_METRIC_TYPE_REACHABILITY: Reachability metric in percents - BGP_METRIC_TYPE_PATH_CHANGES: Number of path changes over time interval |

#### BgpMonitor

| **Schema:** v202210BgpMonitor | **Type:** object |
| --- | --- |
| **Properties (* = required)** \| Name \| Value \| \| --- \| --- \| \| id \| type: string description: System generated unique identifier readOnly: true \| \| name * \| type: string description: User selected name of the monitor \| \| status \| $ref: [v202210BgpMonitorStatus](/v1/docs/bgp-monitoring-apis#bgpmonitorstatus) \| \| settings \| $ref: [v202210BgpMonitorSettings](/v1/docs/bgp-monitoring-apis#bgpmonitorsettings) \| \| cdate \| type: string format: date-time description: Creation timestamp (UTC) readOnly: true \| \| edate \| type: string format: date-time description: Last modification timestamp (UTC) readOnly: true \| \| createdBy \| $ref: [v202202UserInfo](/v1/docs/bgp-monitoring-apis#userinfo) \| \| lastUpdatedBy \| $ref: [v202202UserInfo](/v1/docs/bgp-monitoring-apis#userinfo) \| \| labels \| type: array items: type: string \| |
| Name | Value |
| id | type: string description: System generated unique identifier readOnly: true |
| name * | type: string description: User selected name of the monitor |
| status | $ref: [v202210BgpMonitorStatus](/v1/docs/bgp-monitoring-apis#bgpmonitorstatus) |
| settings | $ref: [v202210BgpMonitorSettings](/v1/docs/bgp-monitoring-apis#bgpmonitorsettings) |
| cdate | type: string format: date-time description: Creation timestamp (UTC) readOnly: true |
| edate | type: string format: date-time description: Last modification timestamp (UTC) readOnly: true |
| createdBy | $ref: [v202202UserInfo](/v1/docs/bgp-monitoring-apis#userinfo) |
| lastUpdatedBy | $ref: [v202202UserInfo](/v1/docs/bgp-monitoring-apis#userinfo) |
| labels | type: array items: type: string |

#### BgpMonitorSettings

| **Schema:** v202210BgpMonitorSettings | **Type:** object |
| --- | --- |
| **Properties (* = required)** \| Name \| Value \| \| --- \| --- \| \| allowedAsns \| type: array items: type: integer format: int64 description: List of ASNs that are valid originators of monitored prefixes \| \| targets * \| type: array items: $ref: [v202210Nlri](/v1/docs/bgp-monitoring-apis#nlri) description: List of prefixes to monitor \| \| checkRpki \| type: boolean description: Enable verification of validity of advertisements of monitored prefixes with respect to RPKI \| \| includeCoveredPrefixes \| type: boolean description: Include advertised subnets (sub-prefixes) of monitored prefixes \| \| healthSettings \| $ref: [v202210BgpHealthSettings](/v1/docs/bgp-monitoring-apis#bgphealthsettings) \| \| notificationChannels \| type: array items: type: string description: List of IDs of notification channels for delivery of alerts \| \| notes \| type: string description: Free form notes documenting the monitor \| \| allowedUpstreams \| type: array items: type: integer format: int64 description: List of ASNs that are expected to propagate monitored prefixes \| |
| Name | Value |
| allowedAsns | type: array items: type: integer format: int64 description: List of ASNs that are valid originators of monitored prefixes |
| targets * | type: array items: $ref: [v202210Nlri](/v1/docs/bgp-monitoring-apis#nlri) description: List of prefixes to monitor |
| checkRpki | type: boolean description: Enable verification of validity of advertisements of monitored prefixes with respect to RPKI |
| includeCoveredPrefixes | type: boolean description: Include advertised subnets (sub-prefixes) of monitored prefixes |
| healthSettings | $ref: [v202210BgpHealthSettings](/v1/docs/bgp-monitoring-apis#bgphealthsettings) |
| notificationChannels | type: array items: type: string description: List of IDs of notification channels for delivery of alerts |
| notes | type: string description: Free form notes documenting the monitor |
| allowedUpstreams | type: array items: type: integer format: int64 description: List of ASNs that are expected to propagate monitored prefixes |

#### BgpMonitorStatus

| **Schema:** v202210BgpMonitorStatus | **Type:** string |
| --- | --- |
| **Attributes**: \| Key \| Value \| \| --- \| --- \| \| enum \| BGP_MONITOR_STATUS_UNSPECIFIED, BGP_MONITOR_STATUS_ACTIVE, BGP_MONITOR_STATUS_PAUSED, BGP_MONITOR_STATUS_DELETED \| \| default \| BGP_MONITOR_STATUS_UNSPECIFIED \| \| description \| • BGP_MONITOR_STATUS_UNSPECIFIED: Invalid value. • BGP_MONITOR_STATUS_ACTIVE: Monitor is active. • BGP_MONITOR_STATUS_PAUSED: Monitor is paused. • BGP_MONITOR_STATUS_DELETED: Monitor is deleted. Not user settable \| |
| Key | Value |
| enum | BGP_MONITOR_STATUS_UNSPECIFIED, BGP_MONITOR_STATUS_ACTIVE, BGP_MONITOR_STATUS_PAUSED, BGP_MONITOR_STATUS_DELETED |
| default | BGP_MONITOR_STATUS_UNSPECIFIED |
| description | • BGP_MONITOR_STATUS_UNSPECIFIED: Invalid value. • BGP_MONITOR_STATUS_ACTIVE: Monitor is active. • BGP_MONITOR_STATUS_PAUSED: Monitor is paused. • BGP_MONITOR_STATUS_DELETED: Monitor is deleted. Not user settable |

#### CreateMonitorRequest

| **Schema:** v202210CreateMonitorRequest | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| monitor \| $ref: [v202210BgpMonitor](/v1/docs/bgp-monitoring-apis#bgpmonitor) \| |
| Name | Value |
| monitor | $ref: [v202210BgpMonitor](/v1/docs/bgp-monitoring-apis#bgpmonitor) |

#### CreateMonitorResponse

| **Schema:** v202210CreateMonitorResponse | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| monitor \| $ref: [v202210BgpMonitor](/v1/docs/bgp-monitoring-apis#bgpmonitor) \| |
| Name | Value |
| monitor | $ref: [v202210BgpMonitor](/v1/docs/bgp-monitoring-apis#bgpmonitor) |

#### DeleteMonitorResponse

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

#### GetMetricsForTargetRequest

| **Schema:** v202210GetMetricsForTargetRequest | **Type:** object |
| --- | --- |
| **Properties (* = required)** \| Name \| Value \| \| --- \| --- \| \| startTime * \| type: string format: date-time description: UTC timestamp of the beginning of queried interval \| \| endTime * \| type: string format: date-time description: UTC timestamp of the end of queried interval \| \| target \| $ref: [v202210Nlri](/v1/docs/bgp-monitoring-apis#nlri) \| \| includeCovered \| type: boolean description: Return metrics for subnets (sub-prefixes) of the target prefix (default: false) \| \| metrics * \| type: array items: $ref: [v202210BgpMetricType](/v1/docs/bgp-monitoring-apis#bgpmetrictype) description: List of one or more BGP metric types to return \| |
| Name | Value |
| startTime * | type: string format: date-time description: UTC timestamp of the beginning of queried interval |
| endTime * | type: string format: date-time description: UTC timestamp of the end of queried interval |
| target | $ref: [v202210Nlri](/v1/docs/bgp-monitoring-apis#nlri) |
| includeCovered | type: boolean description: Return metrics for subnets (sub-prefixes) of the target prefix (default: false) |
| metrics * | type: array items: $ref: [v202210BgpMetricType](/v1/docs/bgp-monitoring-apis#bgpmetrictype) description: List of one or more BGP metric types to return |

#### GetMetricsForTargetResponse

| **Schema:** v202210GetMetricsForTargetResponse | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| metrics \| type: array items: $ref: [v202210BgpMetric](/v1/docs/bgp-monitoring-apis#bgpmetric) description: List of observations (metric values) readOnly: true \| |
| Name | Value |
| metrics | type: array items: $ref: [v202210BgpMetric](/v1/docs/bgp-monitoring-apis#bgpmetric) description: List of observations (metric values) readOnly: true |

#### GetMonitorResponse

| **Schema:** v202210GetMonitorResponse | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| monitor \| $ref: [v202210BgpMonitor](/v1/docs/bgp-monitoring-apis#bgpmonitor) \| |
| Name | Value |
| monitor | $ref: [v202210BgpMonitor](/v1/docs/bgp-monitoring-apis#bgpmonitor) |

#### GetRoutesForTargetRequest

| **Schema:** v202210GetRoutesForTargetRequest | **Type:** object |
| --- | --- |
| **Properties****(* = required)** \| Name \| Value \| \| --- \| --- \| \| time * \| type: string format: date-time description: Reference UTC time for the route information snapshot \| \| target \| $ref: [v202210Nlri](/v1/docs/bgp-monitoring-apis#nlri) \| \| includeCovered \| type: boolean description: Return routes for subnets (sub-prefixes) of the target prefix (default: false) \| \| checkRpki \| type: boolean description: Return information about validity of prefix advertisements with respect to RPKI (default: false) \| |
| Name | Value |
| time * | type: string format: date-time description: Reference UTC time for the route information snapshot |
| target | $ref: [v202210Nlri](/v1/docs/bgp-monitoring-apis#nlri) |
| includeCovered | type: boolean description: Return routes for subnets (sub-prefixes) of the target prefix (default: false) |
| checkRpki | type: boolean description: Return information about validity of prefix advertisements with respect to RPKI (default: false) |

#### GetRoutesForTargetResponse

| **Schema:** v202210GetRoutesForTargetResponse | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| routes \| type: array items: $ref: [v202210RouteInfo](/v1/docs/bgp-monitoring-apis#routeinfo) description: List of routes readOnly: true \| \| asNames \| type: object additionalProperties: type: string description: look-aside map AS names keyed by ASNs readOnly: true \| |
| Name | Value |
| routes | type: array items: $ref: [v202210RouteInfo](/v1/docs/bgp-monitoring-apis#routeinfo) description: List of routes readOnly: true |
| asNames | type: object additionalProperties: type: string description: look-aside map AS names keyed by ASNs readOnly: true |

#### ListMonitorsResponse

| **Schema:** v202210ListMonitorsResponse | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| monitors \| type: array items: $ref: [v202210BgpMonitor](/v1/docs/bgp-monitoring-apis#bgpmonitor) description: List of BGP monitors configured in the account readOnly: true \| \| invalidCount \| type: integer format: int64 description: Number of invalid objects (should be always zero) readOnly: true \| |
| Name | Value |
| monitors | type: array items: $ref: [v202210BgpMonitor](/v1/docs/bgp-monitoring-apis#bgpmonitor) description: List of BGP monitors configured in the account readOnly: true |
| invalidCount | type: integer format: int64 description: Number of invalid objects (should be always zero) readOnly: true |

#### Nlri

| **Schema:** v202210Nlri | **Type:** object |
| --- | --- |
| **Properties (* = required)** \| Name \| Value \| \| --- \| --- \| \| afi \| $ref: [v202104Afi](/v1/docs/bgp-monitoring-apis#afi) \| \| safi \| $ref: [v202104Safi](/v1/docs/bgp-monitoring-apis#safi) \| \| prefix * \| type: string description: Actual prefix data (format depends on AFI) \| |
| Name | Value |
| afi | $ref: [v202104Afi](/v1/docs/bgp-monitoring-apis#afi) |
| safi | $ref: [v202104Safi](/v1/docs/bgp-monitoring-apis#safi) |
| prefix * | type: string description: Actual prefix data (format depends on AFI) |

#### RouteInfo

| **Schema:** v202210RouteInfo | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| nlri \| $ref: [v202210Nlri](/v1/docs/bgp-monitoring-apis#nlri) \| \| originAsn \| type: integer format: int64 description: The autonomous system number originating the NLRI readOnly: true \| \| asPath \| type: array items: type: string description: AS path observed at the vantage point for the NLRI \| \| vantagePoint \| $ref: [v202104VantagePoint](/v1/docs/bgp-monitoring-apis#vantagepoint) \| \| rpkiStatus \| $ref: [v202104RpkiStatus](/v1/docs/bgp-monitoring-apis#rpkistatus) \| \| nexthop \| type: string description: IP address of the first route hop from the vantage point toward the target readOnly: true \| |
| Name | Value |
| nlri | $ref: [v202210Nlri](/v1/docs/bgp-monitoring-apis#nlri) |
| originAsn | type: integer format: int64 description: The autonomous system number originating the NLRI readOnly: true |
| asPath | type: array items: type: string description: AS path observed at the vantage point for the NLRI |
| vantagePoint | $ref: [v202104VantagePoint](/v1/docs/bgp-monitoring-apis#vantagepoint) |
| rpkiStatus | $ref: [v202104RpkiStatus](/v1/docs/bgp-monitoring-apis#rpkistatus) |
| nexthop | type: string description: IP address of the first route hop from the vantage point toward the target readOnly: true |

#### SetMonitorStatusRequest

| **Schema:** v202210SetMonitorStatusRequest | **Type:** object |
| --- | --- |
| **Properties (* = required)** \| Name \| Value \| \| --- \| --- \| \| id * \| type: string description: ID of the BGP monitor whose status is to be modified \| \| status \| $ref: [v202210BgpMonitorStatus](/v1/docs/bgp-monitoring-apis#bgpmonitorstatus) \| |
| Name | Value |
| id * | type: string description: ID of the BGP monitor whose status is to be modified |
| status | $ref: [v202210BgpMonitorStatus](/v1/docs/bgp-monitoring-apis#bgpmonitorstatus) |

#### SetMonitorStatusResponse

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

#### UpdateMonitorRequest

| **Schema:** v202210UpdateMonitorRequest | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| monitor \| $ref: [v202210BgpMonitor](/v1/docs/bgp-monitoring-apis#bgpmonitor) \| |
| Name | Value |
| monitor | $ref: [v202210BgpMonitor](/v1/docs/bgp-monitoring-apis#bgpmonitor) |

#### UpdateMonitorResponse

| **Schema:** v202210UpdateMonitorResponse | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| monitor \| $ref: [v202210BgpMonitor](/v1/docs/bgp-monitoring-apis#bgpmonitor) \| |
| Name | Value |
| monitor | $ref: [v202210BgpMonitor](/v1/docs/bgp-monitoring-apis#bgpmonitor) |
