Conversation volume
How many started each day, which door they came through, how the window’s conversations ended up, and what the agent reached for.
GET
/analytics/conversationsAuthorization
AuthorizationBearer token · headerrequired`MEDIAN_KEY` from Settings under API, or an MCP OAuth access token. A key acts as the organization; a token acts as the person who approved it.
Query parameters
fromintegerThe window's start, unix ms. Defaults to `days` ago.
daysintegerDaily buckets after `from`. Default 30.
Allowed:
73090Responses
200The window, bucketed by day.
perDayinteger[]perDayFinishedinteger[]perDayFinishedByAgentinteger[]totalintegerbyChannelobjectShow propertiesHide properties
widgetintegeremailintegerdiscordintegeroutcomesobjectShow propertiesHide properties
openintegerfinishedintegerfinishedByAgentintegerfinishedByPeopleintegerfunnelobjectShow propertiesHide properties
startedintegeragentRepliedintegercustomerReturnedintegerhandedOffintegerfinishedintegerresolvedintegerclosedintegersentimentobjectShow propertiesHide properties
positiveintegerneutralintegernegativeintegerwaitingintegeractionsobjectWhat the agent reached for, then how those threads ended. `primary` is the middle column. `toOutcome` is the next split. The remaining counts overlap.
Show propertiesHide properties
primaryobjectShow propertiesHide properties
usedToolintegerfiledReportintegerlookedUpintegerjustRepliedintegerneverRepliedintegersearchedintegerusedToolintegerfiledintegertoOutcomeobjectShow propertiesHide properties
usedToolobjectShow propertiesHide properties
byAgentintegerbyPeopleintegeropenintegerfiledReportobjectShow propertiesHide properties
byAgentintegerbyPeopleintegeropenintegerlookedUpobjectShow propertiesHide properties
byAgentintegerbyPeopleintegeropenintegerjustRepliedobjectShow propertiesHide properties
byAgentintegerbyPeopleintegeropenintegerneverRepliedobjectShow propertiesHide properties
byAgentintegerbyPeopleintegeropenintegerperDayHandedOffinteger[]perDayCustomerReturnedinteger[]perDayByChannelobjectShow propertiesHide properties
widgetinteger[]emailinteger[]discordinteger[]byHourinteger[]Started per hour of the window's day, midnight first. 24 entries.
topPagesobject[]Where conversations began, busiest pages first.
Show propertiesHide properties
Array of
objectpathstringcountintegercustomersobjectHow many different people wrote in, and how many wrote more than once.
Show propertiesHide properties
distinctintegerrepeatintegerresolveTimeobjectFirst message to last, over finished conversations: the median in milliseconds, and a histogram of under five minutes, five to thirty, thirty to two hours, two hours to a day, and longer.
Show propertiesHide properties
medianinteger | nullbucketsinteger[]cappedboolean400The request is malformed, and the message names the field.
errorobjectShow propertiesHide properties
codestringmessagestring401The bearer token is missing, revoked, or expired.
errorobjectShow propertiesHide properties
codestringmessagestring429Too many requests. Wait the seconds in `Retry-After`. Limits depend on the plan. See [rate limits](/api/errors-and-limits#rate-limits).
errorobjectShow propertiesHide properties
codestringmessagestringRequest
curl -X GET "https://api.median.sh/v1/analytics/conversations" \
-H "Authorization: Bearer YOUR_TOKEN"const response = await fetch("https://api.median.sh/v1/analytics/conversations", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_TOKEN"
}
});Response
{
"perDay": [
0
],
"perDayFinished": [
0
],
"perDayFinishedByAgent": [
0
],
"total": 0,
"byChannel": {
"widget": 0,
"email": 0,
"discord": 0
},
"outcomes": {
"open": 0,
"finished": 0,
"finishedByAgent": 0,
"finishedByPeople": 0
},
"funnel": {
"started": 0,
"agentReplied": 0,
"customerReturned": 0,
"handedOff": 0,
"finished": 0,
"resolved": 0,
"closed": 0
},
"sentiment": {
"positive": 0,
"neutral": 0,
"negative": 0,
"waiting": 0
},
"actions": {
"primary": {
"usedTool": 0,
"filedReport": 0,
"lookedUp": 0,
"justReplied": 0,
"neverReplied": 0
},
"searched": 0,
"usedTool": 0,
"filed": 0,
"toOutcome": {
"usedTool": {
"byAgent": 0,
"byPeople": 0,
"open": 0
},
"filedReport": {
"byAgent": 0,
"byPeople": 0,
"open": 0
},
"lookedUp": {
"byAgent": 0,
"byPeople": 0,
"open": 0
},
"justReplied": {
"byAgent": 0,
"byPeople": 0,
"open": 0
},
"neverReplied": {
"byAgent": 0,
"byPeople": 0,
"open": 0
}
}
},
"perDayHandedOff": [
0
],
"perDayCustomerReturned": [
0
],
"perDayByChannel": {
"widget": [
0
],
"email": [
0
],
"discord": [
0
]
},
"byHour": [
0
],
"topPages": [
{
"path": "string",
"count": 0
}
],
"customers": {
"distinct": 0,
"repeat": 0
},
"resolveTime": {
"median": 0,
"buckets": [
0
]
},
"capped": true
}{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}