Aggregated conversation metrics for one inbox over a date range.
Response times are business-hours aware — they use the company’s
configured business hours and holidays, the same basis as in-app reports, so
figures reconcile. responseCount is the number of replies the averages were
computed from.
Averages and rates are null rather than 0 when the window contains
nothing to measure. Automated/junk threads are excluded unless
includeJunk=true.
sentiment carries a numeric average plus the coverage it was computed
from, and enabled reports whether scoring is currently switched on for the
inbox. Scores exist only for threads the pipeline actually scored, so a
coverage of 40% means the average describes 40% of the window’s threads.
topics lists the categories applied to threads in the window with their
thread counts.
Qualitative tone summaries (prose descriptions of tone) are not part of this
endpoint yet and are absent from the response rather than returned as null.
GET
/
api
/
inboxes
/
{channelId}
/
analytics
Conversation analytics for an inbox
curl --request GET \ --url https://core-api.getaptly.com/api/inboxes/{channelId}/analytics \ --header 'x-token: <api-key>'
Averages and rates are null (not 0) when the window has nothing to measure.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Aptly API","colors":{"primary":"#0066FF"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"aptly-10a57313","hasAudioNarration":false,"actualSubdomain":"aptly-10a57313","customDomains":["docs.getaptly.com"],"gitSource":{"type":"github","owner":"workturbo","repo":"core-api-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4dfc987cb31e1fa2cb0ab","collectionId":"1788173d-2862-4418-873a-da2b64e83176","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4dfc987cb31e1fa2cb0ab"},"feedback":{"agentFeedback":true},"entitlements":{},"buildId":"6ae4dfc987cb31e1fa2cb0ab","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"API Reference","count":192},{"language":"default","tag":"Board","count":28},{"language":"default","tag":"Documentation","count":17},{"language":"default","tag":"Aptly Portal","count":14},{"language":"default","tag":"Contacts","count":10},{"language":"default","tag":"Cards","count":9},{"language":"default","tag":"Knowledge","count":8},{"language":"default","tag":"Getting Started","count":7},{"language":"default","tag":"Inboxes","count":7},{"language":"default","tag":"Context \u0026 Locations","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/inboxes/conversation-analytics-for-an-inbox","slug":"/api-reference/inboxes/conversation-analytics-for-an-inbox","pageMetadata":{"title":"Conversation analytics for an inbox","description":"Aggregated conversation metrics for one inbox over a date range.\n\nResponse times are **business-hours aware** — they use the company's\nconfigured business hours and holidays, the same basis as in-app reports, so\nfigures reconcile. `responseCount` is the number of replies the averages were\ncomputed from.\n\nAverages and rates are `null` rather than `0` when the window contains\nnothing to measure. Automated/junk threads are excluded unless\n`includeJunk=true`.\n\n`sentiment` carries a numeric average plus the `coverage` it was computed\nfrom, and `enabled` reports whether scoring is currently switched on for the\ninbox. Scores exist only for threads the pipeline actually scored, so a\ncoverage of 40% means the average describes 40% of the window's threads.\n`topics` lists the categories applied to threads in the window with their\nthread counts.\n\nQualitative tone summaries (prose descriptions of tone) are not part of this\nendpoint yet and are absent from the response rather than returned as null.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/inboxes/{channelId}/analytics","href":"/api-reference/inboxes/conversation-analytics-for-an-inbox","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Aggregated conversation metrics for one inbox over a date range.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Response times are \", _jsx(_components.strong, {\n children: \"business-hours aware\"\n }), \" — they use the company’s\\nconfigured business hours and holidays, the same basis as in-app reports, so\\nfigures reconcile. \", _jsx(_components.code, {\n children: \"responseCount\"\n }), \" is the number of replies the averages were\\ncomputed from.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Averages and rates are \", _jsx(_components.code, {\n children: \"null\"\n }), \" rather than \", _jsx(_components.code, {\n children: \"0\"\n }), \" when the window contains\\nnothing to measure. Automated/junk threads are excluded unless\\n\", _jsx(_components.code, {\n children: \"includeJunk=true\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"sentiment\"\n }), \" carries a numeric average plus the \", _jsx(_components.code, {\n children: \"coverage\"\n }), \" it was computed\\nfrom, and \", _jsx(_components.code, {\n children: \"enabled\"\n }), \" reports whether scoring is currently switched on for the\\ninbox. Scores exist only for threads the pipeline actually scored, so a\\ncoverage of 40% means the average describes 40% of the window’s threads.\\n\", _jsx(_components.code, {\n children: \"topics\"\n }), \" lists the categories applied to threads in the window with their\\nthread counts.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Qualitative tone summaries (prose descriptions of tone) are not part of this\\nendpoint yet and are absent from the response rather than returned as null.\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Conversation analytics for an inbox","description":"Aggregated conversation metrics for one inbox over a date range.\n\nResponse times are **business-hours aware** — they use the company's\nconfigured business hours and holidays, the same basis as in-app reports, so\nfigures reconcile. `responseCount` is the number of replies the averages were\ncomputed from.\n\nAverages and rates are `null` rather than `0` when the window contains\nnothing to measure. Automated/junk threads are excluded unless\n`includeJunk=true`.\n\n`sentiment` carries a numeric average plus the `coverage` it was computed\nfrom, and `enabled` reports whether scoring is currently switched on for the\ninbox. Scores exist only for threads the pipeline actually scored, so a\ncoverage of 40% means the average describes 40% of the window's threads.\n`topics` lists the categories applied to threads in the window with their\nthread counts.\n\nQualitative tone summaries (prose descriptions of tone) are not part of this\nendpoint yet and are absent from the response rather than returned as null.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/inboxes/{channelId}/analytics","href":"/api-reference/inboxes/conversation-analytics-for-an-inbox","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Conversation analytics for an inbox","description":"Aggregated conversation metrics for one inbox over a date range.\n\nResponse times are **business-hours aware** — they use the company's\nconfigured business hours and holidays, the same basis as in-app reports, so\nfigures reconcile. `responseCount` is the number of replies the averages were\ncomputed from.\n\nAverages and rates are `null` rather than `0` when the window contains\nnothing to measure. Automated/junk threads are excluded unless\n`includeJunk=true`.\n\n`sentiment` carries a numeric average plus the `coverage` it was computed\nfrom, and `enabled` reports whether scoring is currently switched on for the\ninbox. Scores exist only for threads the pipeline actually scored, so a\ncoverage of 40% means the average describes 40% of the window's threads.\n`topics` lists the categories applied to threads in the window with their\nthread counts.\n\nQualitative tone summaries (prose descriptions of tone) are not part of this\nendpoint yet and are absent from the response rather than returned as null.\n","operationId":"getInboxAnalytics","tags":["Inboxes"],"security":["5ac45c93-6a88-4fb4-be17-64222b0ea873","da636c22-1588-4617-9030-fe269d6fa88e","8acd676f-24d4-4034-8249-61e93fa9bded"],"parameters":["08177f2a-c2bf-4d04-b37a-b0e38832063b","ad90194e-37b9-4763-bd22-5098bee9287a","488617ad-acec-4249-b04e-1d2745ddb7e3","0738b1a6-f458-4c9b-999e-aed6d47c3414","45e994dc-96b2-4909-87be-e402e23f4c3c"],"responses":{"200":"f402cfcd-e7ec-45cd-8c50-07a96a7a5cbb","400":"7082d6ab-c26f-45f7-a5c5-41c9a4b7b847","401":"a61c19ad-8003-4e56-b67d-8224ec5b07aa","403":"c9574288-8978-46db-befc-ef0e3d84a163","404":"5c99b36b-40fd-46ee-9aff-eb6438c0d184"},"method":"get","type":"path","servers":["07b42306-8584-4b68-93b8-f52adbaae2fe"],"path":"/api/inboxes/{channelId}/analytics","baseUrlOptions":["https://core-api.getaptly.com"],"title":"Conversation analytics for an inbox","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"08177f2a-c2bf-4d04-b37a-b0e38832063b":{"name":"channelId","in":"path","required":true,"schema":{"type":"string","isRequired":true,"description":"External channel meta ID (`meta.id`) of the inbox.","uniqueKey":"","typeLabel":"string"},"description":"External channel meta ID (`meta.id`) of the inbox."},"ad90194e-37b9-4763-bd22-5098bee9287a":{"name":"dateFrom","in":"query","schema":{"type":"string","format":"date-time","uniqueKey":"","typeLabel":"string\u003cdate-time>"}},"488617ad-acec-4249-b04e-1d2745ddb7e3":{"name":"dateTo","in":"query","schema":{"type":"string","format":"date-time","description":"Exclusive. Range must not exceed 400 days.","uniqueKey":"","typeLabel":"string\u003cdate-time>"},"description":"Exclusive. Range must not exceed 400 days."},"0738b1a6-f458-4c9b-999e-aed6d47c3414":{"name":"groupBy","in":"query","schema":{"type":"string","enum":["assignee","contactType"],"description":"Break the same metrics out per assignee, or per the counterpart's contact type. Omit for a single total.","uniqueKey":"","typeLabel":"enum\u003cstring>"},"description":"Break the same metrics out per assignee, or per the counterpart's contact type. Omit for a single total."},"45e994dc-96b2-4909-87be-e402e23f4c3c":{"name":"includeJunk","in":"query","schema":{"type":"boolean","default":false,"uniqueKey":"","typeLabel":"boolean"}}},"responses":{"f402cfcd-e7ec-45cd-8c50-07a96a7a5cbb":{"description":"Aggregated metrics for the window.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","description":"Averages and rates are null (not 0) when the window has nothing to measure.","properties":{"threadCount":{"type":"integer","uniqueKey":"data.threadCount","typeLabel":"integer"},"contactCount":{"type":"integer","description":"Distinct counterparts across the matching threads.","uniqueKey":"data.contactCount","typeLabel":"integer"},"volume":{"type":"object","properties":{"in":{"type":"integer","uniqueKey":"data.volume.in","typeLabel":"integer"},"out":{"type":"integer","uniqueKey":"data.volume.out","typeLabel":"integer"},"total":{"type":"integer","uniqueKey":"data.volume.total","typeLabel":"integer"}},"uniqueKey":"data.volume","typeLabel":"object"},"avgFirstResponseHrs":{"oneOf":[{"type":"number","uniqueKey":"data.avgFirstResponseHrs.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"data.avgFirstResponseHrs.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.avgFirstResponseHrs","typeLabel":"number | null"},"avgResponseHrs":{"oneOf":[{"type":"number","uniqueKey":"data.avgResponseHrs.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"data.avgResponseHrs.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.avgResponseHrs","typeLabel":"number | null"},"responseCount":{"type":"integer","description":"Replies the averages were computed from.","uniqueKey":"data.responseCount","typeLabel":"integer"},"oneTouchPct":{"oneOf":[{"type":"number","description":"Percentage of threads resolved with a single outbound.","uniqueKey":"data.oneTouchPct.oneOf.0","typeLabel":"number"},{"type":"null","description":"Percentage of threads resolved with a single outbound.","uniqueKey":"data.oneTouchPct.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.oneTouchPct","typeLabel":"number | null"},"oneTouchCount":{"type":"integer","uniqueKey":"data.oneTouchCount","typeLabel":"integer"},"reopenRatePct":{"oneOf":[{"type":"number","uniqueKey":"data.reopenRatePct.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"data.reopenRatePct.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.reopenRatePct","typeLabel":"number | null"},"reopenedCount":{"type":"integer","uniqueKey":"data.reopenedCount","typeLabel":"integer"},"noCustomerResponseCount":{"type":"integer","description":"Threads where we sent something and never got a reply.","uniqueKey":"data.noCustomerResponseCount","typeLabel":"integer"},"awaitingOurReplyCount":{"type":"integer","description":"Open threads where the counterpart spoke last.","uniqueKey":"data.awaitingOurReplyCount","typeLabel":"integer"},"sentiment":{"type":"object","description":"AI sentiment for the window. Scores are produced on write by the enhancement pipeline, only for inboxes where it is switched on, so `coverage` is always reported next to the average — an average over a fraction of the threads must not be read as covering all of them.","properties":{"enabled":{"type":"boolean","description":"Whether sentiment scoring is currently on for this inbox (org AI assistant + org sentiment + the inbox's own feature flag). Reported at the inbox level only, not per group.","uniqueKey":"data.sentiment.enabled","typeLabel":"boolean"},"avg":{"oneOf":[{"type":"number","description":"Mean score across scored threads. Null when none were scored.","uniqueKey":"data.sentiment.avg.oneOf.0","typeLabel":"number"},{"type":"null","description":"Mean score across scored threads. Null when none were scored.","uniqueKey":"data.sentiment.avg.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.sentiment.avg","typeLabel":"number | null"},"coverage":{"type":"object","properties":{"scoredThreads":{"type":"integer","uniqueKey":"data.sentiment.coverage.scoredThreads","typeLabel":"integer"},"threadCount":{"type":"integer","uniqueKey":"data.sentiment.coverage.threadCount","typeLabel":"integer"},"pct":{"oneOf":[{"type":"number","uniqueKey":"data.sentiment.coverage.pct.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"data.sentiment.coverage.pct.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.sentiment.coverage.pct","typeLabel":"number | null"}},"uniqueKey":"data.sentiment.coverage","typeLabel":"object"}},"uniqueKey":"data.sentiment","typeLabel":"object"},"window":{"type":"object","properties":{"from":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"data.window.from.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"data.window.from.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.window.from","typeLabel":"string\u003cdate-time> | null"},"to":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"data.window.to.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"data.window.to.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.window.to","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"data.window","typeLabel":"object"},"topics":{"type":"array","items":{"type":"object","description":"A topic (category) the enhancement pipeline or a teammate applied to threads in the window. Topics the company no longer defines are omitted.","properties":{"topicId":{"type":"string","uniqueKey":"data.topics.items.[INDEX].topicId","typeLabel":"string"},"label":{"oneOf":[{"type":"string","uniqueKey":"data.topics.items.[INDEX].label.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.topics.items.[INDEX].label.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.topics.items.[INDEX].label","typeLabel":"string | null"},"emoji":{"oneOf":[{"type":"string","uniqueKey":"data.topics.items.[INDEX].emoji.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.topics.items.[INDEX].emoji.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.topics.items.[INDEX].emoji","typeLabel":"string | null"},"color":{"oneOf":[{"type":"string","uniqueKey":"data.topics.items.[INDEX].color.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.topics.items.[INDEX].color.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.topics.items.[INDEX].color","typeLabel":"string | null"},"threadCount":{"type":"integer","uniqueKey":"data.topics.items.[INDEX].threadCount","typeLabel":"integer"}},"uniqueKey":"data.topics.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.topics","typeLabel":"object[]"},"groupBy":{"oneOf":[{"type":"string","enum":["assignee","contactType"],"uniqueKey":"data.groupBy.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["assignee","contactType"],"uniqueKey":"data.groupBy.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.groupBy","typeLabel":"enum\u003cstring> | null"},"groups":{"type":"array","description":"Present only when `groupBy` was supplied.","items":{"type":"object","description":"Averages and rates are null (not 0) when the window has nothing to measure.","properties":{"key":{"oneOf":[{"type":"string","description":"Assignee user id or contact-type id. Null for unassigned.","uniqueKey":"data.groups.items.[INDEX].key.oneOf.0","typeLabel":"string"},{"type":"null","description":"Assignee user id or contact-type id. Null for unassigned.","uniqueKey":"data.groups.items.[INDEX].key.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.groups.items.[INDEX].key","typeLabel":"string | null"},"label":{"oneOf":[{"type":"string","uniqueKey":"data.groups.items.[INDEX].label.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.groups.items.[INDEX].label.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.groups.items.[INDEX].label","typeLabel":"string | null"},"threadCount":{"type":"integer","uniqueKey":"data.groups.items.[INDEX].threadCount","typeLabel":"integer"},"contactCount":{"type":"integer","description":"Distinct counterparts across the matching threads.","uniqueKey":"data.groups.items.[INDEX].contactCount","typeLabel":"integer"},"volume":{"type":"object","properties":{"in":{"type":"integer","uniqueKey":"data.groups.items.[INDEX].volume.in","typeLabel":"integer"},"out":{"type":"integer","uniqueKey":"data.groups.items.[INDEX].volume.out","typeLabel":"integer"},"total":{"type":"integer","uniqueKey":"data.groups.items.[INDEX].volume.total","typeLabel":"integer"}},"uniqueKey":"data.groups.items.[INDEX].volume","typeLabel":"object"},"avgFirstResponseHrs":{"oneOf":[{"type":"number","uniqueKey":"data.groups.items.[INDEX].avgFirstResponseHrs.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"data.groups.items.[INDEX].avgFirstResponseHrs.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.groups.items.[INDEX].avgFirstResponseHrs","typeLabel":"number | null"},"avgResponseHrs":{"oneOf":[{"type":"number","uniqueKey":"data.groups.items.[INDEX].avgResponseHrs.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"data.groups.items.[INDEX].avgResponseHrs.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.groups.items.[INDEX].avgResponseHrs","typeLabel":"number | null"},"responseCount":{"type":"integer","description":"Replies the averages were computed from.","uniqueKey":"data.groups.items.[INDEX].responseCount","typeLabel":"integer"},"oneTouchPct":{"oneOf":[{"type":"number","description":"Percentage of threads resolved with a single outbound.","uniqueKey":"data.groups.items.[INDEX].oneTouchPct.oneOf.0","typeLabel":"number"},{"type":"null","description":"Percentage of threads resolved with a single outbound.","uniqueKey":"data.groups.items.[INDEX].oneTouchPct.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.groups.items.[INDEX].oneTouchPct","typeLabel":"number | null"},"oneTouchCount":{"type":"integer","uniqueKey":"data.groups.items.[INDEX].oneTouchCount","typeLabel":"integer"},"reopenRatePct":{"oneOf":[{"type":"number","uniqueKey":"data.groups.items.[INDEX].reopenRatePct.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"data.groups.items.[INDEX].reopenRatePct.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.groups.items.[INDEX].reopenRatePct","typeLabel":"number | null"},"reopenedCount":{"type":"integer","uniqueKey":"data.groups.items.[INDEX].reopenedCount","typeLabel":"integer"},"noCustomerResponseCount":{"type":"integer","description":"Threads where we sent something and never got a reply.","uniqueKey":"data.groups.items.[INDEX].noCustomerResponseCount","typeLabel":"integer"},"awaitingOurReplyCount":{"type":"integer","description":"Open threads where the counterpart spoke last.","uniqueKey":"data.groups.items.[INDEX].awaitingOurReplyCount","typeLabel":"integer"},"sentiment":{"type":"object","description":"AI sentiment for the window. Scores are produced on write by the enhancement pipeline, only for inboxes where it is switched on, so `coverage` is always reported next to the average — an average over a fraction of the threads must not be read as covering all of them.","properties":{"enabled":{"type":"boolean","description":"Whether sentiment scoring is currently on for this inbox (org AI assistant + org sentiment + the inbox's own feature flag). Reported at the inbox level only, not per group.","uniqueKey":"data.groups.items.[INDEX].sentiment.enabled","typeLabel":"boolean"},"avg":{"oneOf":[{"type":"number","description":"Mean score across scored threads. Null when none were scored.","uniqueKey":"data.groups.items.[INDEX].sentiment.avg.oneOf.0","typeLabel":"number"},{"type":"null","description":"Mean score across scored threads. Null when none were scored.","uniqueKey":"data.groups.items.[INDEX].sentiment.avg.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.groups.items.[INDEX].sentiment.avg","typeLabel":"number | null"},"coverage":{"type":"object","properties":{"scoredThreads":{"type":"integer","uniqueKey":"data.groups.items.[INDEX].sentiment.coverage.scoredThreads","typeLabel":"integer"},"threadCount":{"type":"integer","uniqueKey":"data.groups.items.[INDEX].sentiment.coverage.threadCount","typeLabel":"integer"},"pct":{"oneOf":[{"type":"number","uniqueKey":"data.groups.items.[INDEX].sentiment.coverage.pct.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"data.groups.items.[INDEX].sentiment.coverage.pct.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.groups.items.[INDEX].sentiment.coverage.pct","typeLabel":"number | null"}},"uniqueKey":"data.groups.items.[INDEX].sentiment.coverage","typeLabel":"object"}},"uniqueKey":"data.groups.items.[INDEX].sentiment","typeLabel":"object"}},"uniqueKey":"data.groups.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.groups","typeLabel":"object[]"}},"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"threadCount":123,"contactCount":123,"volume":{"in":123,"out":123,"total":123},"avgFirstResponseHrs":123,"avgResponseHrs":123,"responseCount":123,"oneTouchPct":123,"oneTouchCount":123,"reopenRatePct":123,"reopenedCount":123,"noCustomerResponseCount":123,"awaitingOurReplyCount":123,"sentiment":{"enabled":true,"avg":123,"coverage":{"scoredThreads":123,"threadCount":123,"pct":123}},"window":{"from":"2023-11-07T05:31:56Z","to":"2023-11-07T05:31:56Z"},"topics":[{"topicId":"\u003cstring>","label":"\u003cstring>","emoji":"\u003cstring>","color":"\u003cstring>","threadCount":123}],"groupBy":"assignee","groups":[{"key":"\u003cstring>","label":"\u003cstring>","threadCount":123,"contactCount":123,"volume":{"in":123,"out":123,"total":123},"avgFirstResponseHrs":123,"avgResponseHrs":123,"responseCount":123,"oneTouchPct":123,"oneTouchCount":123,"reopenRatePct":123,"reopenedCount":123,"noCustomerResponseCount":123,"awaitingOurReplyCount":123,"sentiment":{"enabled":true,"avg":123,"coverage":{"scoredThreads":123,"threadCount":123,"pct":123}}}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"7082d6ab-c26f-45f7-a5c5-41c9a4b7b847":{"description":"Invalid date range or `groupBy` value.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"a61c19ad-8003-4e56-b67d-8224ec5b07aa":{"description":"Invalid or missing credential.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"c9574288-8978-46db-befc-ef0e3d84a163":{"description":"The authenticated user cannot reach this inbox.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"5c99b36b-40fd-46ee-9aff-eb6438c0d184":{"description":"Inbox not found in your company.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"5ac45c93-6a88-4fb4-be17-64222b0ea873":{"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-token","scopes":[],"schemeName":"ApiKeyHeader"}},"da636c22-1588-4617-9030-fe269d6fa88e":{"DelegateToken":{"type":"apiKey","in":"header","name":"Authorization","description":"Delegate token issued by the platform. Format: `DelegateToken \u003ctoken>`","scopes":[],"schemeName":"DelegateToken"}},"8acd676f-24d4-4034-8249-61e93fa9bded":{"PartnerBearer":{"type":"http","scheme":"bearer","description":"Partner token. Format: `Authorization: Bearer \u003ctoken>`","scopes":[],"schemeName":"PartnerBearer"}}},"servers":{"07b42306-8584-4b68-93b8-f52adbaae2fe":{"url":"https://core-api.getaptly.com","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-token","scopes":[],"schemeName":"ApiKeyHeader"},"schema":{"title":"x-token","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyHeader","name":"x-token"}],"title":"ApiKeyHeader"},{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"Authorization","description":"Delegate token issued by the platform. Format: `DelegateToken \u003ctoken>`","scopes":[],"schemeName":"DelegateToken"},"schema":{"title":"Authorization","type":"string","description":"Delegate token issued by the platform. Format: `DelegateToken \u003ctoken>`","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"DelegateToken","name":"Authorization"}],"title":"DelegateToken"},{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Partner token. Format: `Authorization: Bearer \u003ctoken>`","scopes":[],"schemeName":"PartnerBearer"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Partner token. Format: `Authorization: Bearer \u003ctoken>`","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"PartnerBearer","name":"Authorization"}],"title":"PartnerBearer"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"aptly-10a57313","siteName":"Aptly API","title":"Conversation analytics for an inbox - Aptly API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T18:20:14.085Z","originalFileLocation":"api-reference/inboxes/conversation-analytics-for-an-inbox.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Aggregated conversation metrics for one inbox over a date range. Response times are business-hours aware — they use the company\u0026#x27;s configured business hours and holidays, the same basis as in-app reports, so figures reconcile. responseCount is the number of replies the averages were computed from. Averages and rates are null rather than 0 when the window contains nothing to measure. Automated/junk threads are excluded unless includeJunk=true. sentiment carries a numeric average plus the coverage it was computed from, and enabled reports whether scoring is currently switched on for the inbox. Scores exist only for threads the pipeline actually scored, so a coverage of 40% means the average describes 40% of the window\u0026#x27;s threads. topics lists the categories applied to threads in the window with their thread counts. Qualitative tone summaries (prose descriptions of tone) are not part of this endpoint yet and are absent from the response rather than returned as null.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Aptly API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/aptly-10a57313/_generated/favicon/apple-touch-icon.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/aptly-10a57313/_generated/favicon/favicon-32x32.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/aptly-10a57313/_generated/favicon/favicon-16x16.png?v=3\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/aptly-10a57313/_generated/favicon/favicon.ico?v=3\">\u003cmeta data-mint-head property=\"og:title\" content=\"Conversation analytics for an inbox - Aptly API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Aggregated conversation metrics for one inbox over a date range. Response times are business-hours aware — they use the company\u0026#x27;s configured business hours and holidays, the same basis as in-app reports, so figures reconcile. responseCount is the number of replies the averages were computed from. Averages and rates are null rather than 0 when the window contains nothing to measure. Automated/junk threads are excluded unless includeJunk=true. sentiment carries a numeric average plus the coverage it was computed from, and enabled reports whether scoring is currently switched on for the inbox. Scores exist only for threads the pipeline actually scored, so a coverage of 40% means the average describes 40% of the window\u0026#x27;s threads. topics lists the categories applied to threads in the window with their thread counts. Qualitative tone summaries (prose descriptions of tone) are not part of this endpoint yet and are absent from the response rather than returned as null.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Aptly API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.getaptly.com/api-reference/inboxes/conversation-analytics-for-an-inbox\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://aptly-10a57313.mintlify.app/_mintlify/api/og/v2?division=Inboxes\u0026amp;title=Conversation+analytics+for+an+inbox\u0026amp;description=Aggregated+conversation+metrics+for+one+inbox+over+a+date+range.%0A%0AResponse+times+are+**business-hours+aware**+%E2%80%94+they+use+the+company%27s%0Aconfigured+business+hours\u0026amp;theme=2df7969a14dd47f616338bb6\u0026amp;signature=dcaaa4d6c7d2bbca2829fc655988056f3eade697b6b665bc857b0c524b325765\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Conversation analytics for an inbox - Aptly API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Aggregated conversation metrics for one inbox over a date range. Response times are business-hours aware — they use the company\u0026#x27;s configured business hours and holidays, the same basis as in-app reports, so figures reconcile. responseCount is the number of replies the averages were computed from. Averages and rates are null rather than 0 when the window contains nothing to measure. Automated/junk threads are excluded unless includeJunk=true. sentiment carries a numeric average plus the coverage it was computed from, and enabled reports whether scoring is currently switched on for the inbox. Scores exist only for threads the pipeline actually scored, so a coverage of 40% means the average describes 40% of the window\u0026#x27;s threads. topics lists the categories applied to threads in the window with their thread counts. Qualitative tone summaries (prose descriptions of tone) are not part of this endpoint yet and are absent from the response rather than returned as null.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://aptly-10a57313.mintlify.app/_mintlify/api/og/v2?division=Inboxes\u0026amp;title=Conversation+analytics+for+an+inbox\u0026amp;description=Aggregated+conversation+metrics+for+one+inbox+over+a+date+range.%0A%0AResponse+times+are+**business-hours+aware**+%E2%80%94+they+use+the+company%27s%0Aconfigured+business+hours\u0026amp;theme=2df7969a14dd47f616338bb6\u0026amp;signature=dcaaa4d6c7d2bbca2829fc655988056f3eade697b6b665bc857b0c524b325765\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/aptly-10a57313/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Aptly API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0066FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.getaptly.com/api-reference/inboxes/conversation-analytics-for-an-inbox\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/inboxes/conversation-analytics-for-an-inbox.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.getaptly.com/#organization\",\"name\":\"Aptly API\",\"url\":\"https://docs.getaptly.com\"},{\"@type\":\"WebSite\",\"@id\":\"https://docs.getaptly.com#website\",\"name\":\"Aptly API\",\"url\":\"https://docs.getaptly.com\",\"publisher\":{\"@id\":\"https://docs.getaptly.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.getaptly.com/api-reference/inboxes/conversation-analytics-for-an-inbox#webpage\",\"url\":\"https://docs.getaptly.com/api-reference/inboxes/conversation-analytics-for-an-inbox\",\"name\":\"Conversation analytics for an inbox\",\"description\":\"Aggregated conversation metrics for one inbox over a date range. Response times are business-hours aware — they use the company's configured business hours and holidays, the same basis as in-app reports, so figures reconcile. responseCount is the number of replies the averages were computed from. Averages and rates are null rather than 0 when the window contains nothing to measure. Automated/junk threads are excluded unless includeJunk=true. sentiment carries a numeric average plus the coverage it was computed from, and enabled reports whether scoring is currently switched on for the inbox. Scores exist only for threads the pipeline actually scored, so a coverage of 40% means the average describes 40% of the window's threads. topics lists the categories applied to threads in the window with their thread counts. Qualitative tone summaries (prose descriptions of tone) are not part of this endpoint yet and are absent from the response rather than returned as null.\",\"dateModified\":\"2026-10-30T18:20:14.085Z\",\"isPartOf\":{\"@id\":\"https://docs.getaptly.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.getaptly.com/api-reference/inboxes/conversation-analytics-for-an-inbox#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.getaptly.com/api-reference/inboxes/conversation-analytics-for-an-inbox#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.getaptly.com/api-reference/users/list-users\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Inboxes\",\"item\":\"https://docs.getaptly.com/api-reference/inboxes/list-inboxes-you-can-query\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Conversation analytics for an inbox\",\"item\":\"https://docs.getaptly.com/api-reference/inboxes/conversation-analytics-for-an-inbox\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.getaptly.com/api-reference/inboxes/conversation-analytics-for-an-inbox#apireference\",\"headline\":\"Conversation analytics for an inbox\",\"name\":\"Conversation analytics for an inbox\",\"description\":\"Aggregated conversation metrics for one inbox over a date range. Response times are business-hours aware — they use the company's configured business hours and holidays, the same basis as in-app reports, so figures reconcile. responseCount is the number of replies the averages were computed from. Averages and rates are null rather than 0 when the window contains nothing to measure. Automated/junk threads are excluded unless includeJunk=true. sentiment carries a numeric average plus the coverage it was computed from, and enabled reports whether scoring is currently switched on for the inbox. Scores exist only for threads the pipeline actually scored, so a coverage of 40% means the average describes 40% of the window's threads. topics lists the categories applied to threads in the window with their thread counts. Qualitative tone summaries (prose descriptions of tone) are not part of this endpoint yet and are absent from the response rather than returned as null.\",\"url\":\"https://docs.getaptly.com/api-reference/inboxes/conversation-analytics-for-an-inbox\",\"mainEntityOfPage\":{\"@id\":\"https://docs.getaptly.com/api-reference/inboxes/conversation-analytics-for-an-inbox#webpage\"},\"dateModified\":\"2026-10-30T18:20:14.085Z\",\"publisher\":{\"@id\":\"https://docs.getaptly.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.getaptly.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Aptly API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Aptly API","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"API Reference","groups":[{"group":"API Reference","pages":[{"group":"Users","pages":[{"title":"List users","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/users","href":"/api-reference/users/list-users"},{"title":"List a user's email inboxes","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/users/{userId}/inboxes","href":"/api-reference/users/list-a-users-email-inboxes"}]},{"group":"Inboxes","pages":[{"title":"List inboxes you can query","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/inboxes","href":"/api-reference/inboxes/list-inboxes-you-can-query"},{"title":"List threads and messages on an inbox","description":"Returns threads on the inbox, newest activity first, each with its messages\nand stored per-thread metrics. Paging is over **threads**, not individual\nmessages.\n\nThe window filters on the thread's last message time and `dateTo` is\nexclusive. Automated/junk threads are excluded unless `includeJunk=true`.\n\n`sentVia` indicates whether an outbound was composed in Aptly (`aptly`) or\nsent from the user's own mail client and synced in (`native`). Inbound\nmessages are always `null`.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/inboxes/{channelId}/messages","href":"/api-reference/inboxes/list-threads-and-messages-on-an-inbox"},{"title":"Conversation analytics for an inbox","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/inboxes/{channelId}/analytics","href":"/api-reference/inboxes/conversation-analytics-for-an-inbox"},{"title":"Activity history for an inbox","description":"What happened on the inbox's threads, newest first: status changes,\nassignments, folder moves, topic edits and email sends by users, email opens\nby recipients, and automation runs.\n\nWithout `streamId`, history covers the inbox's 100 most recently active\nthreads; pass `streamId` to read one thread (including older ones). With\n`userId`, only entries that user performed are returned, so email opens and\nautomation runs (which have no user actor) are left out.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/inboxes/{channelId}/history","href":"/api-reference/inboxes/activity-history-for-an-inbox"},{"title":"Volume and response-time trends for an inbox","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/inboxes/{channelId}/trends","href":"/api-reference/inboxes/volume-and-response-time-trends-for-an-inbox"},{"title":"Volume health for an inbox against its own baseline","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/inboxes/{channelId}/health","href":"/api-reference/inboxes/volume-health-for-an-inbox-against-its-own-baseline"},{"title":"List unsent drafts on an inbox","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/inboxes/{channelId}/drafts","href":"/api-reference/inboxes/list-unsent-drafts-on-an-inbox"}]},{"group":"Schema","pages":[{"title":"Get board schema","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/schema/{boardId}","href":"/api-reference/schema/get-board-schema"}]},{"group":"Boards","pages":[{"title":"List boards","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/boards","href":"/api-reference/boards/list-boards"},{"title":"Create a board","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/boards","href":"/api-reference/boards/create-a-board"}]},{"group":"Cards","pages":[{"title":"List cards","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/{boardId}/list","href":"/api-reference/cards/list-cards"},{"title":"List cards (deprecated)","deprecated":true,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}","href":"/api-reference/cards/list-cards-deprecated"},{"title":"Create or update a card","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/{boardId}","href":"/api-reference/cards/create-or-update-a-card"},{"title":"Get a card","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/{cardId}","href":"/api-reference/cards/get-a-card"},{"title":"Archive a card","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/board/{boardId}/{cardId}","href":"/api-reference/cards/archive-a-card"},{"title":"List comments on a card","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/{cardId}/comments","href":"/api-reference/cards/list-comments-on-a-card"},{"title":"List contacts linked to a card","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/{cardId}/contacts","href":"/api-reference/cards/list-contacts-linked-to-a-card"},{"title":"Add or update a comment","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/{boardId}/{cardId}/comment","href":"/api-reference/cards/add-or-update-a-comment"},{"title":"Upload a file to a card","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/{boardId}/{cardId}/file","href":"/api-reference/cards/upload-a-file-to-a-card"}]},{"group":"Board","pages":[{"title":"Archive a board","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/board/{boardId}","href":"/api-reference/board/archive-a-board"},{"title":"List merge fields for a board","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/merge-fields","href":"/api-reference/board/list-merge-fields-for-a-board"},{"title":"List users who can open a board","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/users","href":"/api-reference/board/list-users-who-can-open-a-board"},{"title":"Add a tab view","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/{boardId}/configuration/tabViews","href":"/api-reference/board/add-a-tab-view"},{"title":"Add a tab view (legacy)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/{boardId}/tabView","href":"/api-reference/board/add-a-tab-view-legacy"},{"title":"Verify a delegate token","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/verify-user","href":"/api-reference/board/verify-a-delegate-token"},{"title":"Set or update the board's webhook","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/{boardId}/webhook","href":"/api-reference/board/set-or-update-the-boards-webhook"},{"title":"Remove the board's webhook","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/board/{boardId}/webhook","href":"/api-reference/board/remove-the-boards-webhook"},{"title":"Get full board configuration","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/configuration","href":"/api-reference/board/get-full-board-configuration"},{"title":"List board automations","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/configuration/automations","href":"/api-reference/board/list-board-automations"},{"title":"Create an automation","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/{boardId}/configuration/automations","href":"/api-reference/board/create-an-automation"},{"title":"List create-card rules","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/configuration/card-rules","href":"/api-reference/board/list-create-card-rules"},{"title":"Get board options","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/configuration/options","href":"/api-reference/board/get-board-options"},{"title":"List board fields","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/configuration/fields","href":"/api-reference/board/list-board-fields"},{"title":"Add a field","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/{boardId}/configuration/fields","href":"/api-reference/board/add-a-field"},{"title":"Add a mirror field","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/{boardId}/configuration/mirror-fields","href":"/api-reference/board/add-a-mirror-field"},{"title":"Update a field","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/board/{boardId}/configuration/fields/{fieldUuid}","href":"/api-reference/board/update-a-field"},{"title":"Delete a field","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/board/{boardId}/configuration/fields/{fieldUuid}","href":"/api-reference/board/delete-a-field"},{"title":"Reorder fields","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/board/{boardId}/configuration/field-order","href":"/api-reference/board/reorder-fields"},{"title":"List board field groups","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/configuration/groups","href":"/api-reference/board/list-board-field-groups"},{"title":"Create a field group","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/{boardId}/configuration/groups","href":"/api-reference/board/create-a-field-group"},{"title":"Update a field group","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/board/{boardId}/configuration/groups/{groupUuid}","href":"/api-reference/board/update-a-field-group"},{"title":"Get the create-card form order","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/configuration/start-card-order","href":"/api-reference/board/get-the-create-card-form-order"},{"title":"Set the create-card form order","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/board/{boardId}/configuration/start-card-order","href":"/api-reference/board/set-the-create-card-form-order"},{"title":"Get board access settings","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/configuration/shares","href":"/api-reference/board/get-board-access-settings"},{"title":"Get board identity fields","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/configuration/theme","href":"/api-reference/board/get-board-identity-fields"},{"title":"Update board identity fields","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /api/board/{boardId}/configuration/theme","href":"/api-reference/board/update-board-identity-fields"},{"title":"List board filters","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/configuration/filters","href":"/api-reference/board/list-board-filters"}]},{"group":"Company","pages":[{"title":"Get company info","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/company/info","href":"/api-reference/company/get-company-info"}]},{"group":"Contacts","pages":[{"title":"Get conversations for contacts","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/contacts/conversations","href":"/api-reference/contacts/get-conversations-for-contacts"},{"title":"Get contact conversations","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/contacts/{contactId}/conversations","href":"/api-reference/contacts/get-contact-conversations"},{"title":"List contacts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/contacts","href":"/api-reference/contacts/list-contacts"},{"title":"Create or update a contact","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/contacts","href":"/api-reference/contacts/create-or-update-a-contact"},{"title":"Look up contacts by email","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/contacts/by-email","href":"/api-reference/contacts/look-up-contacts-by-email"},{"title":"Initiate contact email verification","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/contacts/verify-email","href":"/api-reference/contacts/initiate-contact-email-verification"},{"title":"Confirm contact email verification","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/contacts/verify-email/{requestId}/confirm","href":"/api-reference/contacts/confirm-contact-email-verification"},{"title":"Get a contact","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/contacts/{contactId}","href":"/api-reference/contacts/get-a-contact"},{"title":"Update a contact","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/contacts/{contactId}","href":"/api-reference/contacts/update-a-contact"},{"title":"Get a contact's sentiment history","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/contacts/{contactId}/sentiment","href":"/api-reference/contacts/get-a-contacts-sentiment-history"}]},{"group":"Knowledge","pages":[{"title":"Create a knowledge document","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/knowledge/create","href":"/api-reference/knowledge/create-a-knowledge-document"},{"title":"List knowledge documents","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/knowledge/list","href":"/api-reference/knowledge/list-knowledge-documents"},{"title":"Get the knowledge document tree","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/knowledge/tree","href":"/api-reference/knowledge/get-the-knowledge-document-tree"},{"title":"List a knowledge document's direct children","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/knowledge/{id}/children","href":"/api-reference/knowledge/list-a-knowledge-documents-direct-children"},{"title":"List saved knowledge document versions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/knowledge/{id}/history","href":"/api-reference/knowledge/list-saved-knowledge-document-versions"},{"title":"Read a saved knowledge document version","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/knowledge/{id}/history/{versionId}","href":"/api-reference/knowledge/read-a-saved-knowledge-document-version"},{"title":"Get a knowledge document","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/knowledge/{id}","href":"/api-reference/knowledge/get-a-knowledge-document"},{"title":"Update a knowledge document","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/knowledge/{id}","href":"/api-reference/knowledge/update-a-knowledge-document"}]},{"group":"Email","pages":[{"title":"Create an email draft","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/email/create-draft","href":"/api-reference/email/create-an-email-draft"},{"title":"Send an email","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/email/send","href":"/api-reference/email/send-an-email"}]},{"group":"App","pages":[{"title":"Verify a delegate token (keyless)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/verify","href":"/api-reference/app/verify-a-delegate-token-keyless"},{"title":"Get credential info","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/me","href":"/api-reference/app/get-credential-info"}]},{"group":"Templates","pages":[{"title":"List templates","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/templates","href":"/api-reference/templates/list-templates"},{"title":"Create a template","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/templates","href":"/api-reference/templates/create-a-template"},{"title":"Get a template","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/templates/{id}","href":"/api-reference/templates/get-a-template"},{"title":"Update a template","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/templates/{id}","href":"/api-reference/templates/update-a-template"}]},{"group":"Tasks","pages":[{"title":"Search tasks","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tasks/search","href":"/api-reference/tasks/search-tasks"},{"title":"Create a task","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tasks","href":"/api-reference/tasks/create-a-task"},{"title":"Update many tasks","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tasks/bulk-update","href":"/api-reference/tasks/update-many-tasks"},{"title":"Get a task by ID","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tasks/{taskId}","href":"/api-reference/tasks/get-a-task-by-id"},{"title":"Update a task","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/tasks/{taskId}","href":"/api-reference/tasks/update-a-task"}]},{"group":"RoutingGroups","pages":[{"title":"List routing groups","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/routing-groups","href":"/api-reference/routinggroups/list-routing-groups"},{"title":"Create a routing group","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/routing-groups/create","href":"/api-reference/routinggroups/create-a-routing-group"},{"title":"Update a routing group","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/routing-groups/{id}","href":"/api-reference/routinggroups/update-a-routing-group"},{"title":"Archive a routing group","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/routing-groups/{id}/archive","href":"/api-reference/routinggroups/archive-a-routing-group"}]},{"group":"Files","pages":[{"title":"Get a presigned URL for a direct file upload","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/files/upload-url","href":"/api-reference/files/get-a-presigned-url-for-a-direct-file-upload"},{"title":"Finalize a direct file upload","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/files/upload-complete","href":"/api-reference/files/finalize-a-direct-file-upload"}]},{"group":"WebForms","pages":[{"title":"Submit a web form","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/web-forms/{formId}","href":"/api-reference/webforms/submit-a-web-form"}]},{"group":"Tours","pages":[{"title":"List tour feedback","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tours/feedback","href":"/api-reference/tours/list-tour-feedback"},{"title":"Get one showing's tour feedback","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tours/{showingId}/feedback","href":"/api-reference/tours/get-one-showings-tour-feedback"}]},{"group":"Docs","pages":[{"title":"Fetch this OpenAPI spec","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/docs/openapi","href":"/api-reference/docs/fetch-this-openapi-spec"}]}]}]},{"tab":"Aptly Portal","icon":"door-closed","pages":[{"title":"Aptly Portal","href":"/portal/introduction"}]}]},"basePath":"","title":"Conversation analytics for an inbox - Aptly API","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C8RPHPxo.js","utils-0BK-9q6z.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DfjzsUJT.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B4v9psJ4.js","snippetPresets-CpTQv-Ez.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-BNP-Fvr0.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BSgu6h1D.js","shallow-Biv1i9Gs.js","getApiPlaygroundDisplay-BoGOXhtF.js","CodeSnippet-DvQoT18_.js","CodeSnippets-Dnpa15xT.js","Page-Buji1S4J.js","getPastedJson-xAIyhUFE.js","icon-S6FBih11.js","MethodPill-SaYeUZyk.js","DuplicateIcon-Cs-p3v2Q.js","createIcon-DjCFEoHq.js","DynamicMarkdown-BcnBltEQ.js","SectionHeading-BUBl0eEF.js","axios-vUo_bRtp.js","Markdown-h4cOoD8d.js","clsx-B2v50t8t.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DJnKvr0g.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BHrrjR1K.js"]}