The Real Time Chat API provides REST endpoints if you want to pull data on demand. If you want to monitor or process metrics in real time, consider using the Streaming API instead.

The REST API uses the following path:

https://rtm.zopim.com/stream/{resource}

The path differs from the Chat API path, which is as follows:

https://{subdomain}.zendesk.com/api/v2/chat/{resource}

Data Initialization

If data has not yet been computed for your account or after a long period of inactivity, the REST API will temporarily return Not Computed response message.

HTTP/1.1 200 OKContent-Type: application/json
{  "status_code": 200,  "message": "Not Computed!"}

Get All Chat Metrics

GET /stream/chats

Captures all the chat activity for your account.

Allowed for

  • Owner
  • Administrator
  • Agent

Using curl

curl https://rtm.zopim.com/stream/chats \  -H "Authorization: Bearer {access token}"
Example Response
HTTP/1.1 200 OKContent-Type: application/json
{  "content": {    "topic": "chats",    "data": {      "incoming_chats": 2,      "assigned_chats": 0,      "waiting_time_avg": 12,      "missed_chats": {        "30": 1,        "60": 1      },      "active_chats": 7,      ...    },    "type": "update",    "department_id": null  },  "status_code": 200}

Get Chat Metric

GET /stream/chats/{metric_key}

Returns a single chat metric for your account. See Chat Metrics for the metric key.

Allowed for

  • Owner
  • Administrator
  • Agent

Using curl

curl https://rtm.zopim.com/stream/chats/{metric_key} \  -H "Authorization: Bearer {access token}"

Parameters

NameTypeInRequiredDescription
metric_keystringPathtrueIdentifier for the metric
Example Response

GET /stream/chats/missed_chats

HTTP/1.1 200 OKContent-Type: application/json
{  "content": {    "topic": "chats",    "data": {      "missed_chats": {        "30": 1,        "60": 2      }    },    "type": "update",    "department_id": null  },  "status_code": 200}

Get Chat Metrics by Department

  • GET /stream/chats?department_id={department_id}
  • GET /stream/chats/{metric_key}?department_id={department_id}

Captures the chat activity for a specific department.

To list all the departments on your account or to fetch a department by name, use the Departments API.

To capture activity for the chats which do not belong to any department, use department_id=0.

Allowed for

  • Owner
  • Administrator
  • Agent

Parameters

NameTypeInRequiredDescription
metric_keystringPathtrueIdentifier for the metric
department_idintegerQuerytrueIdentifier for a department

Using curl

curl https://rtm.zopim.com/stream/chats/{metric_key}?department_id={department_id} \  -H "Authorization: Bearer {access token}"

Example Response

GET /stream/chats?department_id=5

HTTP/1.1 200 OKContent-Type: application/json
{  "content": {    "topic": "chats",    "data": {      "incoming_chats": 0,      "waiting_time_avg": null,      "missed_chats": {        "30": 0,        "60": 0      },      ...    },    "type": "update",    "department_id": 5  },  "status_code": 200}

Get Chat Metrics for a Specific Time Window

  • GET /stream/chats?window={window_size_in_minutes}
  • GET /stream/chats/{metric_key}?window={window_size_in_minutes}

Filters the chat metrics for the given time window.

See Chat Metrics for the metrics associated to a time window. Other metrics remains unaffected.

Available time windows are 30 minutes and 60 minutes.

Allowed for

  • Owner
  • Administrator
  • Agent

Using curl

curl https://rtm.zopim.com/stream/chats/{metric_key}?window={window_size_in_minutes} \  -H "Authorization: Bearer {access token}"

Parameters

NameTypeInRequiredDescription
metric_keystringPathtrueIdentifier for the metric
window_size_in_minutesintegerQuerytruePossible values are 30 and 60.

Example Response

GET /stream/chats/missed_chats?window=30

HTTP/1.1 200 OKContent-Type: application/json
{  "content": {    "topic": "chats",    "data": {      "missed_chats": {        "30": 1      }    },    "type": "update",    "department_id": null  },  "status_code": 200}

Get Agent Status Counts

GET /stream/agents

Returns the number of agents who are online, away, and invisible in your account.

Allowed for

  • Owner
  • Administrator
  • Agent

Using curl

curl https://rtm.zopim.com/stream/agents \  -H "Authorization: Bearer {access token}"

Example Response

HTTP/1.1 200 OKContent-Type: application/json
{  "content": {    "topic": "agents",    "data": {      "agents_online": 27,      "agents_away": 1,      "agents_invisible": 1    },    "type": "update",    "department_id": null  },  "status_code": 200}

Get Agent Status Count

GET /stream/agents/{metric_key}

Returns the number of agents who are either online, away, or invisible in your account. Specify the status with the metric key (agents_online, agents_away, agents_invisible). See Agent Metrics.

Allowed for

  • Owner
  • Administrator
  • Agent

Using curl

curl https://rtm.zopim.com/stream/agents/{metric_key} \  -H "Authorization: Bearer {access token}"

Parameters

NameTypeInRequiredDescription
metric_keystringPathtrueIdentifier for the metric

Example Response

GET /stream/agents/agents_online

HTTP/1.1 200 OKContent-Type: application/json
{  "content": {    "topic": "agents",    "data": {      "agents_online": 27    },    "type": "update",    "department_id": null  },  "status_code": 200}

Get Agent Status Counts by Department

  • GET /stream/agents?department_id={department_id}
  • GET /stream/agents/{metric_key}?department_id={department_id}

Returns the number of agents by status for a specific department.

To list all the departments on your account or to fetch a department by name, use the Departments API.

To count the agents who do not belong to any department, use department_id=0.

Allowed for

  • Owner
  • Administrator
  • Agent

Parameters

NameTypeInRequiredDescription
metric_keystringPathtrueIdentifier for the metric
department_idintegerQuerytrueIdentifier for a department

Using curl

curl https://rtm.zopim.com/stream/agents/{metric_key}?department_id={department_id} \  -H "Authorization: Bearer {access token}"

Example Response

GET /stream/agents?department_id=5

HTTP/1.1 200 OKContent-Type: application/json
{  "content": {    "topic": "agents",    "data": {      "agents_online": 26,      "agents_away": 0,      "agents_invisible": 1    },    "type": "update",    "department_id": 5  },  "status_code": 200}