Deskhero Developer Hub
Back to deskhero.com
Stats

Channels

Where tickets came from: channel, mailbox, language and the busiest requesters.

GET /api/{tenant:minlength(2)}/v{version:apiVersion}/stats/channels
Authorisation
Minimum role: USER

Request arguments

Name Type Source
group_idsInt32[]Query
timeframeENUM dashboard_kpi_timeframe
fromDateTime
toDateTime
compareBoolean
Request body example

Response

Status
200 (OK)
Type
DTO_stats_channels
Wrapper
DTO_response_wrap
Other statuses
400 (BadRequest), 403 (Forbidden)
Response body example
DTO_stats_channels
NameTypeReadOnlyDescription
channelsDTO_stats_term[]Channels
mailboxesDTO_stats_term[]Mailboxes
languagesDTO_stats_term[]Languages
requestersDTO_stats_requester[]Requesters
periodDTO_stats_periodPeriod
created_totalDTO_stats_metricTickets created in the window, the denominator for every share on the tab.
channel_seriesDTO_stats_series[]Tickets per bucket per channel.
sla_availableBooleanTrue when the SLA column on the requester table should be rendered.
DTO_stats_term
NameTypeReadOnlyDescription
idInt32Entity id when the term refers to one (group, status, mailbox); 0 otherwise.
keyStringStable key for terms that are enums rather than entities ("EMAIL", "CHAT_BOT").
labelStringLabel
countInt32How many tickets fell into this term.
previous_countInt32 (nullable)The term's own count in the comparison window. Null when not comparing.
valueDouble (nullable)A secondary metric where the card shows one (average seconds, a percentage).
DTO_stats_requester
NameTypeReadOnlyDescription
emailStringEmail
nameStringName
ticketsInt32Tickets
average_first_reply_secDouble (nullable)Average first reply sec
first_reply_sla_pctDouble (nullable)First reply sla pct
DTO_stats_period
NameTypeReadOnlyDescription
fromDateTimeFirst day of the window, workspace-local.
toDateTimeLast day of the window, workspace-local.
previous_fromDateTime (nullable)First day of the comparison window. Null when not comparing.
previous_toDateTime (nullable)Last day of the comparison window. Null when not comparing.
time_zoneStringIANA id of the zone every bucket and boundary was cut in.
granularityString"hour", "day" or "month" - the width of one point in every series below.
timeframeENUM dashboard_kpi_timeframeWhich preset produced this window (CUSTOM when from/to were supplied).
compareBooleanTrue when the previous-period figures are populated.
DTO_stats_metric
NameTypeReadOnlyDescription
currentDouble (nullable)Current
previousDouble (nullable)The same figure over the previous window. Null when not comparing, or when there is no history.
DTO_stats_series
NameTypeReadOnlyDescription
keyStringStable key the frontend maps to a colour and a translated label.
labelStringServer-side fallback label, used when the key is dynamic (a group or status name).
pointsDTO_stats_point[]Points
DTO_stats_point
NameTypeReadOnlyDescription
labelStringShort human label for the axis ("Jul 20", "10:00", "Jul 2026").
dateDateTimeStart of the bucket, workspace-local.
valueDouble (nullable)Null means "no data in this bucket", which a chart draws as a gap, not a zero.
ENUM dashboard_kpi_timeframe
ValueNameDescription
0UNKNOWNUNKNOWN
1TODAYTODAY
2YESTERDAYYESTERDAY
3THIS_WEEKTHIS_WEEK
4LAST_4_WEEKSLAST_4_WEEKS
5LAST_12_WEEKSLAST_12_WEEKS
6ALL_TIMEALL_TIME
7CUSTOMStats only: the caller supplies from and to instead. Resolving this without dates is an error, so the shared GetTimeFrame() extension deliberately refuses it.
8LAST_12_MONTHSLAST_12_MONTHS

Generated Aug 4, 2026 18:37