> For a complete documentation index, fetch https://docs.voximplant.ai/llms.txt

# GetACDQueueStatistics

POST https://api.voximplant.com/platform_api/GetACDQueueStatistics

Get statistics for calls distributed to users (referred as 'operators') via the 'queue' distribution system. This method can filter statistic based on operator ids, queue ids and date-time interval. It can also group results by day or hour.

Allowed roles: `Owner`, `Admin`, `Developer`, `Supervisor`, `User manager`.

**Example request:** Get WT and TT statistics for the queue from the specified date.

Reference: https://docs.voximplant.ai/api-reference/management-api/reference/queues/get-acd-queue-statistics

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: management-api
  version: 1.0.0
paths:
  /GetACDQueueStatistics:
    post:
      operationId: get-acd-queue-statistics
      summary: GetACDQueueStatistics
      description: >-
        Get statistics for calls distributed to users (referred as 'operators')
        via the 'queue' distribution system. This method can filter statistic
        based on operator ids, queue ids and date-time interval. It can also
        group results by day or hour.


        Allowed roles: `Owner`, `Admin`, `Developer`, `Supervisor`, `User
        manager`.


        **Example request:** Get WT and TT statistics for the queue from the
        specified date.
      tags:
        - subpackage_queues
      parameters:
        - name: from_date
          in: query
          description: >-
            Date and time of statistics interval begin. Time zone is UTC, format
            is 24-h 'YYYY-MM-DD HH:mm:ss'
          required: true
          schema:
            type: string
        - name: to_date
          in: query
          description: >-
            Date and time of statistics interval begin. Time zone is UTC, format
            is 24-h 'YYYY-MM-DD HH:mm:ss'
          required: false
          schema:
            type: string
            default: current date and time
        - name: abbreviation
          in: query
          description: >-
            Whether key names in returned JSON are abbreviated to reduce
            response byte size. The abbreviations are: 'WT' for 'WaitingTime',
            'SA' for 'SpeedOfAnswer', 'AT' is for 'AbandonmentTime', 'HT' is for
            'HandlingTime', 'TT' is for 'TalkTime', 'ACW' is for
            'AfterCallWork', 'QL' is for 'QueueLength', 'TC' is for
            'TotalCalls', 'AC' is for 'AnsweredCalls', 'UAC' is for
            'UnansweredCalls', 'RC' is for 'RejectedCalls', 'SL' is for
            'ServiceLevel', 'TWT' is for 'TotalWaitingTime', 'TST' is for
            'TotalSubmissionTime', 'TAT' is for 'TotalAbandonmentTime', 'THT' is
            for 'TotalHandlingTime', 'TTT' is for 'TotalTalkTime', 'TACW' is for
            'TotalAfterCallWork'
          required: false
          schema:
            type: boolean
            default: true
        - name: acd_queue_id
          in: query
          description: >-
            The ACD queue ID list separated by semicolons (;). Use the 'all'
            value to select all ACD queues
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: report
          in: query
          description: >-
            List of item names abbreviations separated by semicolons (;).
            Returned JSON includes keys only for the selected items. Special
            'all' value defines all possible items, see [ACDQueueStatisticsType]
            for a complete list. See 'abbreviation' description for complete
            abbreviation list
          required: false
          schema:
            type: array
            items:
              type: string
        - name: aggregation
          in: query
          description: >-
            Specifies how records are grouped by date and time. If set to 'day',
            the criteria is a day number. If set to 'hour_of_day', the criteria
            is a 60-minute interval within a day. If set to 'hour', the criteria
            is both day number and 60-minute interval within that day. If set to
            'none', records are not grouped by date and time
          required: false
          schema:
            type: string
            default: none
        - name: Authorization
          in: header
          description: >-
            Voximplant Management API uses signed JWT tokens generated from your
            service-account private key. Pass the token in the `Authorization`
            header as a Bearer value:


            ```

            Authorization: Bearer $VOXIMPLANT_TOKEN

            ```


            See [Authorization](/api-reference/management-api/authorization) for
            ready-to-copy snippets in bash, Python, Node.js and Go that turn
            your `credentials.json` into a token.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/queues_GetACDQueueStatistics_Response_200'
servers:
  - url: https://api.voximplant.com/platform_api
components:
  schemas:
    ACDStatisticsItemType:
      type: object
      properties:
        min:
          type: integer
          description: Minimum value over the aggregated interval, in seconds
        avg:
          type: integer
          description: Average value over the aggregated interval, in seconds
        max:
          type: integer
          description: Maximum value over the aggregated interval, in seconds
        count:
          type: integer
          description: Samples count over the aggregated interval
        sum:
          type: integer
          description: Sum of all samples over the aggregated interval, in seconds
      description: >-
        Individual statistics item in the [ACDOperatorStatisticsType],
        [ACDQueueStatisticsType], and [ACDOperatorStatusStatisticsDetail]
        records.
      title: ACDStatisticsItemType
    ACDStatisticsCalls:
      type: object
      properties:
        count:
          type: integer
          description: Absolute number of calls
        percent:
          type: integer
          description: >-
            Percentage of answered/rejected/unanswered calls, is counted against
            total number of calls
      description: Individual statistics item in the [ACDQueueStatisticsType] record.
      title: ACDStatisticsCalls
    ACDQueueStatisticsServiceLevelType:
      type: object
      properties:
        acceptable_waiting_time:
          type: integer
          description: >-
            Maximum time, is seconds, user is waiting operator for a given
            service level
        call_count:
          type: integer
          description: Number of calls for a given service level
        service_level:
          type: integer
          description: >-
            Percentage of calls for a given service level, from 0
            (non-inclusive) up to 1 (all calls)
      description: >-
        Individual service level description used in the
        [ACDQueueStatisticsType].
      title: ACDQueueStatisticsServiceLevelType
    ACDQueueStatisticsType:
      type: object
      properties:
        date:
          type: string
          description: >-
            Date string as returned by the Management API.


            If aggregation is enabled, contains UTC date for the results in 24-h
            'YYYY-MM-DD' format
        hour:
          type: integer
          description: >-
            If aggregation is enabled, contains the 60-minute interval number
            from 1 to 24
        WT:
          $ref: '#/components/schemas/ACDStatisticsItemType'
          description: >-
            Delay between user called and operator answered the call (or call is
            terminated). Name is 'WaitingTime' if 'abbreviation' is set to
            'false'
        SA:
          $ref: '#/components/schemas/ACDStatisticsItemType'
          description: >-
            Delay between a call started to ring and operator answered it. Name
            is 'SpeedOfAnswer' if 'abbreviation' is set to 'false'
        AT:
          $ref: '#/components/schemas/ACDStatisticsItemType'
          description: >-
            Time between user called Voximplant cloud and time they disconnect
            not reaching the operator. Name is 'AbandonmentTime' if
            'abbreviation' is set to 'false'
        HT:
          $ref: '#/components/schemas/ACDStatisticsItemType'
          description: >-
            Sum of 'TalkTime' and 'AfterCallWork'. Name is 'HandlingTime' if
            'abbreviation' is set to 'false'
        TT:
          $ref: '#/components/schemas/ACDStatisticsItemType'
          description: >-
            Time between operator answering and ending a call. Name is
            'TalkTime' if 'abbreviation' is set to 'false'
        ACW:
          $ref: '#/components/schemas/ACDStatisticsItemType'
          description: >-
            Time between operator ended a call and changed status to a one
            different from the 'AFTER_SERVICE'. This time is tracked only if
            operator changed status to 'AFTER_SERVICE' after the call. Name is
            'AfterCallWork' if 'abbreviation' is set to 'false'
        QL:
          $ref: '#/components/schemas/ACDStatisticsItemType'
          description: >-
            How many users are in the queue. Name is 'QueueLength' if
            'abbreviation' is set to 'false'
        TC:
          type: integer
          description: >-
            Total number of calls. Name is 'TotalCalls' if 'abbreviation' is set
            to 'false'
        AC:
          type: array
          items:
            $ref: '#/components/schemas/ACDStatisticsCalls'
          description: >-
            Number of answered calls. Name is 'AnsweredCalls' if 'abbreviation'
            is set to 'false'
        UAC:
          type: array
          items:
            $ref: '#/components/schemas/ACDStatisticsCalls'
          description: >-
            Number of unanswered calls. Name is 'UnansweredCalls' if
            'abbreviation' is set to 'false'
        RC:
          type: array
          items:
            $ref: '#/components/schemas/ACDStatisticsCalls'
          description: >-
            Number of calls rejected by the ACD. Call is rejected if all
            operators are offline or banned, or queue length is exceeded, or
            predicted answer time exceeds maximum specified for the query. Name
            is 'RejectedCalls' if 'abbreviation' is set to 'false'
        SL:
          type: array
          items:
            $ref: '#/components/schemas/ACDQueueStatisticsServiceLevelType'
          description: >-
            List of service levels. Name is 'ServiceLevel' if 'abbreviation' is
            set to 'false'
        TWT:
          type: integer
          description: >-
            Sum of 'WaitingTime', in seconds. Name is 'TotalWaitingTime' if
            'abbreviation' is set to 'false'
        TST:
          type: integer
          description: >-
            Sum of 'SpeedOfAnswer', in seconds. Name is 'TotalSubmissionTime' if
            'abbreviation' is set to 'false'
        TAT:
          type: integer
          description: >-
            Sum for all times between user called Voximplant cloud and time they
            disconnect not reaching the operator, in seconds. Name is
            'TotalAbandonmentTime' if 'abbreviation' is set to 'false'
        THT:
          type: integer
          description: >-
            Sum of 'HandlingTime', in seconds. Name is 'TotalHandlingTime' if
            'abbreviation' is set to 'false'
        TTT:
          type: integer
          description: >-
            Sum of 'TalkTime', in seconds. Name is 'TotalTalkTime' if
            'abbreviation' is set to 'false'
        TACW:
          type: integer
          description: >-
            Sum of 'AfterCallWork', in seconds. Name is 'TotalAfterCallWork' if
            'abbreviation' is set to 'false'
      description: Individual record in the [ACDOperatorAggregationGroupType] group.
      title: ACDQueueStatisticsType
    queues_GetACDQueueStatistics_Response_200:
      type: object
      properties:
        result:
          type: array
          items:
            $ref: '#/components/schemas/ACDQueueStatisticsType'
          description: >-
            List of records grouped grouped by date according to the
            'aggregation' method call argument
      title: queues_GetACDQueueStatistics_Response_200
  securitySchemes:
    JwtAuth:
      type: http
      scheme: bearer
      description: >-
        Voximplant Management API uses signed JWT tokens generated from your
        service-account private key. Pass the token in the `Authorization`
        header as a Bearer value:


        ```

        Authorization: Bearer $VOXIMPLANT_TOKEN

        ```


        See [Authorization](/api-reference/management-api/authorization) for
        ready-to-copy snippets in bash, Python, Node.js and Go that turn your
        `credentials.json` into a token.

```

## SDK Code Examples

```python Queue statistics
import requests

url = "https://api.voximplant.com/platform_api/GetACDQueueStatistics"

querystring = {"from_date":"2026-04-28 17:30:00"}

headers = {"Authorization": "Bearer <token>"}

response = requests.post(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Queue statistics
const url = 'https://api.voximplant.com/platform_api/GetACDQueueStatistics?from_date=2026-04-28+17%3A30%3A00';
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Queue statistics
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.voximplant.com/platform_api/GetACDQueueStatistics?from_date=2026-04-28+17%3A30%3A00"

	req, _ := http.NewRequest("POST", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Queue statistics
require 'uri'
require 'net/http'

url = URI("https://api.voximplant.com/platform_api/GetACDQueueStatistics?from_date=2026-04-28+17%3A30%3A00")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Queue statistics
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.voximplant.com/platform_api/GetACDQueueStatistics?from_date=2026-04-28+17%3A30%3A00")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Queue statistics
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.voximplant.com/platform_api/GetACDQueueStatistics?from_date=2026-04-28+17%3A30%3A00', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Queue statistics
using RestSharp;

var client = new RestClient("https://api.voximplant.com/platform_api/GetACDQueueStatistics?from_date=2026-04-28+17%3A30%3A00");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Queue statistics
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.voximplant.com/platform_api/GetACDQueueStatistics?from_date=2026-04-28+17%3A30%3A00")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```