openapi: 3.0.3
info:
title: RingCentral Adaptive Cards Business Analytics API
description: RingCentral API specification
version: 1.0.58-20240529-47eda8bd
contact:
name: RingCentral Developers Support
url: https://developers.ringcentral.com/support
termsOfService: https://www.ringcentral.com/legal/apilitos.html
license:
name: RingCentral API License Agreement
url: https://www.ringcentral.com/legal/apilitos.html
servers:
- url: https://platform.ringcentral.com
description: Production API entry point
- url: https://media.ringcentral.com
description: Production Media entry point
- url: https://platform.devtest.ringcentral.com
description: Developer sandbox API entry point
- url: https://platform.devtest.ringcentral.com
description: Developer sandbox Media entry point
security:
- OAuth2: []
tags:
- name: Business Analytics
paths:
/analytics/calls/v1/accounts/{accountId}/aggregation/fetch:
post:
tags:
- Business Analytics
summary: Calls Aggregation Data
description: Returns call aggregations filtered by parameters specified
operationId: analyticsCallsAggregationFetch
parameters:
- $ref: '#/components/parameters/AccountId'
- name: page
in: query
description: The current page number (positive numbers only)
required: false
schema:
type: integer
format: int32
minimum: 1
- name: perPage
in: query
description: Number of records displayed on a page (positive numbers only, max value of 200)
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 200
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AggregationRequest'
required: true
responses:
'200':
description: Calls Aggregation
content:
application/json:
schema:
$ref: '#/components/schemas/AggregationResponse'
'400':
$ref: '#/components/responses/InvalidRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalError'
x-throttling-group: Light
x-app-permission: Analytics
/analytics/calls/v1/accounts/{accountId}/timeline/fetch:
post:
tags:
- Business Analytics
summary: Calls Timeline Data
description: Returns time-value data aggregations filtered by parameters specified
operationId: analyticsCallsTimelineFetch
parameters:
- $ref: '#/components/parameters/AccountId'
- name: interval
in: query
description: Aggregation interval
required: true
schema:
$ref: '#/components/schemas/Interval'
- name: page
in: query
description: The current page number (positive numbers only)
required: false
schema:
type: integer
format: int32
minimum: 1
- name: perPage
in: query
description: Number of records displayed on a page (positive numbers only, max value of 20)
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 20
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TimelineRequest'
required: true
responses:
'200':
description: Calls Timeline
content:
application/json:
schema:
$ref: '#/components/schemas/TimelineResponse'
'400':
$ref: '#/components/responses/InvalidRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalError'
x-throttling-group: Light
x-app-permission: Analytics
components:
schemas:
CallsByOriginBreakdown:
required:
- internal
- external
type: object
properties:
internal:
type: number
description: Value for Internal origin
format: double
external:
type: number
description: Value for External origin
format: double
description: Result breakdown by origin
ApiError:
type: object
description: Generalized API error structure suitable for any error type
required:
- errorCode
- message
properties:
errorCode:
type: string
description: Logical error code (typically, 3 letters followed with number, dash separated)
example: XXX-123
message:
type: string
description: User-friendly error message
example: Something went wrong
additionalProperties: true
AggregationRequest:
required:
- grouping
- timeSettings
- responseOptions
type: object
properties:
grouping:
$ref: '#/components/schemas/Grouping'
timeSettings:
$ref: '#/components/schemas/TimeSettings'
callFilters:
$ref: '#/components/schemas/CallFilters'
responseOptions:
$ref: '#/components/schemas/AggregationResponseOptions'
CallDurationFilter:
type: object
properties:
minSeconds:
type: integer
description: Minimum duration of call in seconds
format: int64
maxSeconds:
type: integer
description: Maximum duration of call in seconds
format: int64
description: Filtering of calls based on the overall call length
AggregationResponseOptionsTimers:
type: object
properties:
allCallsDuration:
required:
- aggregationType
type: object
properties:
aggregationType:
$ref: '#/components/schemas/AggregationType'
aggregationInterval:
$ref: '#/components/schemas/AggregationInterval'
description: Aggregation of all calls duration
callsDurationByDirection:
required:
- aggregationType
type: object
properties:
aggregationType:
$ref: '#/components/schemas/AggregationType'
aggregationInterval:
$ref: '#/components/schemas/AggregationInterval'
description: Aggregation of calls duration by direction (Inbound, Outbound)
callsDurationByOrigin:
required:
- aggregationType
type: object
properties:
aggregationType:
$ref: '#/components/schemas/AggregationType'
aggregationInterval:
$ref: '#/components/schemas/AggregationInterval'
description: Aggregation of calls duration by origin (Internal, External)
callsDurationByResponse:
required:
- aggregationType
type: object
properties:
aggregationType:
$ref: '#/components/schemas/AggregationType'
aggregationInterval:
$ref: '#/components/schemas/AggregationInterval'
description: Aggregation of calls duration by response (Answered, NotAnswered, Connected, NotConnected)
callsSegmentsDuration:
required:
- aggregationType
type: object
properties:
aggregationType:
$ref: '#/components/schemas/AggregationType'
aggregationInterval:
$ref: '#/components/schemas/AggregationInterval'
description: Aggregation of calls duration by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup)
callsDurationByResult:
required:
- aggregationType
type: object
properties:
aggregationType:
$ref: '#/components/schemas/AggregationType'
aggregationInterval:
$ref: '#/components/schemas/AggregationInterval'
description: Aggregation of calls duration by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted)
callsDurationByCompanyHours:
required:
- aggregationType
type: object
properties:
aggregationType:
$ref: '#/components/schemas/AggregationType'
aggregationInterval:
$ref: '#/components/schemas/AggregationInterval'
description: Aggregation of calls duration by company hours (BusinessHours, AfterHours)
callsDurationByQueueSla:
required:
- aggregationType
type: object
properties:
aggregationType:
$ref: '#/components/schemas/AggregationType'
aggregationInterval:
$ref: '#/components/schemas/AggregationInterval'
description: Aggregation of calls duration by queue SLA (InSLA, OutSLA). This timer is only applicable to Queues grouping
callsDurationByType:
required:
- aggregationType
type: object
properties:
aggregationType:
$ref: '#/components/schemas/AggregationType'
aggregationInterval:
$ref: '#/components/schemas/AggregationInterval'
description: Aggregation of calls duration by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound)
description: 'The formula is defined by `aggregationType` and `aggregationInterval` for every timer individually.
If `aggregationType` is `Sum` or `Percent`, `aggregationInterval` is not supported.
If `aggregationType` is `Min`, `Max` or `Average`, `aggregationInterval` is supported, but not required.
If left empty, aggregation will be performed on per-call basis'
TimelineResponseData:
required:
- groupedBy
type: object
properties:
groupedBy:
$ref: '#/components/schemas/GroupingOptions'
records:
type: array
items:
$ref: '#/components/schemas/TimelineResponseRecord'
description: List of call data as per the grouping and filtering options specified in the request
description: A list of time-value points of call data as per the grouping and filtering options specified in the request
CallResult:
type: string
enum:
- Completed
- Abandoned
- Voicemail
- Unknown
- Missed
- Accepted
CallsByQueueSla:
required:
- valueType
- values
type: object
properties:
valueType:
$ref: '#/components/schemas/ValueType'
values:
$ref: '#/components/schemas/CallsByQueueSlaBreakdown'
description: Data for calls with breakdown by queue SLA (InSLA, OutSLA). This counter is only applicable to Queues grouping
CallsByResponseBreakdown:
required:
- answered
- notAnswered
- connected
- notConnected
type: object
properties:
answered:
type: number
description: Value for Answered response
format: double
notAnswered:
type: number
description: Value for NotAnswered response
format: double
connected:
type: number
description: Value for Connected response
format: double
notConnected:
type: number
description: Value for NotConnected response
format: double
description: Result breakdown by response
AggregationInterval:
type: string
description: Time interval which will be used for aggregation. Can be `Hour`, `Day`, `Week` or `Month`
enum:
- Hour
- Day
- Week
- Month
CallsByDirectionBreakdown:
required:
- inbound
- outbound
type: object
properties:
inbound:
type: number
description: Value for Inbound direction
format: double
outbound:
type: number
description: Value for Outbound direction
format: double
description: Result breakdown by direction
ValueType:
type: string
description: Unit of the result value
enum:
- Percent
- Seconds
- Instances
TimelineResponse:
required:
- paging
- data
type: object
properties:
paging:
$ref: '#/components/schemas/ResponsePaging'
data:
$ref: '#/components/schemas/TimelineResponseData'
TimelineResponseOptionsCounters:
type: object
properties:
allCalls:
type: boolean
description: Include data for total calls count
callsByDirection:
type: boolean
description: Include breakdown of calls count by direction (Inbound, Outbound)
callsByOrigin:
type: boolean
description: Include breakdown of calls count by origin (Internal, External)
callsByResponse:
type: boolean
description: Include breakdown of calls count by response (Answered, NotAnswered, Connected, NotConnected)
callsSegments:
type: boolean
description: Include breakdown of calls count by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup)
callsByResult:
type: boolean
description: Include breakdown of calls count by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted)
callsByCompanyHours:
type: boolean
description: Include breakdown of calls count by company hours (BusinessHours, AfterHours)
callsByQueueSla:
type: boolean
description: Include breakdown of calls count by queue SLA (InSLA, OutSLA). This counter is only applicable to Queues grouping
callsByActions:
type: boolean
description: Include breakdown of calls count by action (HoldOff, HoldOn, ParkOn, ParkOff, BlindTransfer, WarmTransfer, DTMFTransfer)
callsByType:
type: boolean
description: Include breakdown of calls count by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound)
queueOpportunities:
type: boolean
description: 'Include breakdown of calls count by the total number of times a Queue call was presented to the user. It is limited to `groupBy` Users and `groupByMembers` (Department, Queue, Site, UserGroup) grouping. Only the listed below options for call filters are applicable to `queueOpportunities` and provide meaningful results: `queues` (selected queue extension ids), `callResults` (Missed, Abandoned), `callResponses` (Answered, NotAnswered), `origins` (Internal, External)'
description: Options for selecting breakdown for calls count
CallsByCompanyHours:
required:
- valueType
- values
type: object
properties:
valueType:
$ref: '#/components/schemas/ValueType'
values:
$ref: '#/components/schemas/CallsByCompanyHoursBreakdown'
description: Data for calls with breakdown by company hours (BusinessHours, AfterHours)
Grouping:
description: This field specifies the dimensions by which the response should be grouped and specific keys to narrow the response. See also [Call Aggregate reports](https://developers.ringcentral.com/guide/analytics/aggregate) or [Call Timeline reports](https://developers.ringcentral.com/guide/analytics/timeline) pages in the developer guide for more information
oneOf:
- $ref: '#/components/schemas/DirectGrouping'
- $ref: '#/components/schemas/GroupingByMembers'
CallsByType:
required:
- valueType
- values
type: object
properties:
valueType:
$ref: '#/components/schemas/ValueType'
values:
$ref: '#/components/schemas/CallsByTypeBreakdown'
description: Data for calls with breakdown by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound, Overflow)
TimeSpentFilter:
type: object
properties:
minSeconds:
type: integer
description: Minimum duration in seconds
format: int64
maxSeconds:
type: integer
description: Maximum duration in seconds
format: int64
description: Filtering of calls based on the time spent by specified mailbox(es) on call
QueueOpportunitiesAggregationType:
type: string
description: Counter aggregation type for queue opportunities, limited to `Sum` only.
enum:
- Sum
CallsByDirection:
required:
- valueType
- values
type: object
properties:
valueType:
$ref: '#/components/schemas/ValueType'
values:
$ref: '#/components/schemas/CallsByDirectionBreakdown'
description: Data for calls with breakdown by direction (Inbound, Outbound)
CallsByOrigin:
required:
- valueType
- values
type: object
properties:
valueType:
$ref: '#/components/schemas/ValueType'
values:
$ref: '#/components/schemas/CallsByOriginBreakdown'
description: Data for calls with breakdown by origin (Internal, External)
ExtensionFilters:
type: object
properties:
fromIds:
type: array
items:
type: string
description: List of extension ids to match against incoming calls, joined via OR condition. Only applicable for `groupByMembers` options and Users, IVRs, SharedLines and Queues in `groupBy`
toIds:
type: array
items:
type: string
description: List of extension ids to match against outgoing calls, joined via OR condition. Limited to the extension id that first accepted the call. Only applicable for `groupByMembers` options and Users, IVRs and SharedLines in `groupBy`
description: Specifies filtering based on extension ids
AggregationResponse:
required:
- paging
- data
type: object
properties:
paging:
$ref: '#/components/schemas/ResponsePaging'
data:
$ref: '#/components/schemas/AggregationResponseData'
TimelineRequest:
required:
- grouping
- timeSettings
- responseOptions
type: object
properties:
grouping:
$ref: '#/components/schemas/Grouping'
timeSettings:
$ref: '#/components/schemas/TimeSettings'
callFilters:
$ref: '#/components/schemas/CallFilters'
responseOptions:
$ref: '#/components/schemas/TimelineResponseOptions'
MembersGroupingOptions:
type: string
description: The selected data scope
enum:
- Department
- UserGroup
- Queue
- Site
CallsTimers:
type: object
properties:
allCalls:
$ref: '#/components/schemas/AllCalls'
callsByDirection:
$ref: '#/components/schemas/CallsByDirection'
callsByOrigin:
$ref: '#/components/schemas/CallsByOrigin'
callsByResponse:
$ref: '#/components/schemas/CallsByResponse'
callsSegments:
$ref: '#/components/schemas/CallsBySegments'
callsByResult:
$ref: '#/components/schemas/CallsByResult'
callsByCompanyHours:
$ref: '#/components/schemas/CallsByCompanyHours'
callsByQueueSla:
$ref: '#/components/schemas/CallsByQueueSla'
callsByType:
$ref: '#/components/schemas/CallsByType'
description: Call length data for the specified grouping
TimeRange:
required:
- timeFrom
- timeTo
type: object
properties:
timeFrom:
type: string
description: The start date-time for resulting records in RFC 3339 format including offset between local time and UTC, for example 2016-03-15T18:07:52.534Z
format: date-time
timeTo:
type: string
description: The end date-time for resulting records in RFC 3339 format including offset between local time and UTC, for example 2016-03-15T18:07:52.534Z
format: date-time
description: Time range for the request
TimelineResponseOptions:
type: object
properties:
counters:
$ref: '#/components/schemas/TimelineResponseOptionsCounters'
timers:
$ref: '#/components/schemas/TimelineResponseOptionsTimers'
description: Counters and timers options for calls breakdown
TimeSettings:
required:
- timeZone
- timeRange
type: object
properties:
timeZone:
type: string
description: Name of the timezone that will be used for `includeDays` and `includeHours` filters and aggregation intervals. For example 'America/Los_Angeles', 'Europe/Zurich'. See also *[Time Zones](https://www.iana.org/time-zones)*. Value in this field doesn't affect interpretation of time in `timeRange`, as it already includes offset from UTC
timeRange:
$ref: '#/components/schemas/TimeRange'
advancedTimeSettings:
$ref: '#/components/schemas/AdvancedTimeSettings'
description: Date-time range for the calls. The call is considered to be within time range if it started within time range. Both borders are inclusive
CallsBySegmentsBreakdown:
required:
- ringing
- liveTalk
- hold
- park
- transfer
- ivrPrompt
- voicemail
- vmGreeting
- setup
type: object
properties:
ringing:
type: number
description: Value for Ringing segment
format: double
liveTalk:
type: number
description: Value for LiveTalk segment
format: double
hold:
type: number
description: Value for Hold segment
format: double
park:
type: number
description: Value for Park segment
format: double
transfer:
type: number
description: Value for Transfer segment
format: double
ivrPrompt:
type: number
description: Value for IVRPrompt segment
format: double
voicemail:
type: number
description: Value for Voicemail segment
format: double
vmGreeting:
type: number
description: Value for VMGreeting segment
format: double
setup:
type: number
description: Value for Setup segment
format: double
description: Result breakdown by segments
Interval:
type: string
enum:
- Hour
- Day
- Week
- Month
CallAction:
type: string
enum:
- HoldOff
- HoldOn
- ParkOn
- ParkOff
- BlindTransfer
- WarmTransfer
- DTMFTransfer
CallsByCompanyHoursBreakdown:
required:
- businessHours
- afterHours
type: object
properties:
businessHours:
type: number
description: Value for BusinessHours company hours
format: double
afterHours:
type: number
description: Value for AfterHours company hours
format: double
description: Result breakdown by company hours
CallsByResultBreakdown:
required:
- completed
- abandoned
- voicemail
- missed
- accepted
- unknown
type: object
properties:
completed:
type: number
description: Value for Completed result
format: double
abandoned:
type: number
description: Value for Abandoned result
format: double
voicemail:
type: number
description: Value for Voicemail result
format: double
missed:
type: number
description: Value for Missed result
format: double
accepted:
type: number
description: Value for Accepted result
format: double
unknown:
type: number
description: Value for Unknown result
format: double
description: Result breakdown by call result
DirectGrouping:
required:
- groupBy
type: object
properties:
groupBy:
$ref: '#/components/schemas/GroupingOptions'
keys:
type: array
items:
type: string
description: This field can be used to specify unique identifiers of entities selected in `groupBy` field. The response data will be limited to these entities only
description: This grouping allows to specify the `groupBy` option by which the data in the response will be grouped
CallsBySegments:
required:
- valueType
- values
type: object
properties:
valueType:
$ref: '#/components/schemas/ValueType'
values:
$ref: '#/components/schemas/CallsBySegmentsBreakdown'
description: Data for calls with breakdown by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup)
CallsByActions:
required:
- valueType
- values
type: object
properties:
valueType:
$ref: '#/components/schemas/ValueType'
values:
$ref: '#/components/schemas/CallsByActionsBreakdown'
description: Data for calls with breakdown by action (HoldOff, HoldOn, ParkOn, ParkOff, BlindTransfer, WarmTransfer, DTMFTransfer)
CallsCounters:
type: object
properties:
allCalls:
$ref: '#/components/schemas/AllCalls'
callsByDirection:
$ref: '#/components/schemas/CallsByDirection'
callsByOrigin:
$ref: '#/components/schemas/CallsByOrigin'
callsByResponse:
$ref: '#/components/schemas/CallsByResponse'
callsSegments:
$ref: '#/components/schemas/CallsBySegments'
callsByResult:
$ref: '#/components/schemas/CallsByResult'
callsActions:
$ref: '#/components/schemas/CallsByActions'
callsByCompanyHours:
$ref: '#/components/schemas/CallsByCompanyHours'
callsByQueueSla:
$ref: '#/components/schemas/CallsByQueueSla'
callsByType:
$ref: '#/components/schemas/CallsByType'
queueOpportunities:
$ref: '#/components/schemas/QueueOpportunities'
description: Call volume data for the specified grouping
CallsByTypeBreakdown:
required:
- direct
- fromQueue
- parkRetrieval
- transferred
- outbound
- overflow
type: object
properties:
direct:
type: number
description: Value for Direct type
format: double
fromQueue:
type: number
description: Value for FromQueue type
format: double
parkRetrieval:
type: number
description: Value for ParkRetrieval type
format: double
transferred:
type: number
description: Value for Transferred type
format: double
outbound:
type: number
description: Value for Outbound type
format: double
overflow:
type: number
description: Value for Overflow type
format: double
description: Result breakdown by type
CallsByQueueSlaBreakdown:
required:
- inSla
- outOfSla
type: object
properties:
inSla:
type: number
description: Value for InSla queue SLA
format: double
outOfSla:
type: number
description: Value for OutSla queue SLA
format: double
description: Result breakdown by queue SLA
CallSegmentLengthFilter:
type: object
properties:
minSeconds:
type: integer
description: Minimum duration of segment in seconds
format: int64
maxSeconds:
type: integer
description: Maximum duration of segment in seconds
format: int64
description: Duration bounds for the segment
TimelineResponsePoint:
required:
- time
type: object
properties:
time:
type: string
description: Time point in RFC 3339 format
format: date-time
timers:
$ref: '#/components/schemas/CallsTimers'
counters:
$ref: '#/components/schemas/CallsCounters'
AggregationType:
type: string
description: Counter aggregation type. Can be `Sum`, `Average`, `Min`, `Max` or `Percent`
enum:
- Sum
- Average
- Max
- Min
- Percent
CallSegmentOptions:
type: string
description: Call segment for filtering
enum:
- Ringing
- LiveTalk
- Hold
- Park
- Transfer
- IvrPrompt
- Voicemail
- VmGreeting
- Setup
Direction:
type: string
enum:
- Inbound
- Outbound
CallType:
type: string
enum:
- Direct
- FromQueue
- ParkRetrieval
- Transferred
- Outbound
- Overflow
KeyInfo:
type: object
properties:
extensionNumber:
type: string
description: Extension's number
name:
type: string
description: Extension's name
description: Additional info about the key
ResponsePaging:
required:
- page
- perPage
- totalPages
- totalElements
type: object
properties:
page:
type: integer
description: The current page number
format: int64
perPage:
type: integer
description: How many items are displayed on the page
format: int64
totalPages:
type: integer
description: The total number of pages
format: int64
totalElements:
type: integer
description: The total number of items in the dataset
format: int64
description: Paging information
AggregationResponseOptionsCounters:
type: object
properties:
allCalls:
required:
- aggregationType
type: object
properties:
aggregationType:
$ref: '#/components/schemas/AggregationType'
aggregationInterval:
$ref: '#/components/schemas/AggregationInterval'
description: Aggregation of all calls count
callsByDirection:
required:
- aggregationType
type: object
properties:
aggregationType:
$ref: '#/components/schemas/AggregationType'
aggregationInterval:
$ref: '#/components/schemas/AggregationInterval'
description: Aggregation of calls count by direction (Inbound, Outbound)
callsByOrigin:
required:
- aggregationType
type: object
properties:
aggregationType:
$ref: '#/components/schemas/AggregationType'
aggregationInterval:
$ref: '#/components/schemas/AggregationInterval'
description: Aggregation of calls count by origin (Internal, External)
callsByResponse:
required:
- aggregationType
type: object
properties:
aggregationType:
$ref: '#/components/schemas/AggregationType'
aggregationInterval:
$ref: '#/components/schemas/AggregationInterval'
description: Aggregation of calls count by response (Answered, NotAnswered, Connected, NotConnected)
callsSegments:
required:
- aggregationType
type: object
properties:
aggregationType:
$ref: '#/components/schemas/AggregationType'
aggregationInterval:
$ref: '#/components/schemas/AggregationInterval'
description: Aggregation of calls count by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup)
callsByResult:
required:
- aggregationType
type: object
properties:
aggregationType:
$ref: '#/components/schemas/AggregationType'
aggregationInterval:
$ref: '#/components/schemas/AggregationInterval'
description: Aggregation of calls count by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted)
callsByCompanyHours:
required:
- aggregationType
type: object
properties:
aggregationType:
$ref: '#/components/schemas/AggregationType'
aggregationInterval:
$ref: '#/components/schemas/AggregationInterval'
description: Aggregation of calls count by company hours (BusinessHours, AfterHours)
callsByQueueSla:
required:
- aggregationType
type: object
properties:
aggregationType:
$ref: '#/components/schemas/AggregationType'
aggregationInterval:
$ref: '#/components/schemas/AggregationInterval'
description: Aggregation of calls count by queue SLA (InSLA, OutSLA). This counter is only applicable to Queues grouping
callsByActions:
required:
- aggregationType
type: object
properties:
aggregationType:
$ref: '#/components/schemas/AggregationType'
aggregationInterval:
$ref: '#/components/schemas/AggregationInterval'
description: Aggregation of calls count by action (HoldOff, HoldOn, ParkOn, ParkOff, BlindTransfer, WarmTransfer, DTMFTransfer)
callsByType:
required:
- aggregationType
type: object
properties:
aggregationType:
$ref: '#/components/schemas/AggregationType'
aggregationInterval:
$ref: '#/components/schemas/AggregationInterval'
description: Aggregation of calls count by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound)
queueOpportunities:
required:
- aggregationType
type: object
properties:
aggregationType:
$ref: '#/components/schemas/QueueOpportunitiesAggregationType'
description: 'Aggregation of calls count by the total number of times a Queue call was presented to the user. It is limited to `groupBy` Users and `groupByMembers` (Department, Queue, Site, UserGroup) grouping. Only the listed below options for call filters are applicable to `queueOpportunities` and provide meaningful results: `queues` (selected queue extension ids), `callResults` (Missed, Abandoned), `callResponses` (Answered, NotAnswered), `origins` (Internal, External)'
description: 'The formula is defined by `aggregationType` and `aggregationInterval` for every counter individually.
If `aggregationType` is `Sum` or `Percent`, `aggregationInterval` is not supported.
If `aggregationType` is `Min`, `Max` or `Average`, `aggregationInterval` is required'
TimelineResponseOptionsTimers:
type: object
properties:
allCallsDuration:
type: boolean
description: Include data for all calls duration
callsDurationByDirection:
type: boolean
description: Include breakdown of calls duration by direction (Inbound, Outbound)
callsDurationByOrigin:
type: boolean
description: Include breakdown of calls duration by origin (Internal, External)
callsDurationByResponse:
type: boolean
description: Include breakdown of calls duration by response (Answered, NotAnswered, Connected, NotConnected)
callsSegmentsDuration:
type: boolean
description: Include breakdown of calls duration by segments (Ringing, LiveTalk, Hold, Park, Transfer, IvrPrompt, Voicemail, VmGreeting, Setup)
callsDurationByResult:
type: boolean
description: Include breakdown of calls duration by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted)
callsDurationByCompanyHours:
type: boolean
description: Include breakdown of calls duration by company hours (BusinessHours, AfterHours)
callsDurationByQueueSla:
type: boolean
description: Include breakdown of calls duration by queue SLA (InSLA, OutSLA). This timer is only applicable to Queues grouping
callsDurationByType:
type: boolean
description: Include breakdown of calls duration by type (Direct, FromQueue, ParkRetrieval, Transferred, Outbound)
description: Options for selecting breakdown for calls duration
CallsByActionsBreakdown:
required:
- parkOn
- parkOff
- holdOn
- holdOff
- blindTransfer
- warmTransfer
- dtmfTransfer
type: object
properties:
parkOn:
type: number
description: Value for ParkOn action
format: double
parkOff:
type: number
description: Value for ParkOff action
format: double
holdOn:
type: number
description: Value for HoldOn action
format: double
holdOff:
type: number
description: Value for HoldOff action
format: double
blindTransfer:
type: number
description: Value for BlindTransfer action
format: double
warmTransfer:
type: number
description: Value for WarmTransfer action
format: double
dtmfTransfer:
type: number
description: Value for DTMFTransfer action
format: double
description: Result breakdown by actions
AllCalls:
required:
- valueType
- values
type: object
properties:
valueType:
$ref: '#/components/schemas/ValueType'
values:
type: number
description: Value for all calls
format: double
description: Data for all calls
AdvancedTimeSettings:
type: object
properties:
includeDays:
type: array
items:
$ref: '#/components/schemas/DayOfWeek'
description: Days of the week for which the report is calculated
includeHours:
type: array
items:
$ref: '#/components/schemas/HoursInterval'
description: Hours of the day for which the report is calculated
description: Allows more granular control over time included in the report
CallSegmentFilter:
required:
- segment
type: object
properties:
segment:
$ref: '#/components/schemas/CallSegmentOptions'
length:
$ref: '#/components/schemas/CallSegmentLengthFilter'
CallsByResponse:
required:
- valueType
- values
type: object
properties:
valueType:
$ref: '#/components/schemas/ValueType'
values:
$ref: '#/components/schemas/CallsByResponseBreakdown'
description: Data for calls with breakdown by response (Answered, NotAnswered, Connected, NotConnected)
GroupingByMembers:
required:
- groupByMembers
type: object
properties:
groupByMembers:
$ref: '#/components/schemas/MembersGroupingOptions'
keys:
type: array
items:
type: string
description: This field can be used to further limit the users selection by specifying unique identifiers of corresponding entities. For example, providing unique queue ids along with `Queue` in `groupByMembers` field will limit the response to users that are queue agents in at least one of these queues
description: This grouping allows to specify the `groupByMembers` option. The response data will be grouped by users and will only include users that belong to the scope selected in `groupByMembers` field
CompanyHoursOptions:
type: string
enum:
- BusinessHours
- AfterHours
QueueOpportunities:
required:
- valueType
- values
type: object
properties:
valueType:
$ref: '#/components/schemas/ValueType'
values:
type: number
description: Value for queue opportunities
format: double
description: Queue opportunities data for the specified grouping
ApiErrorWithParameter:
description: 'The error model with additional attributes which can be used for HTTP 400/409
This is a deprecated model: "ApiError" model can be used instead with arbitrary additional parameters
'
allOf:
- $ref: '#/components/schemas/ApiError'
- type: object
properties:
parameterName:
type: string
description: The name of the API parameter/attribute which caused the error
parameterValue:
type: string
description: The value of the API parameter/attribute which caused the error
ApiErrorResponseModel:
type: object
description: Standard error response model which is returned in case of any unsuccessful operation
required:
- errors
properties:
errors:
type: array
description: The array of errors (there will be just one in the most of the cases)
minItems: 1
items:
$ref: '#/components/schemas/ApiError'
HoursInterval:
required:
- from
- to
type: object
properties:
from:
type: string
description: Time in format hh:mm
to:
type: string
description: Time in format hh:mm
GroupingOptions:
type: string
description: The selected grouping option
enum:
- Company
- CompanyNumbers
- Users
- Queues
- IVRs
- SharedLines
- UserGroups
- Sites
- Departments
AggregationResponseOptions:
type: object
properties:
counters:
$ref: '#/components/schemas/AggregationResponseOptionsCounters'
timers:
$ref: '#/components/schemas/AggregationResponseOptionsTimers'
description: This field provides mapping of possible breakdown options for call aggregation and aggregation formula
ParameterizedErrorResponseModel:
type: object
description: Standard error response which may include parameterized errors
required:
- errors
properties:
errors:
type: array
description: The array of errors (there will be just one in the most of the cases)
minItems: 1
items:
$ref: '#/components/schemas/ApiErrorWithParameter'
CallResponse:
type: string
enum:
- Answered
- NotAnswered
- Connected
- NotConnected
AggregationResponseData:
required:
- groupedBy
type: object
properties:
groupedBy:
$ref: '#/components/schemas/GroupingOptions'
records:
type: array
items:
$ref: '#/components/schemas/AggregationResponseRecord'
description: A list of call aggregations as per the grouping and filtering options specified in the request
description: Aggregation result
AggregationResponseRecord:
required:
- key
type: object
properties:
key:
type: string
description: Grouping key
info:
$ref: '#/components/schemas/KeyInfo'
timers:
$ref: '#/components/schemas/CallsTimers'
counters:
$ref: '#/components/schemas/CallsCounters'
QueueSlaOptions:
type: string
enum:
- InSla
- OutSla
CallFilters:
type: object
properties:
extensionFilters:
$ref: '#/components/schemas/ExtensionFilters'
queues:
type: array
items:
type: string
description: List of queues extension ids which allows to get data only for calls that were routed through any of these queues
calledNumbers:
type: array
items:
type: string
description: The direct company numbers the caller called (joined via OR)
directions:
type: array
items:
$ref: '#/components/schemas/Direction'
description: Specifies the call directions relative to the scope specified in grouping object (joined via OR). Not applicable to internal origin calls with company scope
origins:
type: array
items:
$ref: '#/components/schemas/Origin'
description: Specifies whether an external party was present in the initial segment of the call (joined via OR)
callResponses:
type: array
items:
$ref: '#/components/schemas/CallResponse'
description: Filtering of calls by first response (joined via OR)
callResults:
type: array
items:
$ref: '#/components/schemas/CallResult'
description: Filtering of calls by the nature of call result (joined via OR)
callSegments:
type: array
items:
$ref: '#/components/schemas/CallSegmentFilter'
description: Filtering of calls by presence of specific segment (joined via OR)
callActions:
type: array
items:
$ref: '#/components/schemas/CallAction'
description: Filtering of calls by presence of specific action (joined via OR)
companyHours:
type: array
items:
$ref: '#/components/schemas/CompanyHoursOptions'
description: Filtering of calls by company's business hours or after hours (joined via OR)
callDuration:
$ref: '#/components/schemas/CallDurationFilter'
timeSpent:
$ref: '#/components/schemas/TimeSpentFilter'
queueSla:
type: array
items:
$ref: '#/components/schemas/QueueSlaOptions'
description: Filtering calls that were within or out of queue SLA (joined via OR). Only applicable to Queues grouping
callTypes:
type: array
items:
$ref: '#/components/schemas/CallType'
description: Filtering of calls based on how the call started from the callee perspective (joined via OR). If the call is outbound relative to the grouping scope, CallType is Outbound
description: Optional filters that limit the scope of calls (joined via AND)
DayOfWeek:
type: string
enum:
- Sunday
- Monday
- Tuesday
- Wednesday
- Thursday
- Friday
- Saturday
CallsByResult:
required:
- valueType
- values
type: object
properties:
valueType:
$ref: '#/components/schemas/ValueType'
values:
$ref: '#/components/schemas/CallsByResultBreakdown'
description: Data for calls with breakdown by result (Completed, Abandoned, Voicemail, Unknown, Missed, Accepted)
Origin:
type: string
enum:
- Internal
- External
TimelineResponseRecord:
required:
- key
type: object
properties:
key:
type: string
description: Grouping key
info:
$ref: '#/components/schemas/KeyInfo'
points:
type: array
items:
$ref: '#/components/schemas/TimelineResponsePoint'
description: List of requested call data time-value points
responses:
Unauthorized:
description: 'General response with **HTTP 401 "Unauthorized"** status.
Reasons: user authentication failed.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ParameterizedErrorResponseModel'
InvalidRequest:
description: 'General response with **HTTP 400 "Bad request"** status.
Reasons: unparsable request, path, query or body parameters are invalid.
The error description may contain reference to particular parameter(s) which haven''t passed the validation.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ParameterizedErrorResponseModel'
InternalError:
description: 'General response with **HTTP 500 "Internal Server Error"** status.
Reasons: general server-side error.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponseModel'
Forbidden:
description: 'General response with **HTTP 403 "Forbidden"** status.
Reasons: the requested operation is forbidden because of certain resource state, lack of permissions, feature unavailability, etc.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponseModel'
parameters:
AccountId:
name: accountId
in: path
description: 'Internal identifier of the RingCentral account
(can be set to "~" to indicate that the account associated with current authorization session should be used)
'
required: true
style: simple
explode: false
schema:
type: string
default: '~'
example: '~'
securitySchemes:
OAuth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://platform.ringcentral.com/restapi/oauth/authorize
tokenUrl: https://platform.ringcentral.com/restapi/oauth/token
refreshUrl: https://platform.ringcentral.com/restapi/oauth/token
scopes: {}
x-tagGroups:
- name: Voice
popular: true
tags:
- Business Hours
- Call Blocking
- Call Control
- Call Forwarding
- Call Handling Rules
- Interaction Rules
- State-based Rules
- Call Flip
- Call Log
- Call History
- Call Log Export
- Call Monitoring Groups
- Call Queues
- Call Recordings
- Call Recording Settings
- Device SIP Registration
- Greetings
- IVR
- RingOut
- Verification Calls
- name: SMS and Fax
popular: true
tags:
- Fax
- Message Exports
- Message Store
- Pager Messages
- SMS
- High Volume SMS
- SMS Log Export
- SMS Templates
- Voicemail Broadcasting
- name: Social Messaging
popular: true
tags:
- Identities
- Contents
- name: Team Messaging
popular: true
tags:
- Adaptive Cards
- Bots
- Calendar Events
- Chats
- Conversations
- Compliance Exports
- Contacts
- Incoming Webhooks
- Notes
- Posts
- Profile
- Tasks
- Teams
- name: Video
popular: true
tags:
- Bridge Management
- Delegation Management
- Meetings History
- Meeting Recordings
- RCM Meetings (Legacy)
- RCM Webinars (Legacy)
- name: Webinar
popular: true
tags:
- Webinars and Sessions
- Invitees
- Historical Webinars
- Historical Recordings
- Registration Management
- Registrants
- Webinar Analytics
- Webinar Subscriptions
- name: Analytics
popular: true
tags:
- Business Analytics
- name: Artificial Intelligence
popular: true
tags:
- Insights
- Audio
- Text
- Status
- name: Authentication
tags:
- OAuth 2.0 / OpenID Connect
- Interoperability
- name: Account
tags:
- Company
- Custom Fields
- Features
- Licenses
- Tax Locations
- Cost Centers
- Multi-Site
- Phone Numbers
- Presence
- Regional Settings
- User Permissions
- User Settings
- Audit Trail
- Calling Rates
- Appearance Customization
- Account Integrations
- name: Provisioning
tags:
- Automatic Location Updates
- Devices
- Extensions
- Paging Only Groups
- Park Locations
- Phone Lines
- SCIM
- Shared Lines
- Group Call Pickup
- Delegated Lines Groups
- Directed Call Pickup
- IVR Apps
- Video Configuration
- Number Porting
- SMB
- Account Federation
- Integrations
- Enterprise Portal API
- Push to Talk Provisioning
- BYOC
- name: Address Book
tags:
- External Contacts
- Internal Contacts
- Hybrid Directory Contacts
- Overlay Contacts
- External Shared Directory
- name: Roles and Permissions
tags:
- Permissions
- Role Management
- Site Administration
- User Groups
- name: Events & Notifications
tags:
- Subscriptions
- name: User Integrations
tags:
- Token Management
- Calendar Management
- Calendar Event Management
- Calendar Presence Link
- Cloud Personal Contacts
- Cloud Shared Contacts
- Cloud Directory
- Deprecated Calendar API
- name: Rooms
tags:
- Rooms Client API
- Rooms Management API
- name: App Management
tags:
- App Gallery
- App Rating Review
- Bot Provisioning
- name: Workflow Builder
tags:
- Flows
- Flow Editor
- Flow Log
- Flow Templates
- name: Utilities
tags:
- API Info
- Application Settings
- Async Tasks
- User Notifications
- Client Versions
- End-to-End Encryption