Skip to main content
Back to API List Retrieves metrics data related to intent detection and task performance, including Intents Found, Intents Not Found, Unhandled Utterances, Failed Tasks, Successful Tasks, and Performance Logs.
FieldValue
MethodPOST
Endpointhttps://{{host}}/api/public/bot/{{BotID}}/getAnalytics
Content Typeapplication/json
Authorizationauth: {{JWT}} See How to generate the JWT Token.
API ScopeApp Builder: Metrics; Admin Console: Not Applicable

Path Parameters

ParameterRequiredDescription
hostRequiredEnvironment URL, for example, https://platform.kore.ai.
BotIDRequiredBot ID or Stream ID. Access it from the General Settings page of the bot.

Sample Request

The following sample request shows how to retrieve unhandled utterance analytics data with specific filters. You can modify the type and filters parameters to retrieve different types of analytics data as needed.
curl --location --request POST 'https://{{host}}/api/public/bot/{{streamId}}/getAnalytics' \
--header 'auth: {{YOUR_JWT_ACCESS_TOKEN}}' \
--header 'content-type: application/json' \
--data-raw '{
    "type": "successintent",
    "filters": {
        "from": "2025-12-04T18:30:00.000Z",
        "to": "2025-12-18T13:50:01.557Z",
        "channelUIds": ["stream@example.com"],
    },
    "sort": {
        "order": "desc",
        "by": "timestamp"
    },
    "limit": 50
}'

Request Body Parameters

ParameterRequired/OptionalTypeDescription
typeRequiredStringIndicates the type of metrics for which you can retrieve data: successintent, failintent, successtask, failtask, performance, unhandledutterance.
filtersRequiredObjectA set of filters to narrow down the analytics data.
filters.fromRequiredStringThe start timestamp for the data retrieval.
filters.toRequiredStringThe end timestamp for the data retrieval.
filters.channelOptionalArray of stringsAn array containing channel names to filter data by; the default channel is rtm. Accepted channels are:
msteams
twitter
spark
rtm
facebook
slack
kore
email
sms
ringcentral
jabber
yammer
alexa
twiliovoice
telegram
ivr
ivrVoice
smartassist
line
liveperson
googleactions
hangoutchat
mattermost
rcs
filters.channel.channelUIdsOptionalArray of stringsThe end-user’s identity provided by the channel.
filters.isAmbiguousOptionalBooleanWhether to include ambiguous intents or not – set to true or false.
filters.isDeveloperOptionalBooleanWhether to include developer metrics – set to true or false.
filters.trainedOptionalBooleanWhether to include trained intents or not – set to true or false.
filter.taskIdOptionalArray of stringsTo filter based on the task IDs.
filters.userIdOptionalArray of stringsTo filter based on user IDs.
filters.tagsOptionalObjectMeta tags to filter the records. Usage example¹
sortOptionalObjectAn object containing the sorting criteria: order (string, required): Sorting order – asc or desc. by (string, required): The field by which to sort. Usage example: "sort": { "order": "<desc/asc>", "by": "<column name>" }
limitRequiredNumberIndicates the number of records to be returned in the result set.
skipRequiredNumberThe number of records to be skipped from the result set.
¹ Usage example:
"tags": {
"and": [
{
"name": "user",
"values": ["uservalue"],
"type": "user"
},
{
"name": "message",
"values": ["mvalue"],
"type": "message"
}
]
}

Sample Response

{
    "moreAvailable": false,
    "result": [
        {
            "_id": "63xxxxxxxxxxxxxxxxx",
            "messageId": "ms-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
            "sessionId": "63xxxxxxxxxxxxxxx",
            "utterance": "aslfkj",
            "intent": "Mobile Enquiry",
            "userId": "u-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
            "channelUId": "test@abc.xyz",
            "language": "en",
            "timestamp": "2022-09-24T08:24:39.840Z",
            "pinned": false,
            "channel": "rtm",
            "winningIntent": [],
            "isAmbiguous": false,
            "ambiguousIntents": [],
            "taskName": "Mobile Enquiry",
            "flow": [],
            "taskId": "dg-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx",
            "koralogstatusId": "f-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx-xxxxxxxxxxx",
            "customTags": {
                "userTags": [
                    {
                        "name": "Name",
                        "value": "John"
                    }
                ],
                "sessionTags": [],
                "messageTags": []
            },
            "NLAnalysis": {
                "result": "unhandledUtterance",
                "messageStoreId": "ms-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
                "channelId": "st-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx:u-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx:rtm",
                "bot": "Channel Check",
                "botid": "st-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
                "skipConversation": true,
                "task": "Mobile Enquiry",
                "botLanguage": "en-US",
                "nluLanguage": "en-US",
                "taskId": "dg-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
                "fields": {},
                "logSequenceId": "f-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx-xxxxxxxxxx",
                "intentStatus": "published",
                "subType": "dialog",
                "channelInfo": "st-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx:u-xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx:rtm",
                "input": [
                    "aslfkj"
                ],
                "taskContextId": "dcx-xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx",
                "NLAnalysis": {
                    "intentRescoring": true,
                    "isPreferDefinitiveMatch": true,
                    "scoringModel": "original",
                    "toneAnalysis": {},
                    "nlProcessing": {
                        "originalInput": "aslfkj",
                        "spellCorrectedInput": null,
                        "canonical": "Aslak",
                        "wordAnalysis": [
                            {
                                "index": 1,
                                "word": "Aslak",
                                "ignored": false,
                                "pos": "Noun_proper_singular ",
                                "role": "MAINSUBJECT ",
                                "original": "aslfkj",
                                "processedWord": "Aslak"
                            }
                        ]
                    },
                    "ml": {
                        "intentModel": "bot level intent model",
                        "eliminated": [
                            {
                                "task": "Book Appointment",
                                "state": "published",
                                "score": 0.017055602351504544,
                                "scoringCriteria": "Probabilistic score",
                                "matchType": "unlikely"
                            },
                            {
                                "task": "Transfer Money",
                                "state": "published",
                                "score": 0.011911144983740555,
                                "scoringCriteria": "Probabilistic score",
                                "matchType": "unlikely"
                            },
                            {
                                "task": "Show Balance",
                                "state": "published",
                                "score": 0.009209086809082547,
                                "scoringCriteria": "Probabilistic score",
                                "matchType": "unlikely"
                            }
                        ],
                        "namedEntityRecognition": []
                    },
                    "faq": {
                        "demystify": {
                            "lemmatizer_used": "PATTERN",
                            "normalizedQuery": "aslfkj",
                            "OntologyTraits": [],
                            "failed_questions": {},
                            "SelectedPathCount": 3,
                            "ExtractedEntities": [],
                            "ContextEntities": [],
                            "PreConditionNodes": [],
                            "filtered_questions": {
                                "score": [],
                                "traits": []
                            }
                        }
                    }
                },
                "language": "en",
                "channel": "rtm",
                "userId": "u-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx",
                "time": "2022-09-24T08:24:39.808Z",
                "channelclient": "botbuilder",
                "_id": "f-121d2486-xxxx-xxxx-xxxx-xxxxxxxxxx-xxxxxxxxxx",
                "resourceid": "korastatuslogs",
                "entityOrgId": "o-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
                "iv": "VP47awbZ8JRCoqFtgPx7fA==",
                "cek": {
                    "header": {
                        "alg": "dir",
                        "enc": "aes-256-cbc",
                        "kid": "k-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx"
                    }
                },
                "ire": true
            },
            "nodeName": "Entity_color",
            "promptType": "entity"
        },
        {
            "_id": "63xxxxxxxxxxxx",
            "messageId": "ms-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
            "sessionId": "63xxxxxxxxxxxxxxxxx",
            "utterance": "alskd",
            "intent": "Mobile Enquiry",
            "userId": "u-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
            "channelUId": "ramakrishnakoretest@getnada.com",
            "language": "en",
            "timestamp": "2022-09-24T08:24:50.257Z",
            "pinned": false,
            "channel": "rtm",
            "winningIntent": [],
            "isAmbiguous": false,
            "ambiguousIntents": [],
            "taskName": "Mobile Enquiry",
            "flow": [],
            "taskId": "dg-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx",
            "koralogstatusId": "f-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx-xxxxxxx",
            "customTags": {
                "userTags": [
                    {
                        "name": "Name",
                        "value": "Krishna"
                    }
                ],
                "sessionTags": [],
                "messageTags": []
            },
            "NLAnalysis": {
                "result": "unhandledUtterance",
                "messageStoreId": "ms-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
                "channelId": "st-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx:u-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:rtm",
                "bot": "Channel Check",
                "botid": "st-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx",
                "skipConversation": true,
                "task": "Mobile Enquiry",
                "botLanguage": "en-US",
                "nluLanguage": "en-US",
                "taskId": "dg-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx",
                "fields": {},
                "logSequenceId": "f-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx-xxxxxxx",
                "intentStatus": "published",
                "subType": "dialog",
                "channelInfo": "st-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx:u-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx:rtm",
                "input": [
                    "alskd"
                ],
                "taskContextId": "dcx-b3e58798-ed3b-5f3d-9894-2e26758001eb",
                "NLAnalysis": {
                    "intentRescoring": true,
                    "isPreferDefinitiveMatch": true,
                    "scoringModel": "original",
                    "toneAnalysis": {},
                    "nlProcessing": {
                        "originalInput": "alskd",
                        "spellCorrectedInput": null,
                        "canonical": "alskd",
                        "wordAnalysis": [
                            {
                                "index": 1,
                                "word": "unknown-word",
                                "ignored": false,
                                "pos": "Noun_infinitive Noun_singular Verb_infinitive Verb_present Adjective_normal Adverb ",
                                "original": "alskd",
                                "processedWord": "alskd"
                            }
                        ]
                    },
                    "ml": {
                        "intentModel": "bot level intent model",
                        "eliminated": [
                            {
                                "task": "Book Appointment",
                                "state": "published",
                                "score": 0.017055602351504544,
                                "scoringCriteria": "Probabilistic score",
                                "matchType": "unlikely"
                            },
                            {
                                "task": "Transfer Money",
                                "state": "published",
                                "score": 0.011911144983740555,
                                "scoringCriteria": "Probabilistic score",
                                "matchType": "unlikely"
                            },
                            {
                                "task": "Show Balance",
                                "state": "published",
                                "score": 0.009209086809082547,
                                "scoringCriteria": "Probabilistic score",
                                "matchType": "unlikely"
                            }
                        ],
                        "namedEntityRecognition": []
                    },
                    "faq": {
                        "demystify": {
                            "lemmatizer_used": "PATTERN",
                            "normalizedQuery": "alskd",
                            "OntologyTraits": [],
                            "failed_questions": {},
                            "SelectedPathCount": 3,
                            "ExtractedEntities": [],
                            "ContextEntities": [],
                            "PreConditionNodes": [],
                            "filtered_questions": {
                                "score": [],
                                "traits": []
                            }
                        }
                    }
                },
                "language": "en",
                "channel": "rtm",
                "userId": "u-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
                "time": "2022-09-24T08:24:50.226Z",
                "channelclient": "botbuilder",
                "_id": "f-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx-xxxxxxxx",
                "resourceid": "korastatuslogs",
                "entityOrgId": "o-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
                "iv": "+Kl5i6AAFJp0g3NkExn+Og==",
                "cek": {
                    "header": {
                        "alg": "dir",
                        "enc": "aes-256-cbc",
                        "kid": "k-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx"
                    }
                },
                "ire": true
            },
            "nodeName": "Entity_capacity",
            "promptType": "entity"
        }
    ],
    "totalCount": 2
}

Response Body Parameters

ParameterTypeDescription
moreAvailableBooleanIndicates if the API has returned all the records or if more are available, based on the pagination criteria. True if more records are available. False if there are no more records to be retrieved.
resultArray of objectsContains complete information about the metrics.
idStringThe unique identifier for the record.
messagesIdStringThe unique identifier for the message record.
sessionIdStringThe unique identifier for the session.
utteranceStringThe user utterance/input.
intentStringThe identified intent for the user’s utterance/input.
userIdStringThe unique identifier for the user.
channelUIdStringThe end-user’s identity provided by the channel. It can be the user’s email ID or enterprise-assigned unique ID.
languageStringThe language in which the conversation happened with the bot.
timestampStringThe response date is converted into timestamp format.
pinnedBooleanIndicates whether the message is pinned – true or false.
channelStringName of the channel through which the conversation occurred.
winningIntentArrayAn array containing the winning intent(s) for the utterance.
isAmbiguousBooleanIndicates whether the intent is ambiguous – true or false.
ambiguousIntentsArrayAn array of ambiguous intents, if applicable.
taskNameStringThe name of the task associated with the conversation.
nodeNameStringThe node name. Retrieved only for the Performance metric.
typeStringThe type of the node. Retrieved only for the Performance metric.
statusStringThe status of the task. Retrieved only for the Performance metric.
statusCodeStringThe status code of the task. Retrieved only for the Performance metric.
responseTimeStringThe response time for the task. Retrieved only for the Performance metric.
flowArrayAn array of task flows.
taskIdStringThe unique identifier for the task.
koralogstatusIdStringThe unique identifier for the koralog status.
customTagsObjectCustom tags added to the user’s profile.
customTags.userTagsArrayUser tags added to the user’s profile information.
userTags.nameStringTag’s name.
userTags.valueStringTag’s value.
customTags.sessionTagsArrayCustom tags added to the conversation session.
customTags.messagesTagsArrayMeta tags to filter the conversations.
NLAnalysisObjectContains natural language analysis results, including intent recognition and other NLP details. Includes sub-objects intentRescoring, nlProcessing, ml (machine learning analysis), fm (fundamental meaning analysis), faq (FAQ analysis), and finalResolver. Each sub-object contains information about linguistic analysis, intent recognition, and elimination of unlikely intents.
NLAnalysis.debugTitleStringThe metric type in the NL Analysis. Possible values:
Intent Match Successful
Intent Match Failed
Intent Failed/Abandoned
Intent Completed Successfully
Unhandled Utterances
Performance.
NLAnalysis.resultStringThe result of the NL analysis. For example, an unhandled utterance or a failed task.
NLAnalysis.messageStoreIdStringA unique identifier for the message stored in the system.
NLAnalysis.channelIdStringThe identifier for the channel where the conversation took place.
NLAnalysis.botStringThe name of the bot that handled the conversation.
NLAnalysis.botidStringThe unique identifier for the bot.
NLAnalysis.skipConversationBooleanIf set to true, skips the conversation record. If false, does not skip the conversation.
NLAnalysis.taskStringThe name of the task associated with the conversation.
NLAnalysis.botLanguageStringThe language used by the bot.
NLAnalysis.nluLanguageStringThe language in which the NLP training happened for that particular bot language.
NLAnalysis.taskIdStringThe unique identifier for the task associated with the conversation.
NLAnalysis.isDeveloperBooleanWhether the session was initiated by a developer – true or false.
NLAnalysis.reasonObjectThe NL analysis reason object.
NLAnalysis.reason.causeStringThe cause for NL analysis failure. For example, the script node failure.
NLAnalysis.reason.causeIdStringThe NL analysis cause ID.
NLAnalysis.fieldsStringContains additional fields associated with the interaction.
NLAnalysis.logSequenceIdStringThe unique log sequence identifier.
NLAnalysis.intentStatusStringThe status of the intent.
NLAnalysis.subTypeStringThe task subtype. For example, a dialog.
NLAnalysis.channelInfoStringThe bot channel information.
NLAnalysis.inputArrayAn array containing the user’s input.
NLAnalysis.taskContextIdStringThe unique task context identifier.
NLAnalysis.intentRescoringBooleanIndicates whether intent rescoring was enabled – true or false. (true means the system may reevaluate and rescore intents during processing of the user’s input.)
NLAnalysis.isPreferDefinitiveMatchBooleanIndicates whether the system prefers a definitive match when recognizing intents – true or false.
NLAnalysis.scoringModelStringThe scoring model used for intent recognition. Possible value: original.
NLAnalysis.toneAnalysisObjectThe toneAnalysis object; contains the tone analysis of the task.
NLAnalysis.nlProcessingObjectThe nlProcessing object; contains information about the linguistic analysis and NLP of the user’s input.
NLAnalysis.nlProcessing.originalInputStringThe original user input.
NLAnalysis.nlProcessing.spellCorrectedInputStringIf spelling correction is applied, contains the corrected user input. null indicates no spelling correction was applied.
NLAnalysis.nlProcessing.canonicalStringThe canonical representation of the input; typically a normalized or recognized form of the user’s input.
NLAnalysis.nlProcessing.wordAnalysisArrayAn array of objects, each containing a detailed analysis of individual words in the user’s input.
NLAnalysis.nlProcessing.wordAnalysis.indexNumberThe position of the word in the input.
NLAnalysis.nlProcessing.wordAnalysis.wordStringThe recognized/analyzed word.
NLAnalysis.nlProcessing.wordAnalysis.ignoredBooleanIndicates whether the word was ignored in the analysis – true or false.
NLAnalysis.nlProcessing.wordAnalysis.posStringPart-of-speech tagging for the word.
NLAnalysis.nlProcessing.wordAnalysis.roleStringThe role or function of the word in the context.
NLAnalysis.nlProcessing.wordAnalysis.originalStringThe original word.
NLAnalysis.nlProcessing.wordAnalysis.processedWordStringThe processed word.
NLAnalysis.mlObjectThe ml object; contains information related to machine learning analysis, including intent recognition and elimination of unlikely intents. Most parameters/values are used internally.
NLAnalysis.fmObjectThe fm object; contains information related to fundamental meaning analysis, including scoring, matching, and elimination of tasks. Most parameters/values are used internally.
NLAnalysis.faqObjectThe faq object; contains detailed information about the analysis of user input related to FAQ. Most parameters/values are used internally.
NLAnalysis.finalResolverObjectThe finalResolver object; contains information related to the final resolution process and the determination of the response or action based on the user’s input. Most parameters/values are used internally.
totalCountNumberThe total number of records identified as per the API request parameters.