Kentik My Kentik Portal (MKP) API (v6)
Manage multi-tenant My Kentik Portal tenants for white-label / service-provider portals.
Manage multi-tenant My Kentik Portal tenants for white-label / service-provider portals.
{
"openapi": "3.0.0",
"info": {
"title": "MKP API",
"description": "# Overview\nMy Kentik Portal API enables programmatic access to tenants and package templates.\n| Endpoint | Purpose |\n|-----------|---------|\n| TenantService | CRUD operations for MKP tenants. |\n| PackageService | CRUD operations for MKP templates. |\n\nBoth REST endpoint and gRPC RPCs are provided.\n\n\n # Tenant Attributes and Settings\n| Attribute | Access | Purpose |\n|-----------|--------|---------|\n| id | RO | System-generated unique identifier of the tenant |\n| company_id | RO | System-generated unique identifier of the company |\n| name | RW | User specified name for the tenant |\n| description | RW | User specified description for the tenant |\n| type | RO | subtenant |\n| enabled | RW | User specified tenant active status |\n| cdate | RO | Creation timestamp |\n| edate | RO | Last-modification timestamp |\n| alerts | RO | Alert policy configurations |\n| assets | RW | dashboard, views, and templates associate with tenant |\n| asn | RW | ASN data source |\n| cidr | RW | CIDR data source |\n| custom_dimensions | RW | Custom dimension data source |\n| devices | RW | Devices data source |\n| filters | RW | Data source filters |\n| interface_name | RW | Interface source filters |\n| snmp_alias | RW | SNMP source filters |\n| packages | RO | Package templates use by the tenant |\n| users | RO | Users assign to the tenant |\n| template_id | WO | Update tenant's packages setting with package/template id |\n\n\n # Package Attributes and Settings\n| Attribute | Access | Purpose |\n|-----------|--------|---------|\n| id | RO | System-generated unique identifier of the package |\n| company_id | RO | System-generated unique identifier of the company |\n| name | RW | User specified name for the package template |\n| description | RW | User specified description for the package template |\n| icon | RO | User specified icon |\n| color | RW | User specified color of icon |\n| alerts | RO | Alert policy configurations |\n| assets | RW | dashboard, views, and templates associate with tenant |\n| is_default | RW | Default package template to include for new tenant |\n| tenants | RO | Tenants using this package template |\n\n\n",
"version": "v202407",
"contact": {
"name": "Kentik API Engineering",
"url": "https://github.com/kentik/api-schema-public"
}
},
"tags": [
{
"name": "PackageService"
},
{
"name": "TenantService"
},
{
"name": "TenantUserService"
}
],
"paths": {
"/mkp/v202407/packages": {
"get": {
"summary": "List MKP packages.",
"description": "Returns a list of MKP packages.",
"operationId": "PackageList",
"responses": {
"200": {
"description": "A successful response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/v202407ListPackageResponse"
}
}
}
},
"default": {
"description": "An unexpected error response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/rpcStatus"
}
}
}
}
},
"tags": [
"PackageService"
]
},
"post": {
"summary": "Create a package template.",
"description": "Create package from request. returns created package.",
"operationId": "PackageCreate",
"responses": {
"200": {
"description": "A successful response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/v202407CreatePackageResponse"
}
}
}
},
"default": {
"description": "An unexpected error response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/rpcStatus"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/v202407CreatePackageRequest"
}
}
},
"required": true
},
"tags": [
"PackageService"
]
}
},
"/mkp/v202407/packages/{id}": {
"get": {
"summary": "Get information aboout a package.",
"description": "Returns information about package specified with ID.",
"operationId": "PackageGet",
"responses": {
"200": {
"description": "A successful response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/v202407GetPackageResponse"
}
}
}
},
"default": {
"description": "An unexpected error response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/rpcStatus"
}
}
}
}
},
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"PackageService"
]
},
"delete": {
"summary": "Delete a package.",
"description": "Deletes the package specified with id.",
"operationId": "PackageDelete",
"responses": {
"200": {
"description": "A successful response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/v202407DeletePackageResponse"
}
}
}
},
"default": {
"description": "An unexpected error response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/rpcStatus"
}
}
}
}
},
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"PackageService"
]
},
"put": {
"summary": "Update a package.",
"description": "Update package attributes specified with id.",
"operationId": "PackageUpdate",
"responses": {
"200": {
"description": "A successful response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/v202407UpdatePackageResponse"
}
}
}
},
"default": {
"description": "An unexpected error response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/rpcStatus"
}
}
}
}
},
"parameters": [
{
"name": "id",
"description": "Unique system assigned identifier of the package",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PackageServiceUpdatePackageBody"
}
}
},
"required": true
},
"tags": [
"PackageService"
]
}
},
"/mkp/v202407/tenants": {
"get": {
"summary": "List MKP tenants.",
"description": "Returns a list of MKP tenants.",
"operationId": "TenantList",
"responses": {
"200": {
"description": "A successful response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/v202407ListTenantResponse"
}
}
}
},
"default": {
"description": "An unexpected error response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/rpcStatus"
}
}
}
}
},
"tags": [
"TenantService"
]
},
"post": {
"summary": "Create a tenant.",
"description": "Create tenant from request. returns created tenant.",
"operationId": "TenantCreate",
"responses": {
"200": {
"description": "A successful response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/v202407CreateTenantResponse"
}
}
}
},
"default": {
"description": "An unexpected error response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/rpcStatus"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/v202407CreateTenantRequest"
}
}
},
"required": true
},
"tags": [
"TenantService"
]
}
},
"/mkp/v202407/tenants/{id}": {
"get": {
"summary": "Get information aboout a tenant.",
"description": "Returns information about package specified with ID.",
"operationId": "TenantGet",
"responses": {
"200": {
"description": "A successful response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/v202407GetTenantResponse"
}
}
}
},
"default": {
"description": "An unexpected error response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/rpcStatus"
}
}
}
}
},
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"TenantService"
]
},
"delete": {
"summary": "Delete a tenant.",
"description": "Deletes the tenant specified with id.",
"operationId": "TenantDelete",
"responses": {
"200": {
"description": "A successful response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/v202407DeleteTenantResponse"
}
}
}
},
"default": {
"description": "An unexpected error response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/rpcStatus"
}
}
}
}
},
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"TenantService"
]
},
"put": {
"summary": "Update a tenant.",
"description": "Update tenant attributes specified with id.",
"operationId": "TenantUpdate",
"responses": {
"200": {
"description": "A successful response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/v202407UpdateTenantResponse"
}
}
}
},
"default": {
"description": "An unexpected error response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/rpcStatus"
}
}
}
}
},
"parameters": [
{
"name": "id",
"description": "Unique system assigned identifier of the tenant",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TenantServiceUpdateTenantBody"
}
}
},
"required": true
},
"tags": [
"TenantService"
]
}
},
"/mkp/v202407/tenants/{tenantId}/users": {
"get": {
"summary": "List users for a tenant.",
"description": "Returns a list of users associated with the specified tenant.",
"operationId": "TenantUserList",
"responses": {
"200": {
"description": "A successful response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/v202407ListTenantUserResponse"
}
}
}
},
"default": {
"description": "An unexpected error response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/rpcStatus"
}
}
}
}
},
"parameters": [
{
"name": "tenantId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"TenantUserService"
]
},
"post": {
"summary": "Add a user to a tenant.",
"description": "Creates a user association with the specified tenant.",
"operationId": "TenantUserCreate",
"responses": {
"200": {
"description": "A successful response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/v202407CreateTenantUserResponse"
}
}
}
},
"default": {
"description": "An unexpected error response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/rpcStatus"
}
}
}
}
},
"parameters": [
{
"name": "tenantId",
"description": "Unique identifier of the tenant the user belongs to",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TenantUserServiceCreateTenantUserBody"
}
}
},
"required": true
},
"tags": [
"TenantUserService"
]
}
},
"/mkp/v202407/tenants/{tenantId}/users/{id}": {
"delete": {
"summary": "Remove a user from a tenant.",
"description": "Deletes the user association with the specified tenant.",
"operationId": "TenantUserDelete",
"responses": {
"200": {
"description": "A successful response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/v202407DeleteTenantUserResponse"
}
}
}
},
"default": {
"description": "An unexpected error response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/rpcStatus"
}
}
}
}
},
"parameters": [
{
"name": "tenantId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"TenantUserService"
]
},
"put": {
"summary": "Update a tenant user.",
"description": "Updates the user associated with the specified tenant and user ID.",
"operationId": "TenantUserUpdate",
"responses": {
"200": {
"description": "A successful response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/v202407UpdateTenantUserResponse"
}
}
}
},
"default": {
"description": "An unexpected error response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/rpcStatus"
}
}
}
}
},
"parameters": [
{
"name": "tenantId",
"description": "Unique identifier of the tenant the user belongs to",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"description": "Unique system assigned identifier of the user",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TenantUserServiceUpdateTenantUserBody"
}
}
},
"required": true
},
"tags": [
"TenantUserService"
]
}
}
},
"security": [
{
"email": [],
"token": []
}
],
"externalDocs": {
"description": "More about Kentik APIs",
"url": "https://docs.kentik.com/api"
},
"components": {
"securitySchemes": {
"email": {
"type": "apiKey",
"name": "X-CH-Auth-Email",
"in": "header"
},
"token": {
"type": "apiKey",
"name": "X-CH-Auth-API-Token",
"in": "header"
}
},
"schemas": {
"AssetReport": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string"
}
}
},
"PackageServiceUpdatePackageBody": {
"type": "object",
"properties": {
"package": {
"type": "object",
"properties": {
"companyId": {
"type": "string",
"description": "Company id of the associated package",
"readOnly": true
},
"name": {
"type": "string",
"description": "Name of package template",
"readOnly": true
},
"description": {
"type": "string",
"description": "Description of package template",
"readOnly": true
},
"icon": {
"type": "string",
"description": "Icon to display",
"readOnly": true
},
"color": {
"type": "string",
"description": "Color of Icon",
"readOnly": true
},
"alerts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/v202407Alert"
},
"description": "Alert thresholds and policies",
"readOnly": true
},
"assets": {
"$ref": "#/components/schemas/v202407Asset"
},
"isDefault": {
"type": "boolean",
"description": "Is default template",
"readOnly": true
},
"tenants": {
"type": "array",
"items": {
"$ref": "#/components/schemas/v202407TenantLink"
},
"description": "Tenant link information",
"readOnly": true
}
},
"title": "Package"
}
},
"title": "UpdatePackageRequest"
},
"TenantServiceUpdateTenantBody": {
"type": "object",
"properties": {
"tenant": {
"type": "object",
"properties": {
"companyId": {
"type": "string",
"description": "Company id of the associated package",
"readOnly": true
},
"name": {
"type": "string",
"description": "Name of tenant",
"readOnly": true
},
"description": {
"type": "string",
"description": "Description of tenant",
"readOnly": true
},
"type": {
"type": "string",
"description": "Subtenant",
"readOnly": true
},
"enabled": {
"type": "boolean",
"description": "Is tenant actively enable",
"readOnly": true
},
"alerts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/v202407Alert"
},
"description": "Alert thresholds and policies",
"title": "config object",
"readOnly": true
},
"assets": {
"$ref": "#/components/schemas/v202407Asset"
},
"asn": {
"type": "string",
"description": "ASN data source.",
"readOnly": true
},
"cidr": {
"type": "string",
"description": "CIDR data source.",
"readOnly": true
},
"customDimensions": {
# --- truncated at 32 KB (65 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kentik/refs/heads/main/openapi/kentik-mkp-openapi.json