--- title: "Flow Tag APIs" slug: "flow-tag-apis" description: "Learn how to use the Flow Tag APIs for managing flow tags securely with Kentik data, including creation, updates, and evaluations." updated: 2026-02-20T15:37:51Z published: 2026-02-20T15:37:51Z canonical: "kb.kentik.com/flow-tag-apis" --- > ## 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. # Flow Tag APIs > [!NOTE] > **Note:** This alpha API is neither supported nor recommended for production use. For additional information, please contact [**Product Support**](/v1/docs/customer-care). This article covers how to get started with the Flow Tag 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 flow tags, start with [**Flow Tags**](/v1/docs/flow-tags). > - Protobuf and OpenAPI specifications for Kentik’s v6 APIs are available in our [**api-schema-public**](https://github.com/kentik/api-schema-public) repository. ## Flow Tag Usage The topics below provide important background information for the use of these APIs. ### Overview The Flow Tag API enables programmatic creation and management of flow tags. - In addition to tag name, at least one other field must be specified to create a tag. - All specified tag fields are ANDed for evaluation. - Except for Tag Name, any field may contain multiple comma-separated values, which will be ORed for evaluation. - A tag will be applied to a flow only when all of the fields specified for that tag are matched. Source and Destination flows are each evaluated independently for matches. - Source and Destination flows are each evaluated independently for matches. - A match results in the addition of the tag name to a delimited list of tags in the src_flow_tags and/or dst_flow_tags column of each specified devices KDE main table. - Tags in a [**KDE table**](/v1/docs/kde-overview) can be searched as part of a query. Tag searches are substring-based. Query results vary depending on how tags are named. - Additional information on the values of individual fields may be found in [**Tag Field Definitions**](/v1/docs/flow-tags#tag-field-definitions) in the Kentik Knowledge Base. ## Flow Tag 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). ### SearchFlowTag **API: FlowTagService** | REST Method | REST Endpoint | Description | | --- | --- | --- | | GET | /flow_tag/v202404alpha1 /tag | Returns configuration of flow tag with search parameters. | | \| **Request body**: None \| **Response body**: [v202404alpha1SearchFlowTagResponse](/v1/docs/flow-tag-apis#searchflowtagresponse) \| \| --- \| --- \| **Parameters**: \| Name \| Description \| Required \| Type \| \| --- \| --- \| --- \| --- \| \| search.limit \| Limit the number of rows to fetch. \| false \| integer \| \| search.offset \| The number rows to skip before returning. \| false \| integer \| \| search.lookupFields \| List of lookup fields. - LOOKUP_FIELD_UNSPECIFIED: Invalid value - LOOKUP_FIELD_VALUE: Lookup by name of tag \| false \| array \| \| search.lookupValues \| List of lookup values. \| false \| array \| \| search.fieldLimit \| Limit the number of record to return for nested fields. \| false \| integer \| | | **Request body**: None | **Response body**: [v202404alpha1SearchFlowTagResponse](/v1/docs/flow-tag-apis#searchflowtagresponse) | | Name | Description | Required | Type | | search.limit | Limit the number of rows to fetch. | false | integer | | search.offset | The number rows to skip before returning. | false | integer | | search.lookupFields | List of lookup fields. - LOOKUP_FIELD_UNSPECIFIED: Invalid value - LOOKUP_FIELD_VALUE: Lookup by name of tag | false | array | | search.lookupValues | List of lookup values. | false | array | | search.fieldLimit | Limit the number of record to return for nested fields. | false | integer | ### CreateFlowTag **API: FlowTagService** | REST Method | REST Endpoint | Description | | --- | --- | --- | | POST | /flow_tag/v202404alpha1 /tag | Create a flow tag configuration. | | \| **Request body**: [v202404alpha1CreateFlowTagRequest](/v1/docs/flow-tag-apis#createflowtagrequest) \| **Response body**: [v202404alpha1CreateFlowTagResponse](/v1/docs/flow-tag-apis#createflowtagresponse) \| \| --- \| --- \| \| **Parameters**: None \| | | **Request body**: [v202404alpha1CreateFlowTagRequest](/v1/docs/flow-tag-apis#createflowtagrequest) | **Response body**: [v202404alpha1CreateFlowTagResponse](/v1/docs/flow-tag-apis#createflowtagresponse) | | **Parameters**: None | ### UpdateFlowTag **API: FlowTagService** | REST Method | REST Endpoint | Description | | --- | --- | --- | | PUT | /flow_tag/v202404alpha1 /tag/{flowTag.id} | Update a flow tag configuration. | | \| **Request body**: [v202404alpha1UpdateFlowTagRequest](/v1/docs/flow-tag-apis#updateflowtagrequest) \| **Response body**: [v202404alpha1UpdateFlowTagResponse](/v1/docs/flow-tag-apis#updateflowtagresponse) \| \| --- \| --- \| **Parameters**: \| Name \| Description \| Required \| Type \| \| --- \| --- \| --- \| --- \| \| flowTag.id \| Unique system assigned identifier of the flow tag \| true \| string \| | | **Request body**: [v202404alpha1UpdateFlowTagRequest](/v1/docs/flow-tag-apis#updateflowtagrequest) | **Response body**: [v202404alpha1UpdateFlowTagResponse](/v1/docs/flow-tag-apis#updateflowtagresponse) | | Name | Description | Required | Type | | flowTag.id | Unique system assigned identifier of the flow tag | true | string | ### GetFlowTag **API: FlowTagService** | REST Method | REST Endpoint | Description | | --- | --- | --- | | GET | /flow_tag/v202404alpha1 /tag/{flowTag.id} | Returns configuration of flow tag with specified ID. | | \| **Request body**: None \| **Response body**: [v202404alpha1GetFlowTagResponse](/v1/docs/flow-tag-apis#getflowtagresponse) \| \| --- \| --- \| **Parameters**: \| Name \| Description \| Required \| Type \| \| --- \| --- \| --- \| --- \| \| flowTag.id \| Undefined. \| true \| string \| | | **Request body**: None | **Response body**: [v202404alpha1GetFlowTagResponse](/v1/docs/flow-tag-apis#getflowtagresponse) | | Name | Description | Required | Type | | flowTag.id | Undefined. | true | string | ### DeleteFlowTag **API: FlowTagService** | REST Method | REST Endpoint | Description | | --- | --- | --- | | DELETE | /flow_tag/v202404alpha1 /tag/{flowTag.id} | Delete a flow tag configuration with id. | | \| **Request body**: None \| **Response body**: [v202404alpha1DeleteFlowTagResponse](/v1/docs/flow-tag-apis#deleteflowtagresponse) \| \| --- \| --- \| **Parameters**: \| Name \| Description \| Required \| Type \| \| --- \| --- \| --- \| --- \| \| flowTag.id \| Undefined. \| true \| string \| | | **Request body**: None | **Response body**: [v202404alpha1DeleteFlowTagResponse](/v1/docs/flow-tag-apis#deleteflowtagresponse) | | Name | Description | Required | Type | | flowTag.id | Undefined. | true | string | ## Flow Tag 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/flow-tag-apis#protobufany) \| | | Name | Value | | code | type: integer format: int32 | | message | type: string | | details | type: array items: $ref: [protobufAny](/v1/docs/flow-tag-apis#protobufany) | #### AddressInfo | **Schema:** v202404alpha1AddressInfo | **Type:** object | | --- | --- | | **Properties:** \| Name \| Value \| \| --- \| --- \| \| addresses \| type: array items: type: string title: List of returning mac or ip address \| \| totalCount \| type: integer format: int32 title: Total number of addresses available \| | | Name | Value | | addresses | type: array items: type: string title: List of returning mac or ip address | | totalCount | type: integer format: int32 title: Total number of addresses available | #### CreateFlowTagRequest | **Schema:** v202404alpha1CreateFlowTagRequest | **Type:** object | | --- | --- | | **Properties**: \| Name \| Value \| \| --- \| --- \| \| flowTag \| $ref: [v202404alpha1FlowTag](/v1/docs/flow-tag-apis#flowtag) \| | | Name | Value | | flowTag | $ref: [v202404alpha1FlowTag](/v1/docs/flow-tag-apis#flowtag) | #### CreateFlowTagResponse | **Schema:** v202404alpha1CreateFlowTagResponse | **Type:** object | | --- | --- | | **Properties**: \| Name \| Value \| \| --- \| --- \| \| flowTag \| $ref: [v202404alpha1FlowTag](/v1/docs/flow-tag-apis#flowtag) \| | | Name | Value | | flowTag | $ref: [v202404alpha1FlowTag](/v1/docs/flow-tag-apis#flowtag) | #### DeleteFlowTagResponse | **Schema:** v202404alpha1DeleteFlowTagResponse | **Type:** object | | --- | --- | | **Properties**: None | #### FlowTag | **Schema:** v202404alpha1FlowTag | **Type:** object | | --- | --- | | **Properties**: \| Name \| Value \| \| --- \| --- \| \| id \| type: string description: Unique system assigned identifier of the flow tag readOnly: true \| \| name \| type: string description: This will appear in places where selecting a tag is necessary readOnly: true \| \| editedBy \| type: string description: User who last edited this tag readOnly: true \| \| createdBy \| type: string description: User who created this tag readOnly: true \| \| cdate \| type: string format: date-time description: Date and time when this tag was created readOnly: true \| \| edate \| type: string format: date-time description: Date and time when this tag was last updated readOnly: true \| \| ip \| $ref: [v202404alpha1AddressInfo](/v1/docs/flow-tag-apis#addressinfo) \| \| port \| type: array items: type: string description: Port number associated with the flow tag \| \| tcpFlags \| type: integer format: int64 description: TCP flags associated with the flow tag \| \| protocol \| type: array items: type: integer format: int64 description: Protocol numbers associated with the flow tag \| \| deviceName \| type: array items: type: string description: Name of the device associated with the flow tag \| \| deviceType \| type: array items: type: string description: Type of the device associated with the flow tag \| \| site \| type: array items: type: string description: Site where the device associated with the flow tag is located \| \| interfaceName \| type: array items: type: string description: Name of the interface associated with the flow tag \| \| asn \| type: array items: type: string description: Autonomous System Number (ASN) associated with the flow tag \| \| lasthopAsName \| type: array items: type: string description: Name of the last hop's Autonomous System (AS) associated with the flow tag \| \| nexthopAsn \| type: array items: type: string description: Autonomous System Number (ASN) of the next hop associated with the flow tag \| \| nexthopAsName \| type: array items: type: string description: Name of the next hop's Autonomous System (AS) associated with the flow tag \| \| nexthop \| type: array items: type: string description: Next hop associated with the flow tag \| \| bgpAspath \| type: array items: type: string description: BGP AS path associated with the flow tag \| \| bgpCommunity \| type: array items: type: string description: BGP community associated with the flow tag \| \| mac \| $ref: [v202404alpha1AddressInfo](/v1/docs/flow-tag-apis#addressinfo) \| \| country \| type: array items: type: string description: Country associated with the flow tag \| \| vlans \| type: array items: type: string description: VLANs associated with the flow tag \| | | Name | Value | | id | type: string description: Unique system assigned identifier of the flow tag readOnly: true | | name | type: string description: This will appear in places where selecting a tag is necessary readOnly: true | | editedBy | type: string description: User who last edited this tag readOnly: true | | createdBy | type: string description: User who created this tag readOnly: true | | cdate | type: string format: date-time description: Date and time when this tag was created readOnly: true | | edate | type: string format: date-time description: Date and time when this tag was last updated readOnly: true | | ip | $ref: [v202404alpha1AddressInfo](/v1/docs/flow-tag-apis#addressinfo) | | port | type: array items: type: string description: Port number associated with the flow tag | | tcpFlags | type: integer format: int64 description: TCP flags associated with the flow tag | | protocol | type: array items: type: integer format: int64 description: Protocol numbers associated with the flow tag | | deviceName | type: array items: type: string description: Name of the device associated with the flow tag | | deviceType | type: array items: type: string description: Type of the device associated with the flow tag | | site | type: array items: type: string description: Site where the device associated with the flow tag is located | | interfaceName | type: array items: type: string description: Name of the interface associated with the flow tag | | asn | type: array items: type: string description: Autonomous System Number (ASN) associated with the flow tag | | lasthopAsName | type: array items: type: string description: Name of the last hop's Autonomous System (AS) associated with the flow tag | | nexthopAsn | type: array items: type: string description: Autonomous System Number (ASN) of the next hop associated with the flow tag | | nexthopAsName | type: array items: type: string description: Name of the next hop's Autonomous System (AS) associated with the flow tag | | nexthop | type: array items: type: string description: Next hop associated with the flow tag | | bgpAspath | type: array items: type: string description: BGP AS path associated with the flow tag | | bgpCommunity | type: array items: type: string description: BGP community associated with the flow tag | | mac | $ref: [v202404alpha1AddressInfo](/v1/docs/flow-tag-apis#addressinfo) | | country | type: array items: type: string description: Country associated with the flow tag | | vlans | type: array items: type: string description: VLANs associated with the flow tag | #### FlowTagSearch | **Schema:** v202404alpha1FlowTagSearch | **Type:** object | | --- | --- | | **Properties**: \| Name \| Value \| \| --- \| --- \| \| limit \| type: integer format: int32 title: Limit the number of rows to fetch \| \| offset \| type: integer format: int32 title: The number rows to skip before returning \| \| lookupFields \| type: array items: $ref: [v202404alpha1LookupField](/v1/docs/flow-tag-apis#lookupfield) title: List of lookup fields \| \| lookupValues \| type: array items: type: string title: List of lookup values \| \| orderBy \| type: array items: $ref: [v202404alpha1OrderField](/v1/docs/flow-tag-apis#orderfield) title: Sort order \| \| fieldLimit \| type: integer format: int32 title: Limit the number of record to return for nested fields \| | | Name | Value | | limit | type: integer format: int32 title: Limit the number of rows to fetch | | offset | type: integer format: int32 title: The number rows to skip before returning | | lookupFields | type: array items: $ref: [v202404alpha1LookupField](/v1/docs/flow-tag-apis#lookupfield) title: List of lookup fields | | lookupValues | type: array items: type: string title: List of lookup values | | orderBy | type: array items: $ref: [v202404alpha1OrderField](/v1/docs/flow-tag-apis#orderfield) title: Sort order | | fieldLimit | type: integer format: int32 title: Limit the number of record to return for nested fields | #### GetFlowTagResponse | **Schema:** v202404alpha1GetFlowTagResponse | **Type:** object | | --- | --- | | **Properties**: \| Name \| Value \| \| --- \| --- \| \| flowTag \| $ref: [v202404alpha1FlowTag](/v1/docs/flow-tag-apis#flowtag) \| | | Name | Value | | flowTag | $ref: [v202404alpha1FlowTag](/v1/docs/flow-tag-apis#flowtag) | #### LookupField | **Schema:** v202404alpha1LookupField | **Type:** string | | --- | --- | | **Attributes**: \| Key \| Value \| \| --- \| --- \| \| enum \| LOOKUP_FIELD_UNSPECIFIED, LOOKUP_FIELD_VALUE \| \| default \| LOOKUP_FIELD_UNSPECIFIED \| \| description \| • LOOKUP_FIELD_UNSPECIFIED: Invalid value • LOOKUP_FIELD_VALUE: Lookup by name of tag \| | | Key | Value | | enum | LOOKUP_FIELD_UNSPECIFIED, LOOKUP_FIELD_VALUE | | default | LOOKUP_FIELD_UNSPECIFIED | | description | • LOOKUP_FIELD_UNSPECIFIED: Invalid value • LOOKUP_FIELD_VALUE: Lookup by name of tag | #### OrderDirection | **Schema:** v202404alpha1OrderDirection | **Type:** string | | --- | --- | | **Attributes**: \| Key \| Value \| \| --- \| --- \| \| enum \| ORDER_DIRECTION_UNSPECIFIED, ORDER_DIRECTION_ASC, ORDER_DIRECTION_DESC \| \| default \| ORDER_DIRECTION_UNSPECIFIED \| \| description \| • ORDER_DIRECTION_UNSPECIFIED: Invalid value • ORDER_DIRECTION_ASC: Ascending sort order • ORDER_DIRECTION_DESC: Descending sort order \| | | Key | Value | | enum | ORDER_DIRECTION_UNSPECIFIED, ORDER_DIRECTION_ASC, ORDER_DIRECTION_DESC | | default | ORDER_DIRECTION_UNSPECIFIED | | description | • ORDER_DIRECTION_UNSPECIFIED: Invalid value • ORDER_DIRECTION_ASC: Ascending sort order • ORDER_DIRECTION_DESC: Descending sort order | #### OrderField | **Schema:** v202404alpha1OrderField | **Type:** object | | --- | --- | | **Properties**: \| Name \| Value \| \| --- \| --- \| \| field \| $ref: [v202404alpha1LookupField](/v1/docs/flow-tag-apis#lookupfield) \| \| direction \| $ref: [v202404alpha1OrderDirection](/v1/docs/flow-tag-apis#orderdirection) \| | | Name | Value | | field | $ref: [v202404alpha1LookupField](/v1/docs/flow-tag-apis#lookupfield) | | direction | $ref: [v202404alpha1OrderDirection](/v1/docs/flow-tag-apis#orderdirection) | #### SearchFlowTagResponse | **Schema:** v202404alpha1SearchFlowTagResponse | **Type:** object | | --- | --- | | **Properties**: \| Name \| Value \| \| --- \| --- \| \| flowTags \| type: array items: $ref: [v202404alpha1FlowTag](/v1/docs/flow-tag-apis#flowtag) \| \| totalCount \| type: integer format: int64 \| \| invalidCount \| type: integer format: int64 \| | | Name | Value | | flowTags | type: array items: $ref: [v202404alpha1FlowTag](/v1/docs/flow-tag-apis#flowtag) | | totalCount | type: integer format: int64 | | invalidCount | type: integer format: int64 | #### UpdateFlowTagRequest | **Schema:** v202404alpha1UpdateFlowTagRequest | **Type:** object | | --- | --- | | **Properties**: \| Name \| Value \| \| --- \| --- \| \| flowTag \| $ref: [v202404alpha1FlowTag](/v1/docs/flow-tag-apis#flowtag) \| | | Name | Value | | flowTag | $ref: [v202404alpha1FlowTag](/v1/docs/flow-tag-apis#flowtag) | #### UpdateFlowTagResponse | **Schema:** v202404alpha1UpdateFlowTagResponse | **Type:** object | | --- | --- | | **Properties**: \| Name \| Value \| \| --- \| --- \| \| flowTag \| $ref: [v202404alpha1FlowTag](/v1/docs/flow-tag-apis#flowtag) \| | | Name | Value | | flowTag | $ref: [v202404alpha1FlowTag](/v1/docs/flow-tag-apis#flowtag) |