Skip to main content
GET
Contact Summary (v2)
Returns a page of contact summaries for your Operata Group in the v2 data model. Each contact carries account properties, contact details and events, the agent’s machine and network, WebRTC session metrics, headset data, and billing. Filters, paging, and sorting work exactly as in List contact summaries. Only the response format differs.

Endpoint

Parameters

Query

All parameters are optional. With none, you get the 100 most recent contacts.

How filters apply

  • Time window. fromTime and toTime match the contact summary’s timestamp, the time Operata recorded the contact.
  • Ranges. Each range filter takes both ends, as whole numbers. Both ends are inclusive, the upper end must be at least 1, and the lower end can’t exceed it. For example, mosFrom=3&mosTo=4 matches an average MOS from 3.0 to 4.0.
  • Text filters. agent, networkType, agentCity, contactId, contactIds, and tags use an OpenSearch phrase match on the stored value.
  • Contact IDs. Only summaries with a contact ID come back.
  • Sort. Without sortColumn, results are newest first by timestamp.
The API rejects a request with 400 when a parameter is unknown, sent more than once (other than contactIds and tags), not a whole number where one is needed, out of range, or missing its pair. The response body names the parameter. Empty values, such as contactId=, count as not sent.

Response

200 OK with a JSON array of contacts. The array is empty when nothing matches. The RecordCount response header holds the total number of matching contacts, not just this page. OpenSearch counts up to 10,000, so larger totals report 10000.
accountProperties, contact, serviceAgent, webRTCSession, and billing are always present. Inside them, most fields without a stored value come back as an empty string, 0, or false. These are omitted instead: every accountProperties field; contact.callerId, systemEndpoint, queueName, durationSec, type, direction, initiation, recordingUrl, events, endedBy, and disconnectReason; serviceAgent.friendlyName, serviceId, and machine; and webRTCSession.signallingEndpoint, eventTimer, eventFailure, and usedDevices. serviceAgent.browser comes back as null when not recorded. The list never includes insights. Get a contact summary (v2) returns it for one contact.

Example

Fetch the contacts from a 48-hour window, 50 at a time.

Errors

Error bodies are plain text. See Errors for errors every endpoint can return.

Authorizations

Authorization
string
header
required

Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.

Query Parameters

fromTime
string

Start of the time window, inclusive. RFC 3339 timestamp such as 2026-10-11T18:30:00Z, or OpenSearch date math such as now-1d. Send with toTime.

toTime
string

End of the time window, inclusive. Same formats as fromTime. When both are timestamps, toTime must be after fromTime.

timezone
string

Time zone OpenSearch applies to the window, for example Australia/Sydney or +10:00. Used only with fromTime and toTime.

size
integer
default:100

Number of contacts to return. At least 1. Default 100.

Required range: x >= 1
from
integer
default:0

Number of contacts to skip, for paging. Default 0.

Required range: x >= 0
contactId
string

Return only the contact with this contact ID.

contactIds
string[]

Return contacts matching any of these contact IDs. Repeat the parameter for each ID.

agent
string

Agent username to match.

networkType
string

Network type to match, for example wlan or ethernet.

agentCity
string

Agent city to match.

tags
string[]

Return contacts with any of these tags. Repeat the parameter for each tag.

mosFrom
integer

Lower bound on average MOS, inclusive. Whole numbers only. Send with mosTo.

Required range: x >= 0
mosTo
integer

Upper bound on average MOS, inclusive. At least 1. Send with mosFrom.

Required range: x >= 1
jitterFrom
integer

Lower bound on average jitter in milliseconds, inclusive. Send with jitterTo.

Required range: x >= 0
jitterTo
integer

Upper bound on average jitter in milliseconds, inclusive. At least 1. Send with jitterFrom.

Required range: x >= 1
rttFrom
integer

Lower bound on average round-trip time in milliseconds, inclusive. Send with rttTo.

Required range: x >= 0
rttTo
integer

Upper bound on average round-trip time in milliseconds, inclusive. At least 1. Send with rttFrom.

Required range: x >= 1
packetsLostFrom
integer

Lower bound on the contact's total packets-lost fraction, inclusive. Alias of packetsLostFractionFrom. Send with packetsLostTo.

Required range: x >= 0
packetsLostTo
integer

Upper bound on the contact's total packets-lost fraction, inclusive. At least 1. Alias of packetsLostFractionTo. Send with packetsLostFrom.

Required range: x >= 1
durationSecondsFrom
integer

Lower bound on contact duration in seconds, inclusive. Send with durationSecondsTo.

Required range: x >= 0
durationSecondsTo
integer

Upper bound on contact duration in seconds, inclusive. At least 1. Send with durationSecondsFrom.

Required range: x >= 1
sortColumn
enum<string>

Field to sort by. Send with sortDirection. Default sort is timestamp, newest first.

Available options:
timestamp,
agent,
networkType,
agentIPAddress,
mos,
contactId,
agentExternalIPAddress,
agentISP,
agentCity,
jitter,
rtt,
packetsLostFraction,
duration
sortDirection
enum<string>

asc or desc. Send with sortColumn.

Available options:
asc,
desc
criteria
string

Alternative to the parameters above: a URL-encoded JSON object with the same fields. When present, every other query parameter is ignored and not validated.

Response

Matching contacts, newest first unless you set a sort. An empty array when nothing matches.

accountProperties
object
contact
object
serviceAgent
object
webRTCSession
object
headset
object
billing
object