openapi: 3.0.0
info:
title: AI Advisor AiAdvisorDataService KmiService API
description: '# Overview
Provides programmatic access to AI Advisor.'
version: v202511
contact:
name: Kentik API Engineering
url: https://github.com/kentik/api-schema-public
security:
- email: []
token: []
tags:
- name: KmiService
paths:
/kmi/v202212/insights:
get:
summary: List global KMI insights.
description: Returns list of global KMI insights.
operationId: GetGlobalInsights
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/v202212GetGlobalInsightsResponse'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
parameters:
- name: limit
description: Maximum number of insights to return. Defaults to 100.
in: query
required: false
schema:
type: integer
format: int64
- name: marketId
description: Geo Market identifier (e.g., 'planet$earth'). If omitted, defaults to global market.
in: query
required: false
schema:
type: string
- name: ip
description: IP Address Family ('v4' or 'v6'). Defaults to 'v4'.
in: query
required: false
schema:
type: string
- name: lookback
description: 'Lookback in days. Allowed values: 1, 7, 30. Defaults to 1.'
in: query
required: false
schema:
type: integer
format: int64
- name: types
description: 'Insight types to include. Provide as repeated query params, e.g., types=market_entrance&types=market_exit. Allowed: market_entrance, market_exit, ranking_gain, ranking_loss, start_prefix_origination, stop_prefix_origination, increase_prefix_origination, decrease_prefix_origination, customer_gain, customer_loss, customer_routing_gain, customer_routing_loss, provider_gain, provider_loss, provider_routing_gain, provider_routing_loss.'
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: magnitude
description: Minimum magnitude (severity) threshold, integer 1–5. Defaults to 1.
in: query
required: false
schema:
type: integer
format: int64
tags:
- KmiService
/kmi/v202212/insights/{asn}:
get:
summary: List ASN-specific KMI insights.
description: Returns list of KMI insights for a specific Autonomous System.
operationId: GetASNInsights
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/v202212GetASNInsightsResponse'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
parameters:
- name: asn
description: Autonomous System Number (ASN)
in: path
required: true
schema:
type: string
- name: limit
description: Maximum number of insights to return. Defaults to 100.
in: query
required: false
schema:
type: integer
format: int64
- name: marketId
description: Geo Market identifier (e.g., 'planet$earth'). If omitted, defaults to global market.
in: query
required: false
schema:
type: string
- name: ip
description: IP Address Family ('v4' or 'v6'). Defaults to 'v4'.
in: query
required: false
schema:
type: string
- name: lookback
description: 'Lookback in days. Allowed values: 1, 7, 30. Defaults to 1.'
in: query
required: false
schema:
type: integer
format: int64
- name: types
description: 'Insight types to include. Allowed: market_entrance, market_exit, ranking_gain, ranking_loss, start_prefix_origination, stop_prefix_origination, increase_prefix_origination, decrease_prefix_origination, customer_gain, customer_loss, customer_routing_gain, customer_routing_loss, provider_gain, provider_loss, provider_routing_gain, provider_routing_loss.'
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: magnitude
description: Minimum magnitude (severity) threshold, integer 1–5. Defaults to 1.
in: query
required: false
schema:
type: integer
format: int64
tags:
- KmiService
/kmi/v202212/market/{marketId}/network/{asn}/{type}:
post:
summary: List metadata and list of customers, providers, and peers for an Autonomous System.
description: Returns metadata and list of customers, providers, and peers for an Autonomous System.
operationId: GetASNDetails
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/v202212GetASNDetailsResponse'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
parameters:
- name: marketId
description: Unique Geo Market identifier (as provided by the ListMarkets RPC)
in: path
required: true
schema:
type: string
- name: asn
description: Autonomous System Number (ASN)
in: path
required: true
schema:
type: string
- name: type
description: Type of the requested ASN ('all', 'customers', 'providers', 'peers'). Defaults to 'all'.
in: path
required: true
schema:
type: string
default: all
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/KmiServiceGetASNDetailsBody'
required: true
tags:
- KmiService
/kmi/v202212/market/{marketId}/rankings/{rankType}/ip/{ip}:
post:
summary: List KMI rankings by geo market and rank type.
description: Returns list of KMI rankings.
operationId: GetRankings
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/v202212GetRankingsResponse'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
parameters:
- name: marketId
description: Unique Geo Market identifier (as provided by the ListMarkets RPC)
in: path
required: true
schema:
type: string
- name: rankType
description: Type of the requested ranking ('customer_base', 'customer_base_retail', 'customer_base_wholesome', 'customer_base_backbone', 'customer_growth', 'peering_base'). Defaults to 'customer_base'.
in: path
required: true
schema:
type: string
default: customer_base
- name: ip
description: IP Address Family ('v4' or 'v6') of requested ranking. Defaults to 'v4'.
in: path
required: true
schema:
type: string
default: v4
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/KmiServiceGetRankingsBody'
required: true
tags:
- KmiService
/kmi/v202212/markets:
get:
summary: List all geo markets for KMI.
description: Returns list of geo markets for KMI.
operationId: ListMarkets
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/v202212ListMarketsResponse'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
tags:
- KmiService
components:
schemas:
v202212Ranking:
type: object
properties:
asn:
type: integer
format: int64
description: Autonomous System Number (ASN)
readOnly: true
name:
type: string
description: Name of the Autonomous System
readOnly: true
rank:
type: integer
format: int64
description: Rank of the Autonomous System
readOnly: true
rankChange:
type: integer
format: int64
description: Rank Change of the Autonomous System
readOnly: true
score:
type: integer
format: int64
description: Score of the Autonomous System
readOnly: true
scoreChange:
type: integer
format: int64
description: Score Change of the Autonomous System
readOnly: true
title: Ranking
v202212GetASNDetailsResponse:
type: object
properties:
asnDetails:
$ref: '#/components/schemas/v202212ASNDetails'
title: GetASNDetailsResponse
rpcStatus:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
details:
type: array
items:
$ref: '#/components/schemas/protobufAny'
v202212GetGlobalInsightsResponse:
type: object
properties:
insights:
type: array
items:
$ref: '#/components/schemas/v202212Insight'
description: List of global insights
readOnly: true
title: GetGlobalInsightsResponse
v202212GetRankingsResponse:
type: object
properties:
rankings:
type: array
items:
$ref: '#/components/schemas/v202212Ranking'
description: List of rankings
invalidCount:
type: integer
format: int64
description: Number of invalid entries encountered while collecting data
title: GetRankingsResponse
v202212Peer:
type: object
properties:
asn:
type: integer
format: int64
description: Autonomous System Number (ASN)
readOnly: true
name:
type: string
description: Name of the Autonomous System
readOnly: true
pfxCount:
type: integer
format: int64
description: Prefix Count (number of distinct IP address blocks announced by AS)
readOnly: true
title: Peer
v202212GetASNInsightsResponse:
type: object
properties:
insights:
type: array
items:
$ref: '#/components/schemas/v202212Insight'
description: List of ASN-specific insights
readOnly: true
title: GetASNInsightsResponse
v202212ListMarketsResponse:
type: object
properties:
markets:
type: array
items:
$ref: '#/components/schemas/v202212Market'
description: Markets
readOnly: true
title: ListMarketsResponse
KmiServiceGetRankingsBody:
type: object
properties:
limit:
type: integer
format: int64
description: 'Maximum number of entries returned. (Default: 600).'
title: GetRankingsRequest
KmiServiceGetASNDetailsBody:
type: object
properties:
ip:
type: string
enum:
- v4
- v6
default: v4
description: IP Address Family ('v4' or 'v6'). Defaults to 'v4'.
mutualProvider:
type: string
enum:
- all
- only
- exclude
default: all
description: Filter by mutual provider ('all', 'only', 'exclude'). Defaults to 'all'.
mutualCustomer:
type: string
enum:
- all
- only
- exclude
default: all
description: Filter by mutual customer ('all', 'only', 'exclude'). Defaults to 'all'.
singlehomedCustomer:
type: string
enum:
- all
- only
- exclude
default: all
description: Filter by singlehomed customer ('all', 'only', 'exclude'). Defaults to 'all'.
title: GetASNDetailsRequest
v202212Market:
type: object
properties:
marketId:
type: string
description: Unique Geo Market identifier
readOnly: true
name:
type: string
description: Geo Market Name
readOnly: true
title: Market
protobufAny:
type: object
properties:
'@type':
type: string
additionalProperties: {}
v202212Insight:
type: object
properties:
asn:
type: integer
format: int64
description: Autonomous System Number (ASN)
readOnly: true
name:
type: string
description: Name of the Autonomous System
readOnly: true
type:
type: integer
format: int64
description: Type of insight
readOnly: true
message:
type: string
description: Insight message text
readOnly: true
createdAt:
type: string
description: Timestamp when insight was created
readOnly: true
title: Insight
v202212ASNDetails:
type: object
properties:
asn:
type: integer
format: int64
description: Autonomous System Number (ASN)
readOnly: true
name:
type: string
description: Name of the Autonomous System
readOnly: true
countryName:
type: string
description: Country Name of the Autonomous System
readOnly: true
customers:
type: array
items:
$ref: '#/components/schemas/v202212CustomerProvider'
description: List of Customers
readOnly: true
providers:
type: array
items:
$ref: '#/components/schemas/v202212CustomerProvider'
description: List of Providers
readOnly: true
peers:
type: array
items:
$ref: '#/components/schemas/v202212Peer'
description: List of Peers
readOnly: true
title: ASNDetails
v202212CustomerProvider:
type: object
properties:
asn:
type: integer
format: int64
description: Autonomous System Number (ASN)
readOnly: true
name:
type: string
description: Name of the Autonomous System
readOnly: true
score:
type: integer
format: int64
description: Score of the Autonomous System
readOnly: true
singlehomedCustomer:
type: boolean
description: Singlehomed customer (only one upstream provider to the internet)
readOnly: true
mutualCustomer:
type: boolean
description: Mutual customer
readOnly: true
mutualProvider:
type: boolean
description: Mutual provider
readOnly: true
title: CustomerProvider
securitySchemes:
email:
type: apiKey
name: X-CH-Auth-Email
in: header
token:
type: apiKey
name: X-CH-Auth-API-Token
in: header
externalDocs:
description: General information about Kentik APIs
url: https://kb.kentik.com/v0/Ab09.htm#Ab09-APIs_Overview