---
title: "Site APIs"
slug: "site-apis"
description: "Learn how to utilize Kentik's Site APIs for managing sites and site markets, ensuring secure access to your organization's data."
updated: 2026-02-20T15:49:10Z
published: 2026-02-20T15:49:10Z
---

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

# Site APIs

This article covers how to get started with the Site 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 sites, start with [**About Sites**](/v1/docs/sites#about-sites).
> - Protobuf and OpenAPI specifications for Kentik’s v6 APIs are available in our [**api-schema-public**](https://github.com/kentik/api-schema-public) repository.

## Site Usage

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

### Overview

The Site Configuration API provides programmatic access to configuration of Sites and Site Markets:

- **Site**: A site is a specific user-defined physical location (e.g., a data center at a given address) or logical location at which there is hosting of your devices, services, providers, or partner networks. Information that can be associated with a site includes the classification of IP addresses and the site's logical network topology/architecture.
- **Site Market**: Sites with any common characteristics of your choosing (e.g., all PoPs in a particular region) can be logically grouped into a site market.

Both REST endpoint and gRPC RPCs are provided.

> [!NOTE]
> **Notes:**
> 
> - Once a site is created in Kentik, you can assign one or more devices to the site via the settings for those devices; to do so programmatically you'd use the v5 Device API (see [**Device Create**](/v1/docs/network-assets-apis#device-create)).
> - Sites can also be managed using the legacy REST-only [**Site API**](/v1/docs/site-and-plan-apis), which provides access to a subset of site configuration attributes.

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

### ListSiteMarkets

**API: SiteService**

| REST Method | REST Endpoint | Description |
| --- | --- | --- |
| GET | /site/v202211 /site_markets | Returns list of configured site markets. |
| \| **Request body:** None **Parameters:** None \| **Response body:** [v202211ListSiteMarketsResponse](/v1/docs/site-apis#listsitemarketsresponse) \| \| --- \| --- \| |
| **Request body:** None **Parameters:** None | **Response body:** [v202211ListSiteMarketsResponse](/v1/docs/site-apis#listsitemarketsresponse) |

### CreateSiteMarket

**API: SiteService**

| REST Method | REST Endpoint | Description |
| --- | --- | --- |
| POST | /site/v202211 /site_markets | Create configuration for a new site market. Returns the newly created configuration. |
| \| **Request body**: [v202211CreateSiteMarketRequest](/v1/docs/site-apis#createsitemarketrequest) **Parameters**: None \| **Response body**: [v202211CreateSiteMarketResponse](/v1/docs/site-apis#createsitemarketresponse) \| \| --- \| --- \| |
| **Request body**: [v202211CreateSiteMarketRequest](/v1/docs/site-apis#createsitemarketrequest) **Parameters**: None | **Response body**: [v202211CreateSiteMarketResponse](/v1/docs/site-apis#createsitemarketresponse) |

### GetSiteMarket

**API: SiteService**

| REST Method | REST Endpoint | Description |
| --- | --- | --- |
| GET | /site/v202211 /site_markets/{id} | Returns configuration of a site market specified by ID. |
| \| **Request body:** None \| **Response body**: [v202211GetSiteMarketResponse](/v1/docs/site-apis#getsitemarketresponse) \| \| --- \| --- \| **Parameters**: \| Name \| Description \| Required \| Type \| \| --- \| --- \| --- \| --- \| \| id \| ID of the requested site market \| true \| string \| |
| **Request body:** None | **Response body**: [v202211GetSiteMarketResponse](/v1/docs/site-apis#getsitemarketresponse) |
| Name | Description | Required | Type |
| id | ID of the requested site market | true | string |

### DeleteSiteMarket

**API: SiteService**

| REST Method | REST Endpoint | Description |
| --- | --- | --- |
| DELETE | /site/v202211 /site_markets/{id} | Deletes configuration of a site market with specific ID. |
| \| **Request body**: None \| **Response body**: [v202211DeleteSiteMarketResponse](/v1/docs/site-apis#deletesitemarketresponse) \| \| --- \| --- \| **Parameters**: \| Name \| Description \| Required \| Type \| \| --- \| --- \| --- \| --- \| \| id \| ID of the site market to be deleted \| true \| string \| |
| **Request body**: None | **Response body**: [v202211DeleteSiteMarketResponse](/v1/docs/site-apis#deletesitemarketresponse) |
| Name | Description | Required | Type |
| id | ID of the site market to be deleted | true | string |

### UpdateSiteMarket

**API: SiteService**

| REST Method | REST Endpoint | Description |
| --- | --- | --- |
| PUT | /site/v202211 /site_markets/{id} | Replaces configuration of a site market with attributes in the request. Returns the updated configuration. |
| \| **Request body**: [v202211UpdateSiteMarketRequest](/v1/docs/site-apis#updatesitemarketrequest) \| **Response body**: [v202211UpdateSiteMarketResponse](/v1/docs/site-apis#updatesitemarketresponse) \| \| --- \| --- \| **Parameters**: \| Name \| Description \| Required \| Type \| \| --- \| --- \| --- \| --- \| \| id \| System generated unique identifier \| true \| string \| |
| **Request body**: [v202211UpdateSiteMarketRequest](/v1/docs/site-apis#updatesitemarketrequest) | **Response body**: [v202211UpdateSiteMarketResponse](/v1/docs/site-apis#updatesitemarketresponse) |
| Name | Description | Required | Type |
| id | System generated unique identifier | true | string |

### ListSites

**API: SiteService**

| REST Method | REST Endpoint | Description |
| --- | --- | --- |
| GET | /site/v202211 /sites | Returns list of configured sites. |
| \| **Request body:** None **Parameters:** None \| **Response body:** [v202211ListSitesResponse](/v1/docs/site-apis#listsitesresponse) \| \| --- \| --- \| |
| **Request body:** None **Parameters:** None | **Response body:** [v202211ListSitesResponse](/v1/docs/site-apis#listsitesresponse) |

### CreateSite

**API: SiteService**

| REST Method | REST Endpoint | Description |
| --- | --- | --- |
| POST | /site/v202211 /sites | Create configuration for a new site. Returns the newly created configuration. |
| \| **Request body**: [v202211CreateSiteRequest](/v1/docs/site-apis#createsiterequest) **Parameters**: None \| **Response body**: [v202211CreateSiteResponse](/v1/docs/site-apis#createsiteresponse) \| \| --- \| --- \| |
| **Request body**: [v202211CreateSiteRequest](/v1/docs/site-apis#createsiterequest) **Parameters**: None | **Response body**: [v202211CreateSiteResponse](/v1/docs/site-apis#createsiteresponse) |

### GetSite

**API: SiteService**

| REST Method | REST Endpoint | Description |
| --- | --- | --- |
| GET | /site/v202211 /sites/{id} | Returns configuration of a site specified by ID. |
| \| **Request body**: None \| **Response body**: [v202211GetSiteResponse](/v1/docs/site-apis#getsiteresponse) \| \| --- \| --- \| **Parameters**: \| Name \| Description \| Required \| Type \| \| --- \| --- \| --- \| --- \| \| id \| ID of the requested site \| true \| string \| |
| **Request body**: None | **Response body**: [v202211GetSiteResponse](/v1/docs/site-apis#getsiteresponse) |
| Name | Description | Required | Type |
| id | ID of the requested site | true | string |

### DeleteSite

**API: SiteService**

| REST Method | REST Endpoint | Description |
| --- | --- | --- |
| DELETE | /site/v202211 /sites/{id} | Deletes configuration of a site with specific ID. |
| \| **Request body**: None \| **Response body**: [v202211DeleteSiteResponse](/v1/docs/site-apis#deletesiteresponse) \| \| --- \| --- \| **Parameters**: \| Name \| Description \| Required \| Type \| \| --- \| --- \| --- \| --- \| \| id \| ID of the site to be deleted \| true \| string \| |
| **Request body**: None | **Response body**: [v202211DeleteSiteResponse](/v1/docs/site-apis#deletesiteresponse) |
| Name | Description | Required | Type |
| id | ID of the site to be deleted | true | string |

### UpdateSite

**API: SiteService**

| REST Method | REST Endpoint | Description |
| --- | --- | --- |
| PUT | /site/v202211 /sites/{id} | Replaces configuration of a site with attributes in the request. Returns the updated configuration. |
| \| **Request body**: [v202211UpdateSiteRequest](/v1/docs/site-apis#updatesiterequest) \| **Response body**: [v202211UpdateSiteResponse](/v1/docs/site-apis#updatesiteresponse) \| \| --- \| --- \| **Parameters**: \| Name \| Description \| Required \| Type \| \| --- \| --- \| --- \| --- \| \| id \| System generated unique identifier \| true \| string \| |
| **Request body**: [v202211UpdateSiteRequest](/v1/docs/site-apis#updatesiterequest) | **Response body**: [v202211UpdateSiteResponse](/v1/docs/site-apis#updatesiteresponse) |
| Name | Description | Required | Type |
| id | System generated unique identifier | true | string |

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

#### CreateSiteMarketRequest

| **Schema:** v202211CreateSiteMarketRequest | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| siteMarket \| $ref: [v202211SiteMarket](/v1/docs/site-apis#createsitemarketrequest) \| |
| Name | Value |
| siteMarket | $ref: [v202211SiteMarket](/v1/docs/site-apis#createsitemarketrequest) |

#### CreateSiteMarketResponse

| **Schema:** v202211CreateSiteMarketResponse | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| siteMarket \| $ref: [v202211SiteMarket](/v1/docs/site-apis#createsitemarketresponse) \| |
| Name | Value |
| siteMarket | $ref: [v202211SiteMarket](/v1/docs/site-apis#createsitemarketresponse) |

#### CreateSiteRequest

| **Schema:** v202211CreateSiteRequest | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| site \| $ref: [v202211Site](/v1/docs/site-apis#createsiterequest) \| |
| Name | Value |
| site | $ref: [v202211Site](/v1/docs/site-apis#createsiterequest) |

#### CreateSiteResponse

| **Schema:** v202211CreateSiteResponse | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| site \| $ref: [v202211Site](/v1/docs/site-apis#createsiteresponse) \| |
| Name | Value |
| site | $ref: [v202211Site](/v1/docs/site-apis#createsiteresponse) |

#### DeleteSiteMarketResponse

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

#### DeleteSiteResponse

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

#### GetSiteMarketResponse

| **Schema:** v202211GetSiteMarketResponse | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| siteMarket \| $ref: [v202211SiteMarket](/v1/docs/site-apis#getsitemarketresponse) \| |
| Name | Value |
| siteMarket | $ref: [v202211SiteMarket](/v1/docs/site-apis#getsitemarketresponse) |

#### GetSiteResponse

| **Schema:** v202211GetSiteResponse | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| site \| $ref: [v202211Site](/v1/docs/site-apis#getsiteresponse) \| |
| Name | Value |
| site | $ref: [v202211Site](/v1/docs/site-apis#getsiteresponse) |

#### Layer

| **Schema:** v202211Layer | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| name \| type: string description: Name of the network layer \| \| deviceIds \| type: array items: type: string description: IDs of devices that are deemed to be part of the network layer \| |
| Name | Value |
| name | type: string description: Name of the network layer |
| deviceIds | type: array items: type: string description: IDs of devices that are deemed to be part of the network layer |

#### LayerSet

| **Schema:** v202211LayerSet | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| layers \| type: array items: $ref: [v202211Layer](/v1/docs/site-apis#layerset) description: List of parallel network layers \| |
| Name | Value |
| layers | type: array items: $ref: [v202211Layer](/v1/docs/site-apis#layerset) description: List of parallel network layers |

#### ListSiteMarketsResponse

| **Schema:** v202211ListSiteMarketsResponse | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| siteMarkets \| type: array items: $ref: [v202211SiteMarket](/v1/docs/site-apis#listsitemarketsresponse) description: List of configurations of requested site markets \| \| invalidCount \| type: integer format: int64 description: Number of invalid entries encountered while collecting data \| |
| Name | Value |
| siteMarkets | type: array items: $ref: [v202211SiteMarket](/v1/docs/site-apis#listsitemarketsresponse) description: List of configurations of requested site markets |
| invalidCount | type: integer format: int64 description: Number of invalid entries encountered while collecting data |

#### ListSitesResponse

| **Schema:** v202211ListSitesResponse | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| sites \| type: array items: $ref: [v202211Site](/v1/docs/site-apis#listsitesresponse) description: List of configurations of requested sites \| \| invalidCount \| type: integer format: int64 description: Number of invalid entries encountered while collecting data \| |
| Name | Value |
| sites | type: array items: $ref: [v202211Site](/v1/docs/site-apis#listsitesresponse) description: List of configurations of requested sites |
| invalidCount | type: integer format: int64 description: Number of invalid entries encountered while collecting data |

#### PostalAddress

| **Schema:** v202211PostalAddress | **Type:** object |
| --- | --- |
| **Properties (* = required)** \| Name \| Value \| \| --- \| --- \| \| address * \| type: string description: Street address \| \| city * \| type: string description: City (full name) \| \| region \| type: string description: Geographical region \| \| postalCode \| type: string description: Country specific postal code \| \| country * \| type: string description: Country (full name or country code) \| |
| Name | Value |
| address * | type: string description: Street address |
| city * | type: string description: City (full name) |
| region | type: string description: Geographical region |
| postalCode | type: string description: Country specific postal code |
| country * | type: string description: Country (full name or country code) |

#### Site

| **Schema:** v202211Site | **Type:** object |
| --- | --- |
| **Properties (* = required)** \| Name \| Value \| \| --- \| --- \| \| id \| type: string description: System generated unique identifier readOnly: true \| \| title * \| type: string description: User selected title/name \| \| lat \| type: number format: double description: Latitude (signed decimal degrees) \| \| lon \| type: number format: double description: Longitude (signed decimal degrees) \| \| postalAddress \| $ref: [v202211PostalAddress](/v1/docs/site-apis#postaladdress) \| \| type \| $ref: [v202211SiteType](/v1/docs/site-apis#sitetype) \| \| addressClassification \| $ref: [v202211SiteIpAddressClassification](/v1/docs/site-apis#siteipaddressclassification) \| \| architecture \| type: array items: $ref: [v202211LayerSet](/v1/docs/site-apis#layerset) description: Logical network topology/architecture \| \| siteMarket \| type: string description: Name of the Site Market this sire belongs to \| |
| Name | Value |
| id | type: string description: System generated unique identifier readOnly: true |
| title * | type: string description: User selected title/name |
| lat | type: number format: double description: Latitude (signed decimal degrees) |
| lon | type: number format: double description: Longitude (signed decimal degrees) |
| postalAddress | $ref: [v202211PostalAddress](/v1/docs/site-apis#postaladdress) |
| type | $ref: [v202211SiteType](/v1/docs/site-apis#sitetype) |
| addressClassification | $ref: [v202211SiteIpAddressClassification](/v1/docs/site-apis#siteipaddressclassification) |
| architecture | type: array items: $ref: [v202211LayerSet](/v1/docs/site-apis#layerset) description: Logical network topology/architecture |
| siteMarket | type: string description: Name of the Site Market this sire belongs to |

#### SiteIpAddressClassification

| **Schema:** v202211SiteIpAddressClassification | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| infrastructureNetworks \| type: array items: type: string description List of IP address prefixes (in standard CIDR notation) used in infrastructure networks \| \| userAccessNetworks \| type: array items: type: string description: List of IP address prefixes (in standard CIDR notation) used in access networks \| \| otherNetworks \| type: array items: type: string description: List of IP address prefixes (in standard CIDR notation) used in other networks \| |
| Name | Value |
| infrastructureNetworks | type: array items: type: string description List of IP address prefixes (in standard CIDR notation) used in infrastructure networks |
| userAccessNetworks | type: array items: type: string description: List of IP address prefixes (in standard CIDR notation) used in access networks |
| otherNetworks | type: array items: type: string description: List of IP address prefixes (in standard CIDR notation) used in other networks |

#### SiteMarket

| **Schema:** v202211SiteMarket | **Type:** object |
| --- | --- |
| **Properties (* = required)** \| Name \| Value \| \| --- \| --- \| \| id \| type: string description: System generated unique identifier readOnly: true \| \| name * \| type: string description: User selected unique name \| \| description \| type: string description: Free-form description \| \| numberOfSites \| type: integer format: int64 description: Number of sites in this market readOnly: true \| \| 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 \| |
| Name | Value |
| id | type: string description: System generated unique identifier readOnly: true |
| name * | type: string description: User selected unique name |
| description | type: string description: Free-form description |
| numberOfSites | type: integer format: int64 description: Number of sites in this market readOnly: true |
| 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 |

#### SiteType

| **Schema:** v202211SiteType | **Type:** string |
| --- | --- |
| **Attributes**: \| Key \| Value \| \| --- \| --- \| \| enum \| SITE_TYPE_UNSPECIFIED, SITE_TYPE_DATA_CENTER, SITE_TYPE_CLOUD, SITE_TYPE_BRANCH, SITE_TYPE_CONNECTIVITY, SITE_TYPE_CUSTOMER, SITE_TYPE_OTHER \| \| default \| SITE_TYPE_UNSPECIFIED \| \| description \| • SITE_TYPE_UNSPECIFIED: Invalid value. • SITE_TYPE_DATA_CENTER: Data center site type. • SITE_TYPE_CLOUD: Cloud site type. • SITE_TYPE_BRANCH: Branch office site type. • SITE_TYPE_CONNECTIVITY: Connectivity/PoP site type. • SITE_TYPE_CUSTOMER: Customer/partner site type. • SITE_TYPE_OTHER: Other site type. \| |
| Key | Value |
| enum | SITE_TYPE_UNSPECIFIED, SITE_TYPE_DATA_CENTER, SITE_TYPE_CLOUD, SITE_TYPE_BRANCH, SITE_TYPE_CONNECTIVITY, SITE_TYPE_CUSTOMER, SITE_TYPE_OTHER |
| default | SITE_TYPE_UNSPECIFIED |
| description | • SITE_TYPE_UNSPECIFIED: Invalid value. • SITE_TYPE_DATA_CENTER: Data center site type. • SITE_TYPE_CLOUD: Cloud site type. • SITE_TYPE_BRANCH: Branch office site type. • SITE_TYPE_CONNECTIVITY: Connectivity/PoP site type. • SITE_TYPE_CUSTOMER: Customer/partner site type. • SITE_TYPE_OTHER: Other site type. |

#### UpdateSiteMarketRequest

| **Schema:** v202211UpdateSiteMarketRequest | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| siteMarket \| $ref: [v202211SiteMarket](/v1/docs/site-apis#updatesitemarketrequest) \| |
| Name | Value |
| siteMarket | $ref: [v202211SiteMarket](/v1/docs/site-apis#updatesitemarketrequest) |

#### UpdateSiteMarketResponse

| **Schema:** v202211UpdateSiteMarketResponse | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| siteMarket \| $ref: [v202211SiteMarket](/v1/docs/site-apis#updatesitemarketresponse) \| |
| Name | Value |
| siteMarket | $ref: [v202211SiteMarket](/v1/docs/site-apis#updatesitemarketresponse) |

#### UpdateSiteRequest

| **Schema:** v202211UpdateSiteRequest | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| site \| $ref: [v202211Site](/v1/docs/site-apis#updatesiterequest) \| |
| Name | Value |
| site | $ref: [v202211Site](/v1/docs/site-apis#updatesiterequest) |

#### UpdateSiteResponse

| **Schema:** v202211UpdateSiteResponse | **Type:** object |
| --- | --- |
| **Properties**: \| Name \| Value \| \| --- \| --- \| \| site \| $ref: [v202211Site](/v1/docs/site-apis#updatesiteresponse) \| |
| Name | Value |
| site | $ref: [v202211Site](/v1/docs/site-apis#updatesiteresponse) |
