Kentik Sites API (v6)

Model physical/logical sites and their addresses for network topology and grouping.

OpenAPI Specification

kentik-site-openapi.json Raw ↑
{
    "openapi": "3.0.0",
    "info": {
        "title": "Site Configuration API",
        "description": "# Overview\nThe Site Configuration API provides programmatic access to configuration of Sites and Site Markets:\n\n* **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.\n* **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.\n\nBoth REST endpoint and gRPC RPCs are provided.\n\n***Notes:*** \n    - 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](https://kb.kentik.com/v0/Ec05.htm#Ec05-Device_Create)).\n    - Sites can also be managed using the legacy REST-only [Site API](https://kb.kentik.com/v0/Ec10.htm#Ec10-Site_API), which provides access to a subset of site configuration attributes.",
        "version": "v202509",
        "contact": {
            "name": "Kentik API Engineering",
            "url": "https://github.com/kentik/api-schema-public"
        }
    },
    "tags": [
        {
            "name": "SiteService"
        }
    ],
    "paths": {
        "/site/v202509/site_markets": {
            "get": {
                "summary": "List all site markets.",
                "description": "Returns list of configured site markets.",
                "operationId": "ListSiteMarkets",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v202509ListSiteMarketsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "tags": [
                    "SiteService"
                ]
            },
            "post": {
                "summary": "Configure a new site market.",
                "description": "Create configuration for a new site market. Returns the newly created configuration.",
                "operationId": "CreateSiteMarket",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v202509CreateSiteMarketResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v202509CreateSiteMarketRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "SiteService"
                ]
            }
        },
        "/site/v202509/site_markets/{id}": {
            "get": {
                "summary": "Retrieve configuration of a site market.",
                "description": "Returns configuration of a site market specified by ID.",
                "operationId": "GetSiteMarket",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v202509GetSiteMarketResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "description": "ID of the requested site market",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "SiteService"
                ]
            },
            "delete": {
                "summary": "Delete configuration of a site market.",
                "description": "Deletes configuration of a site market with specific ID.",
                "operationId": "DeleteSiteMarket",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v202509DeleteSiteMarketResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "description": "ID of the site market to be deleted",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "SiteService"
                ]
            },
            "put": {
                "summary": "Updates configuration of a site market.",
                "description": "Replaces configuration of a site market with attributes in the request. Returns the updated configuration.",
                "operationId": "UpdateSiteMarket",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v202509UpdateSiteMarketResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "description": "System generated unique identifier",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SiteServiceUpdateSiteMarketBody"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "SiteService"
                ]
            }
        },
        "/site/v202509/sites": {
            "get": {
                "summary": "List all sites.",
                "description": "Returns list of configured sites.",
                "operationId": "ListSites",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v202509ListSitesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "tags": [
                    "SiteService"
                ]
            },
            "post": {
                "summary": "Configure a new site.",
                "description": "Create configuration for a new site. Returns the newly created configuration.",
                "operationId": "CreateSite",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v202509CreateSiteResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v202509CreateSiteRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "SiteService"
                ]
            }
        },
        "/site/v202509/sites/{id}": {
            "get": {
                "summary": "Retrieve configuration of a site.",
                "description": "Returns configuration of a site specified by ID.",
                "operationId": "GetSite",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v202509GetSiteResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "description": "ID of the requested site",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "SiteService"
                ]
            },
            "delete": {
                "summary": "Delete configuration of a site.",
                "description": "Deletes configuration of a site with specific ID.",
                "operationId": "DeleteSite",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v202509DeleteSiteResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "description": "ID of the site to be deleted",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "SiteService"
                ]
            },
            "put": {
                "summary": "Updates configuration of a site.",
                "description": "Replaces configuration of a site with attributes in the request. Returns the updated configuration.",
                "operationId": "UpdateSite",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v202509UpdateSiteResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "description": "System generated unique identifier",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SiteServiceUpdateSiteBody"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "SiteService"
                ]
            }
        }
    },
    "security": [
        {
            "email": [],
            "token": []
        }
    ],
    "externalDocs": {
        "description": "General information about Kentik APIs",
        "url": "https://kb.kentik.com/v0/Ab09.htm#Ab09-APIs_Overview"
    },
    "components": {
        "securitySchemes": {
            "email": {
                "type": "apiKey",
                "name": "X-CH-Auth-Email",
                "in": "header"
            },
            "token": {
                "type": "apiKey",
                "name": "X-CH-Auth-API-Token",
                "in": "header"
            }
        },
        "schemas": {
            "SiteServiceUpdateSiteBody": {
                "type": "object",
                "properties": {
                    "site": {
                        "type": "object",
                        "properties": {
                            "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": "#/components/schemas/v202509PostalAddress"
                            },
                            "type": {
                                "$ref": "#/components/schemas/v202509SiteType"
                            },
                            "addressClassification": {
                                "$ref": "#/components/schemas/v202509SiteIpAddressClassification"
                            },
                            "architecture": {
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/v202509LayerSet"
                                },
                                "description": "Logical network topology/architecture"
                            },
                            "siteMarket": {
                                "$ref": "#/components/schemas/v202509SiteMarket"
                            },
                            "peeringdbSiteMapping": {
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/v202509PeeringDBSiteMapping"
                                },
                                "description": "List of PeeringDB site mappings associated with this site"
                            }
                        },
                        "title": "Site"
                    }
                },
                "title": "UpdateSiteRequest",
                "required": [
                    "title",
                    "type",
                    "site"
                ]
            },
            "SiteServiceUpdateSiteMarketBody": {
                "type": "object",
                "properties": {
                    "siteMarket": {
                        "type": "object",
                        "properties": {
                            "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
                            }
                        },
                        "title": "SiteMarket"
                    }
                },
                "title": "UpdateSiteMarketRequest",
                "required": [
                    "name",
                    "siteMarket"
                ]
            },
            "protobufAny": {
                "type": "object",
                "properties": {
                    "@type": {
                        "type": "string"
                    }
                },
                "additionalProperties": {}
            },
            "rpcStatus": {
                "type": "object",
                "properties": {
                    "code": {
                        "type": "integer",
                        "format": "int32"
                    },
                    "message": {
                        "type": "string"
                    },
                    "details": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/protobufAny"
                        }
                    }
                }
            },
            "v202509CreateSiteMarketRequest": {
                "type": "object",
                "properties": {
                    "siteMarket": {
                        "$ref": "#/components/schemas/v202509SiteMarket"
                    }
                },
                "title": "CreateSiteMarketRequest",
                "required": [
                    "siteMarket"
                ]
            },
            "v202509CreateSiteMarketResponse": {
                "type": "object",
                "properties": {
                    "siteMarket": {
                        "$ref": "#/components/schemas/v202509SiteMarket"
                    }
                },
                "title": "CreateSiteMarketResponse"
            },
            "v202509CreateSiteRequest": {
                "type": "object",
                "properties": {
                    "site": {
                        "$ref": "#/components/schemas/v202509Site"
                    }
                },
                "title": "CreateSiteRequest",
                "required": [
                    "site"
                ]
            },
            "v202509CreateSiteResponse": {
                "type": "object",
                "properties": {
                    "site": {
                        "$ref": "#/components/schemas/v202509Site"
                    }
                },
                "title": "CreateSiteResponse"
            },
            "v202509DeleteSiteMarketResponse": {
                "type": "object",
                "title": "DeleteSiteMarketResponse"
            },
            "v202509DeleteSiteResponse": {
                "type": "object",
                "title": "DeleteSiteResponse"
            },
            "v202509GetSiteMarketResponse": {
                "type": "object",
                "properties": {
                    "siteMarket": {
                        "$ref": "#/components/schemas/v202509SiteMarket"
                    }
                },
                "title": "GetSiteMarketResponse"
            },
            "v202509GetSiteResponse": {
                "type": "object",
                "properties": {
                    "site": {
                        "$ref": "#/components/schemas/v202509Site"
                    }
                },
                "title": "GetSiteResponse"
            },
            "v202509Layer": {
                "type": "object",
                "properties": {
                    "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"
                    }
                },
                "title": "Layer"
            },
            "v202509LayerSet": {
                "type": "object",
                "properties": {
                    "layers": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v202509Layer"
                        },
                        "description": "List of parallel network layers"
                    }
                },
                "title": "LayerSet"
            },
            "v202509ListSiteMarketsResponse": {
                "type": "object",
                "properties": {
                    "siteMarkets": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v202509SiteMarket"
                        },
                        "description": "List of configurations of requested site markets"
                    },
                    "invalidCount": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Number of invalid entries encountered while collecting data"
                    }
                },
                "title": "ListSiteMarketsResponse"
            },
            "v202509ListSitesResponse": {
                "type": "object",
                "properties": {
                    "sites": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v202509Site"
                        },
                        "description": "List of configurations of requested sites"
                    },
                    "invalidCount": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Number of invalid entries encountered while collecting data"
                    }
                },
                "title": "ListSitesResponse"
            },
            "v202509PeeringDBSiteMapping": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "description": "Peering DB id"
                    },
                    "siteId": {
                        "type": "string",
                        "description": "Peering DB site id"
                    },
                    "peeringdbFacId": {
                        "type": "string",
                        "description": "Peering DB facility id"
                    },
                    "edate": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Last modification timestamp (UTC)",
                        "readOnly": true
                    },
                    "cdate": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Creation timestamp (UTC)",
                        "readOnly": true
                    },
                    "companyId": {
                        "type": "string",
                        "description": "Company ID"
                    }
                },
                "required": [
                    "id",
                    "siteId",
                    "peeringdbFacId"
                ]
            },
            "v202509PostalAddress": {
                "type": "object",
                "properties": {
                    "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)"
                    }
                },
                "title": "PostalAddress",
                "required": [
                    "address",
                    "city",
                    "country"
                ]
            },
            "v202509Site": {
                "type": "object",
                "properties": {
                    "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": "#/components/schemas/v202509PostalAddress"
                    },
                    "type": {
                        "$ref": "#/components/schemas/v202509SiteType"
                    },
                    "addressClassification": {
                        "$ref": "#/components/schemas/v202509SiteIpAddressClassification"
                    },
                    "architecture": {
     

# --- truncated at 32 KB (37 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kentik/refs/heads/main/openapi/kentik-site-openapi.json