Menu

Get Enquiry Details

GET https://examplebaseURL.com/v1/api/apps/{appID}/data/enquiry-detail

Response Format

Parameter Type Description
id String The unique ID of the enquiry.
uniqueKey String You can skip this parameter (it is for internal use)
createdAt String The date and time of the enquiry record creation. The value must be in RFC3339 format, e.g. 2022-11-07T00:00:00.000Z.
svcID String The service account ID of the enquiry.
inquiry String The enquiry ID.
tag String The ID of the tag.
visitor String The ID of the visitor.
roomID String The room ID of the enquiry.
initChannel String The channel type of the enquiry. It can be "IM" (Instant Message) or "CALL".
omniType String The Omni-Channel Type of the enquiry. It must be "CINNOX".
ip String The IP address of the visitor.
language String The language of the enquiry. The result shown is the list in the following format: (ISO 639-1 Language Codes):(Language) Example: en (Language code of English in ISO 639-1): English (Language)
location String The location of the visitor. The result shown is the list in the following format: (Country represented by Two-letter country code based on ISO 3166-2) Example: VE. Country=Venezuela.
locationDetail.regionCode String The region code of the location of the visitor.
locationDetail.subdivision String The subdivision of the country.
locationDetail.city String The city where the enquiry comes from.
locationDetailprovince String The province where the enquiry comes from.
platform String The platform that visitors use for enquiry
status String The status of the enquiry. It can be "ongoing", "followed-up", "missed", or "closed".
displayCaseNumber String The display enquiry ID in the CINNOX Dashboard.
channel String The type of channel of the enquiry. It can be "Weblink", "VirtualNumber", "Email", "ThirdParty", "FACEBOOK", "WHATSAPP", "WECHAT", "LINE" or "WOZTELL".
destinationID String The IP of the destination.
destinationName String The name of the destination (Service Group).
destinationType String The type of the destinations. It can be "PHONE" (PSTN), "STAFF" (Staff Directory), "TRUNK" (SIP Truck) or "CHATBOT" (Chatbot).
destinationEndPoint String The destination endpoint is assigned to handle the enquiry. It can be "STAFF"(Staff), "CHATBOT"(Chatbot) or "IVR" (IVR).
handledType String It can be a Phone Number, SIP Trunk or Staff
handledTarget String The enquiry owner is represented as a Staff's EID or the phone number.
handledPartyName String Staff (agent) name
huntedStaffTargetHistory String List of Staff who could pick up this enquiry
type String Channel sub-type
id String Channel ID
maaiiDisplayName String Channel display name
name String Third-party display name
inquiryType String The enquiry type. It can be
updatedAt String Enquiry updated time
closedAt String Enquiry close time
inquiryGroup String Collapsed enquiries
transferredParty Array(object) Destination info that enquiry transferred to
pickedUpAt String Enquiry picked-up time
missedAt String Enquiry missed time
reopenedAt String Enquiry reopened time
handledPartyDepartmentID String Department id of the staff
attachment Boolean True = There is an attachment in the enquiry chat room. False = There is no attachment in the enquiry chat room. The attachment refers to the Chat History for the conversation in the enquiry chat room.
staffFirstName String The first name of the staff handling the enquiry.
staffLastName String The last name of the staff handling the enquiry.
visitorFirstName String The first name of the enquiry's visitor.
visitorLastName String The last name of the enquiry's visitor.
inquiryDeepLink String The link redirects the staff to the enquiry's chat room.
duration Number The duration in milliseconds for an enquiry which is being handled.
closeDuration Number The duration is in milliseconds for a closed enquiry.
labelIDs Array of strings The ID of the label used for the enquiry. The value = null when no label was applied to the enquiry. The value = Label ID when a label is applied to the enquiry.

šŸ“˜ Notice

  • For the labelIds
    • It is suggested to get the supported Label List before entering the value of the labelIds to ensure the value of the labelIds you enter is supported.
    • Please refer to the Get Label List section in our user manual for details about using Open API to get the updated Label List.
  • For the channel
    • You are suggested to get the supported Channel Type List before entering the value of the channel to ensure the value of the channel you enter is supported.
    • Please refer to the Get Channel Type List section in our user manual for the details about using Open API to get the updated Channel Type List.

Path Params

appID string required
App ID

Query Params

enquiryID string
The details of the enquiry you are required to get represented as an Enquiry ID. The Enquiry IDs are concatenated with commas like {enquiryID1},{enquiryID2},{enquiryID3}. The maximum number of the input enquiryID is 20.

labelIds string
The label represented as a Label ID applied to the enquiry. The Label IDs are concatenated with commas like {labelId1},{labelId2},{labelId3}. Please refer to the Notice for details.

channel string
The channel of the enquiry. The channel can be the Directory, weblink, VirtualNumber, Email, ThirdParty, FACEBOOK, WHATSAPP, WECHAT, LINE or WOZTELL. Please refer to the Notice for details.

startAt string
The start date and time of the enquiry. The value must be in RFC3339 format, e.g. 2022-11-07T00:00:00.000Z.

endAt string
The end date and time of the enquiry. The value must be in RFC3339 format, e.g. 2022-11-07T00:00:00.000Z.

offset int32 Defaults to 0
Skip the number of the shown data in the response. If the offset value is 10, the first 10 data will be skipped. The default value is 0.

limit int32
The number of data that will be returned, e.g. if the set limit is 10, 10 records returned in the response. The maximum value is 500.

Headers

Content-Type string
application/json

Authorization string
Bearer AppToken

Responses

🟢 200
RESPONSE BODY
json

šŸ”“ 400
RESPONSE BODY
object
code integer Defaults to 0
message string

Language

LANGUAGE: Shell

Shell: cURL Request Copy
curl --request GET \
     --url 'https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0' \
     --header 'Authorization: Bearer AppToken' \
     --header 'Content-Type: application/json' \
     --header 'accept: application/json'
Shell: HTTPie Request Copy
$ brew install httpie
http GET 'https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0' \
  Authorization:'Bearer AppToken' \
  Content-Type:application/json \
  accept:application/json

LANGUAGE: Node

Node: Axios Request Copy
$ npm install axios --save
import axios from 'axios';

const options = {
  method: 'GET',
  url: 'https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0',
  headers: {
    accept: 'application/json',
    'Content-Type': 'application/json',
    Authorization: 'Bearer AppToken'
  }
};

axios
  .request(options)
  .then(res => console.log(res.data))
  .catch(err => console.error(err));
Node: fetch Request Copy
const url = 'https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0';
const options = {
  method: 'GET',
  headers: {
    accept: 'application/json',
    'Content-Type': 'application/json',
    Authorization: 'Bearer AppToken'
  }
};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error(err));
Node: http Request Copy
const http = require('https');

const options = {
  method: 'GET',
  hostname: 'examplebaseurl.com',
  port: null,
  path: '/v1/api/apps/appID/data/enquiry-detail?offset=0',
  headers: {
    accept: 'application/json',
    'Content-Type': 'application/json',
    Authorization: 'Bearer AppToken'
  }
};

const req = http.request(options, function (res) {
  const chunks = [];

  res.on('data', function (chunk) {
    chunks.push(chunk);
  });

  res.on('end', function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.end();
Node: API Request Copy
$ npx api install "@cinnox2021/v7.3#45i1wk2km9l1e4hf"
import cinnox2021 from '@api/cinnox2021';

cinnox2021.getEnquiryDetail({offset: '0', appID: 'appID', Authorization: 'Bearer AppToken'})
  .then(({ data }) => console.log(data))
  .catch(err => console.error(err));

LANGUAGE: Ruby

Request Copy
require 'uri'
require 'net/http'

url = URI("https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0")

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

request = Net::HTTP::Get.new(url)
request["accept"] = 'application/json'
request["Content-Type"] = 'application/json'
request["Authorization"] = 'Bearer AppToken'

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

LANGUAGE: PHP

PHP: cURL Request Copy
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer AppToken",
    "Content-Type: application/json",
    "accept: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
PHP: Guzzle Request Copy
$ composer require guzzlehttp/guzzle
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0', [
  'headers' => [
    'Authorization' => 'Bearer AppToken',
    'Content-Type' => 'application/json',
    'accept' => 'application/json',
  ],
]);

echo $response->getBody();

LANGUAGE: Python

Request Copy
import requests

url = "https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0"

headers = {
    "accept": "application/json",
    "Content-Type": "application/json",
    "Authorization": "Bearer AppToken"
}

response = requests.get(url, headers=headers)

print(response.text)

LANGUAGE: C

Request Copy
CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "accept: application/json");
headers = curl_slist_append(headers, "Content-Type: application/json");
headers = curl_slist_append(headers, "Authorization: Bearer AppToken");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);

LANGUAGE: C#

C#: HttpClient Request Copy
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
    Method = HttpMethod.Get,
    RequestUri = new Uri("https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0"),
    Headers =
    {
        { "accept", "application/json" },
        { "Authorization", "Bearer AppToken" },
    },
};
using (var response = await client.SendAsync(request))
{
    response.EnsureSuccessStatusCode();
    var body = await response.Content.ReadAsStringAsync();
    Console.WriteLine(body);
}
C#: RestSharp Request Copy
$ dotnet add package RestSharp
using RestSharp;


var options = new RestClientOptions("https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Bearer AppToken");
var response = await client.GetAsync(request);

Console.WriteLine("{0}", response.Content);

LANGUAGE: C++

Request Copy
CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "accept: application/json");
headers = curl_slist_append(headers, "Content-Type: application/json");
headers = curl_slist_append(headers, "Authorization: Bearer AppToken");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);

LANGUAGE: Clojure

Request Copy
(require '[clj-http.client :as client])

(client/get "https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail" {:headers {:Content-Type "application/json"
                                                                                          :Authorization "Bearer AppToken"}
                                                                                :query-params {:offset "0"}
                                                                                :accept :json})

LANGUAGE: Go

Request Copy
package main

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

func main() {

	url := "https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0"

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

	req.Header.Add("accept", "application/json")
	req.Header.Add("Content-Type", "application/json")
	req.Header.Add("Authorization", "Bearer AppToken")

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

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

	fmt.Println(string(body))

}

LANGUAGE: HTTP

Request Copy
GET /v1/api/apps/appID/data/enquiry-detail?offset=0 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer AppToken
Host: examplebaseurl.com

LANGUAGE: Java

Java: AsyncHttp Request Copy
AsyncHttpClient client = new DefaultAsyncHttpClient();
client.prepare("GET", "https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0")
  .setHeader("accept", "application/json")
  .setHeader("Content-Type", "application/json")
  .setHeader("Authorization", "Bearer AppToken")
  .execute()
  .toCompletableFuture()
  .thenAccept(System.out::println)
  .join();

client.close();
Java: java.net.http. Request Copy
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0"))
    .header("accept", "application/json")
    .header("Content-Type", "application/json")
    .header("Authorization", "Bearer AppToken")
    .method("GET", HttpRequest.BodyPublishers.noBody())
    .build();
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Java: OkHttp. Request Copy
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0")
  .get()
  .addHeader("accept", "application/json")
  .addHeader("Content-Type", "application/json")
  .addHeader("Authorization", "Bearer AppToken")
  .build();

Response response = client.newCall(request).execute();
Java: Unirest Request Copy
HttpResponse<String> response = Unirest.get("https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0")
  .header("accept", "application/json")
  .header("Content-Type", "application/json")
  .header("Authorization", "Bearer AppToken")
  .asString();

LANGUAGE: JavaScript

JavaScript: Axios Request Copy
import axios from 'axios';

const options = {
  method: 'GET',
  url: 'https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail',
  params: {offset: '0'},
  headers: {
    accept: 'application/json',
    'Content-Type': 'application/json',
    Authorization: 'Bearer AppToken'
  }
};

axios
  .request(options)
  .then(res => console.log(res.data))
  .catch(err => console.error(err));
JavaScript: fetch Request Copy
const options = {
  method: 'GET',
  headers: {
    accept: 'application/json',
    'Content-Type': 'application/json',
    Authorization: 'Bearer AppToken'
  }
};

fetch('https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
JavaScript: jQuery Request Copy
const settings = {
  async: true,
  crossDomain: true,
  url: 'https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0',
  method: 'GET',
  headers: {
    accept: 'application/json',
    'Content-Type': 'application/json',
    Authorization: 'Bearer AppToken'
  }
};

$.ajax(settings).done(res => {
  console.log(res);
});
JavaScript: XMLHttpRequest Request Copy
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener('readystatechange', function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open('GET', 'https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0');
xhr.setRequestHeader('accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.setRequestHeader('Authorization', 'Bearer AppToken');

xhr.send(data);

LANGUAGE: JSON

Request Copy
No JSON body

LANGUAGE: Kotlin

Request Copy
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0")
  .get()
  .addHeader("accept", "application/json")
  .addHeader("Content-Type", "application/json")
  .addHeader("Authorization", "Bearer AppToken")
  .build()

val response = client.newCall(request).execute()

LANGUAGE: Objectve-C

Request Copy
#import <Foundation/Foundation.h>

NSDictionary *headers = @{ @"accept": @"application/json",
                           @"Content-Type": @"application/json",
                           @"Authorization": @"Bearer AppToken" };

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0"]
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
[request setAllHTTPHeaderFields:headers];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
                                            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                if (error) {
                                                    NSLog(@"%@", error);
                                                } else {
                                                    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
                                                    NSLog(@"%@", httpResponse);
                                                }
                                            }];
[dataTask resume];

LANGUAGE: OCaml

Request Copy
open Cohttp_lwt_unix
open Cohttp
open Lwt

let uri = Uri.of_string "https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0" in
let headers = Header.add_list (Header.init ()) [
  ("accept", "application/json");
  ("Content-Type", "application/json");
  ("Authorization", "Bearer AppToken");
] in

Client.call ~headers `GET uri
>>= fun (res, body_stream) ->
  (* Do stuff with the result *)

LANGUAGE: PowerShell

PowerShell: Invoke-RestMethod Request Copy
$headers=@{}
$headers.Add("accept", "application/json")
$headers.Add("Content-Type", "application/json")
$headers.Add("Authorization", "Bearer AppToken")
$response = Invoke-RestMethod -Uri 'https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0' -Method GET -Headers $headers
PowerShell: Invoke-WebRequest Request Copy
$headers=@{}
$headers.Add("accept", "application/json")
$headers.Add("Content-Type", "application/json")
$headers.Add("Authorization", "Bearer AppToken")
$response = Invoke-WebRequest -Uri 'https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail?offset=0' -Method GET -Headers $headers

LANGUAGE: R

Request Copy
library(httr)

url <- "https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail"

queryString <- list(offset = "0")

response <- VERB("GET", url, query = queryString, add_headers('Authorization' = 'Bearer AppToken'), content_type("application/octet-stream"), accept("application/json"))

content(response, "text")

LANGUAGE: Swift

Request Copy
import Foundation

let url = URL(string: "https://examplebaseurl.com/v1/api/apps/appID/data/enquiry-detail")!
var components = URLComponents(url: url, resolvingAgainstBaseURL: true)!
let queryItems: [URLQueryItem] = [
  URLQueryItem(name: "offset", value: "0"),
]
components.queryItems = components.queryItems.map { $0 + queryItems } ?? queryItems

var request = URLRequest(url: components.url!)
request.httpMethod = "GET"
request.timeoutInterval = 10
request.allHTTPHeaderFields = [
  "accept": "application/json",
  "Content-Type": "application/json",
  "Authorization": "Bearer AppToken"
]

let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))

Response Example

RESPONSE: 🟢 200 - Result (Example)

200-Result Copy
{
  "code": number,
  "result": [
    {
      "_id":"string",
      "uniqueKey": "string",
      "createdAt": "string",
      "svcID": "string",
      "inquiry": "string",
      "tag": "string",
      "visitor": "string",
      "roomID": "string",
      "initChannel": "string",
      "omniType": "string",
      "ip": "string",
      "language": "string",
      "location": "string",
      "platform": "string",
      "status": "string",
      "displayCaseNumber": "string",
      "channel `Directory`": "string",
      "destinationID": "string",
      "destinationName": "string",
      "destinationType": "string",
      "destinationEndPoint": "string",
      "handledType": "string",
      "handledTarget": "string",
      "handledPartyName": "string",
      "huntedStaffTargetsHistory": [],
      "channelDetail": {
        "type": "string",
        "id": "string",
        "maaiiDisplayName": "string",
        "name": "string"
      },
      "inquiryType": "string",
      "updatedAt": "string",
      "closedAt": "string",
      "inquiryGroup": [
        {}
      ],
      "transferredParty": [],
      "pickedUpAt": "string",
      "missedAt": "string",
      "reopenedAt": "string",
      "handledPartyDepartmentID": "string",
      "attachment": boolean,
      "staffFirstName": "string",
      "staffLastName": "string",
      "visitorFirstName": "string",
      "visitorLastName": "string",
      "inquiryDeepLink": "string",
      "duration": number,
      "labelIDs": []
    }
  ],
  "cid":"string"
}

RESPONSE: šŸ”“ 400-Result (Example)

400-Result Copy
{
  "code": 0,
  "message": "The error message from the server. Please refer to the error table."
}
Previous
Reports API
Next
Get Enquiry Chat Details
Last modified: 2025-12-11