For the complete documentation index, see llms.txt. This page is also available as Markdown.

Dataflow

Manage Dataflow Functions.

Get current queue KPI summary

post

Retrieve KPI metrics for one or multiple queues within a specified time range. When multiple queues are specified, the system returns their averaged KPI metrics.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
start_timestring · date-timeOptional

The start time of the report period.
Must include timezone in RFC3339 format (e.g. 2025-09-28T00:00:00-04:00).

Example: 2025-09-28T00:00:00-04:00
end_timestring · date-timeOptional

The end time of the report period.
Must include timezone in RFC3339 format (e.g. 2025-09-28T15:00:00-04:00).

Example: 2025-09-28T15:00:00-04:00
Responses
200

OK

application/json
post/dataflow/queues/summary
POST /api/dataflow/queues/summary HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 191

{
  "queues": [
    {
      "number": "1001",
      "sla_secs": 300
    },
    {
      "number": "1002",
      "sla_secs": 100
    },
    {
      "number": "1003",
      "sla_secs": 600
    }
  ],
  "start_time": "2025-09-28T00:00:00-04:00",
  "end_time": "2025-09-28T15:00:00-04:00"
}
{
  "metrics": {
    "offered": 412,
    "accepted": 400,
    "abandoned": 12,
    "sla_pct": 85.5,
    "aht_sec": 600,
    "att_sec": 90,
    "avg_wrap_time_sec": 1000,
    "asa_sec": 300
  }
}

Get queue call timeseries

post

Retrieve call timeseries data for a specific queue within a specified time range. The data is returned in intervals specified by the interval field. Maximum supported time range is 24 hours.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
queuestringOptional

Queue number.

Example: 8000
start_timestring · date-timeOptional

The start time of the report period.
Must include timezone in RFC3339 format (e.g. 2025-09-28T00:00:00-04:00).

Example: 2025-09-28T00:00:00-04:00
end_timestring · date-timeOptional

The end time of the report period.
Must include timezone in RFC3339 format (e.g. 2025-09-28T15:00:00-04:00).

Example: 2025-09-28T15:00:00-04:00
intervalstringOptional

Interval for aggregating timeseries points. Supported values: 1h, 2h, 3h, 4h, 6h, 8h

Example: 1h
Responses
200

OK

application/json
post/dataflow/queues/timeseries
POST /api/dataflow/queues/timeseries HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 112

{
  "queue": "8000",
  "start_time": "2025-09-28T00:00:00-04:00",
  "end_time": "2025-09-28T15:00:00-04:00",
  "interval": "1h"
}
{
  "points": [
    {
      "t": "2025-09-29T10:00:00-04:00",
      "offered": 62,
      "accepted": 56,
      "abandoned": 4,
      "asa_sec": 18,
      "cb_ok": 1,
      "cb_fail": 2
    },
    {
      "t": "2025-09-29T11:00:00-04:00",
      "offered": 62,
      "accepted": 56,
      "abandoned": 4,
      "asa_sec": 18,
      "cb_ok": 1,
      "cb_fail": 2
    },
    {
      "t": "2025-09-29T12:00:00-04:00",
      "offered": 62,
      "accepted": 56,
      "abandoned": 4,
      "asa_sec": 18,
      "cb_ok": 1,
      "cb_fail": 2
    },
    {
      "t": "2025-09-29T13:00:00-04:00",
      "offered": 62,
      "accepted": 56,
      "abandoned": 4,
      "asa_sec": 18,
      "cb_ok": 1,
      "cb_fail": 2
    },
    {
      "t": "2025-09-29T14:00:00-04:00",
      "offered": 62,
      "accepted": 56,
      "abandoned": 4,
      "asa_sec": 18,
      "cb_ok": 1,
      "cb_fail": 2
    },
    {
      "t": "2025-09-29T15:00:00-04:00",
      "offered": 62,
      "accepted": 56,
      "abandoned": 4,
      "asa_sec": 18,
      "cb_ok": 1,
      "cb_fail": 2
    }
  ]
}

Get agent queue summary

post

Retrieve summary metrics for a specific agent in a specific queue within a given time range. Maximum supported time range is 24 hours.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
queuestringOptional

Queue number.

Example: 8000
agentstringOptional

Agent number.

Example: 101
start_timestring · date-timeOptional

The start time of the report period.
Must include timezone in RFC3339 format (e.g. 2025-09-28T00:00:00-04:00).

Example: 2025-09-28T00:00:00-04:00
end_timestring · date-timeOptional

The end time of the report period.
Must include timezone in RFC3339 format (e.g. 2025-09-28T15:00:00-04:00).

Example: 2025-09-28T15:00:00-04:00
Responses
200

OK

application/json
post/dataflow/queues/agent/summary
POST /api/dataflow/queues/agent/summary HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 110

{
  "queue": "8000",
  "agent": "101",
  "start_time": "2025-09-28T00:00:00-04:00",
  "end_time": "2025-09-28T15:00:00-04:00"
}
{
  "points": {
    "total": 1000,
    "accepted": 400,
    "occupancy_pct": 85.5,
    "aht_sec": 600,
    "att_sec": 90,
    "avg_wrap_time_sec": 1000,
    "average_ring_time_sec": 300
  }
}

Get agent queue timeseries

post

Retrieve segmented timeseries metrics for a specific agent in a specific queue within a given time range. The maximum supported time range is 24 hours. Returned data is grouped into time intervals defined by the interval parameter.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
queuestringOptional

Queue number.

Example: 8000
agentstringOptional

Agent number.

Example: 101
start_timestring · date-timeOptional

The start time of the report period.
Must include timezone in RFC3339 format (e.g. 2025-09-28T00:00:00-04:00).

Example: 2025-09-28T00:00:00-04:00
end_timestring · date-timeOptional

The end time of the report period.
Must include timezone in RFC3339 format (e.g. 2025-09-28T15:00:00-04:00).

Example: 2025-09-28T15:00:00-04:00
intervalstringOptional

Interval for aggregating timeseries points. Supported values: 1h, 2h, 3h, 4h, 6h, 8h

Example: 1h
Responses
200

OK

application/json
post/dataflow/queues/agent/timeseries
POST /api/dataflow/queues/agent/timeseries HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 126

{
  "queue": "8000",
  "agent": "101",
  "start_time": "2025-09-28T00:00:00-04:00",
  "end_time": "2025-09-28T15:00:00-04:00",
  "interval": "1h"
}
{
  "points": [
    {
      "t": "2025-09-29T10:00:00-04:00",
      "occupancy_pct": 62.5,
      "aht_sec": 56,
      "att_sec": 4,
      "accepted": 18
    },
    {
      "t": "2025-09-29T11:00:00-04:00",
      "occupancy_pct": 71.2,
      "aht_sec": 64,
      "att_sec": 5,
      "accepted": 22
    },
    {
      "t": "2025-09-29T12:00:00-04:00",
      "occupancy_pct": 68.3,
      "aht_sec": 60,
      "att_sec": 6,
      "accepted": 24
    },
    {
      "t": "2025-09-29T13:00:00-04:00",
      "occupancy_pct": 59.8,
      "aht_sec": 52,
      "att_sec": 5,
      "accepted": 19
    },
    {
      "t": "2025-09-29T14:00:00-04:00",
      "occupancy_pct": 44.1,
      "aht_sec": 40,
      "att_sec": 3,
      "accepted": 17
    },
    {
      "t": "2025-09-29T15:00:00-04:00",
      "occupancy_pct": 51.8,
      "aht_sec": 46,
      "att_sec": 3,
      "accepted": 20
    }
  ]
}

Get calls timeseries

post

Retrieve the call volume time series within a specified time range.

  • Supports up to 365 days range and a minimum of 1 day.

  • If the range is 1 day, results are grouped hourly (24 intervals).

  • If the range is multiple days, results are grouped daily.

  • Returned data includes total, answered, and not answered call counts.

  • Tenant users do not need to specify tenants and can only query their own data.

  • System administrators can specify multiple tenant IDs, or leave tenants empty to query all tenants.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
tenantsinteger[]Optional

Array of tenant IDs.

  • For tenant users, this field is ignored.
  • For system administrators, leave empty to query all tenants.
Example: [1030655834964623400,1030655834964623400]
start_timestring · date-timeOptional

The start time of the report period.
Must include timezone in RFC3339 format (e.g. 2025-09-28T00:00:00-04:00).

Example: 2025-09-28T00:00:00-04:00
end_timestring · date-timeOptional

The end time of the report period.
Must include timezone in RFC3339 format (e.g. 2025-09-28T15:00:00-04:00).

Example: 2025-09-28T15:00:00-04:00
intervalstringOptional

Interval for aggregating timeseries points. Supported values: 1h, 2h, 3h, 4h, 6h, 8h

Example: 1h
Responses
200

Successful response

application/json
post/dataflow/analytics/calls/timeseries
POST /api/dataflow/analytics/calls/timeseries HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 149

{
  "tenants": [
    1030655834964623400,
    1030655834964623400
  ],
  "start_time": "2025-09-28T00:00:00-04:00",
  "end_time": "2025-09-28T15:00:00-04:00",
  "interval": "1h"
}
{
  "points": [
    {
      "t": "2025-09-29T12:00:00-04:00",
      "total": 118,
      "answered": 62,
      "not_answered": 56
    },
    {
      "t": "2025-09-29T13:00:00-04:00",
      "total": 118,
      "answered": 62,
      "not_answered": 56
    },
    {
      "t": "2025-09-29T14:00:00-04:00",
      "total": 118,
      "answered": 62,
      "not_answered": 56
    }
  ]
}

Get calls direction summary

post

Retrieve cumulative call direction metrics for the specified absolute time range. The response is aggregated across the entire range and is not split by hour or day.

  • Supports a maximum time range of 365 days.

  • start_time and end_time must be RFC3339 timestamps with timezone information.

  • end_time must be later than start_time.

  • Tenant users cannot query other tenants; the tenants field is ignored and the current tenant is used.

  • System administrators may specify one or more tenant IDs. An empty tenants array queries all tenants.

  • Dealers may specify one or more tenant IDs only when those tenants are associated with the dealer. An empty tenants array queries all tenants associated with the dealer.

  • Calls with direction DR_INBOUND_OUTBOUND are counted in both inbound_calls and outbound_calls; therefore, the sum of the three metrics may exceed total calls.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
tenantsinteger[]Optional

Array of tenant IDs.

  • For tenant users, this field is ignored.
  • For system administrators, leave empty to query all tenants.
Example: [1030655834964623400,1030655834964623400]
start_timestring · date-timeRequired

The start time of the report period.
Must include timezone in RFC3339 format (e.g. 2025-09-28T00:00:00-04:00).

Example: 2025-09-28T00:00:00-04:00
end_timestring · date-timeRequired

The end time of the report period.
Must include timezone in RFC3339 format (e.g. 2025-09-28T15:00:00-04:00).

Example: 2025-09-28T15:00:00-04:00
Responses
200

Successful response

application/json
post/dataflow/analytics/calls/direction/summary
POST /api/dataflow/analytics/calls/direction/summary HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 133

{
  "tenants": [
    1030655834964623400,
    1030655834964623400
  ],
  "start_time": "2026-08-25T00:00:00-04:00",
  "end_time": "2026-08-25T15:00:00-04:00"
}
{
  "metrics": {
    "inbound_calls": 450,
    "outbound_calls": 350,
    "internal_calls": 200
  }
}

Get average calls duration summary

post

Retrieve the average duration of complete calls in the specified absolute time range. The response is aggregated across the entire range and is not split by hour or day.

  • Supports a maximum time range of 365 days.

  • start_time and end_time must be RFC3339 timestamps with timezone information.

  • end_time must not be earlier than start_time; an equal range is valid.

  • Tenant users cannot query other tenants; the tenants field is ignored and the current tenant is used.

  • System administrators may specify one or more tenant IDs. An empty tenants array queries all tenants.

  • If no complete calls exist in the range, avg_duration_sec is 0.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
tenantsinteger[]Optional

Array of tenant IDs.

  • For tenant users, this field is ignored.
  • For system administrators, leave empty to query all tenants.
Example: [1030655834964623400,1030655834964623400]
start_timestring · date-timeRequired

The start time of the report period.
Must include timezone in RFC3339 format (e.g. 2025-09-28T00:00:00-04:00).

Example: 2025-09-28T00:00:00-04:00
end_timestring · date-timeRequired

The end time of the report period.
Must include timezone in RFC3339 format (e.g. 2025-09-28T15:00:00-04:00).

Example: 2025-09-28T15:00:00-04:00
Responses
200

Successful response

application/json
post/dataflow/analytics/calls/duration/summary
POST /api/dataflow/analytics/calls/duration/summary HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 133

{
  "tenants": [
    1030655834964623400,
    1030655834964623400
  ],
  "start_time": "2026-08-25T00:00:00-04:00",
  "end_time": "2026-08-25T15:00:00-04:00"
}
{
  "metrics": {
    "avg_duration_sec": 185
  }
}

Get call history analytics

post

Retrieve detailed call history analytics within a specified time range.

  • Supports up to 365 days range.

  • Allows filtering by caller (from), callee (to), duration, status, and session ID.

  • Supports pagination via top and skip.

  • Time fields (start_time, end_time, start_hour_of_day, end_hour_of_day) must include timezone information (e.g., +08:00).

  • The status field is an enumeration with possible values: NONE, ANSWERED, NOT_ANSWERED.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
countbooleanOptional

Use the $count=true query option to include a count of entities that match the filter criteria.

Default: false
skipinteger · int32Optional

Use the skip query parameter to set the number of items to skip at the start of a collection.

Default: 0
topinteger · int32 · min: 1 · max: 100Optional

Use the top query parameter to specify the page size of the result set.

Default: 100
Body
fromstringOptional

Caller number.

Example: 100
tostringOptional

Callee number.

Example: 110
start_durationintegerOptional

Call duration from start time in seconds.

Example: 100
end_durationintegerOptional

Call duration until end time in seconds.

Example: 200
start_hour_of_dayintegerOptional

Specify the start hour of the call time range (0-23).

Example: 0
end_hour_of_dayintegerOptional

Specify the end hour of the call time range (1-24).

Example: 24
statusstring · enumOptional

Call status.

Possible values:
start_timestring · date-timeRequired

The start time of the report period.
Must include timezone in RFC3339 format (e.g. 2025-09-28T00:00:00-04:00).

Example: 2025-09-28T00:00:00-04:00
end_timestring · date-timeRequired

The end time of the report period.
Must include timezone in RFC3339 format (e.g. 2025-09-28T15:00:00-04:00).

Example: 2025-09-28T15:00:00-04:00
session_idstringOptional

Unique session ID for the call.

Example: 1040099039162400768
directionstring · enumOptional

Call direction type, indicating the routing path of the call.

Example: INBOUNDPossible values:
Responses
200

Successful response

application/json
countintegerOptional

Total number of records

post/dataflow/analytics/calls/history
POST /api/dataflow/analytics/calls/history HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 263

{
  "from": "101",
  "to": "100",
  "start_duration": 10,
  "end_duration": 60,
  "start_hour_of_day": 0,
  "end_hour_of_day": 24,
  "status": "ANSWERED",
  "start_time": "2025-09-29T00:00:00-04:00",
  "end_time": "2025-10-05T23:59:59-04:00",
  "session_id": "1040099039162400768",
  "direction": "INBOUND"
}
{
  "count": 1,
  "items": [
    {
      "session_id": "xxxxxx",
      "caller": "101",
      "caller_display_name": "101",
      "caller_endpoint": "",
      "call_id": "a5G37QtkQC6BrNkGMFGyPA",
      "service_number": "",
      "service_name": "",
      "service_type": "",
      "callee": "102",
      "callee_display_name": "102",
      "callee_endpoint": "",
      "started_at": "2020-01-01T00:00:00Z",
      "rang_at": "2020-01-01T00:00:00Z",
      "answered_at": "2020-01-01T00:00:00Z",
      "ended_at": "2020-01-01T00:00:00Z",
      "direction": "Inbound",
      "end_reason": "",
      "reroute_reason": "",
      "status_code": 480,
      "destination": "",
      "outbound_caller_id": "123456",
      "did": "",
      "call_type": "",
      "callback_id": "xxxxxx",
      "billing_prefix": "",
      "cost": 0,
      "user_data": "",
      "inbound_trunk": "",
      "outbound_trunk": ""
    }
  ]
}

Get call User history analytics

post

Retrieve detailed call user history analytics within a specified time range.

  • Supports up to 365 days range.

  • Allows filtering by caller (from), callee (to), duration, status, and session ID.

  • Supports pagination via top and skip.

  • Time fields (start_time, end_time, start_hour_of_day, end_hour_of_day) must include timezone information (e.g., +08:00).

  • The status field is an enumeration with possible values: NONE, ANSWERED, NOT_ANSWERED.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
countbooleanOptional

Use the $count=true query option to include a count of entities that match the filter criteria.

Default: false
skipinteger · int32Optional

Use the skip query parameter to set the number of items to skip at the start of a collection.

Default: 0
topinteger · int32 · min: 1 · max: 100Optional

Use the top query parameter to specify the page size of the result set.

Default: 100
Body
start_durationintegerOptional

Call duration from start time in seconds.

Example: 100
end_durationintegerOptional

Call duration until end time in seconds.

Example: 200
start_hour_of_dayintegerOptional

Specify the start hour of the call time range (0-23).

Example: 0
end_hour_of_dayintegerOptional

Specify the end hour of the call time range (1-24).

Example: 24
statusstring · enumOptional

Call status.

Possible values:
start_timestring · date-timeOptional

The start time of the report period.
Must include timezone in RFC3339 format (e.g. 2025-09-28T00:00:00-04:00).

Example: 2025-09-28T00:00:00-04:00
end_timestring · date-timeOptional

The end time of the report period.
Must include timezone in RFC3339 format (e.g. 2025-09-28T15:00:00-04:00).

Example: 2025-09-28T15:00:00-04:00
userstringOptional

User number.

Example: 101
partystring · enumOptional

Call party type, indicating the routing path of the call.

Possible values:
directionstring · enumOptional

Call direction type, indicating the routing path of the call.

Example: InboundPossible values:
destinationstringOptional

Actual address of the callee, e.g., "sip:102@192.168.1.100:9002".

Responses
200

Successful response

application/json
countintegerOptional

Total number of records

post/dataflow/analytics/calls/user/history
POST /api/dataflow/analytics/calls/user/history HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 203

{
  "destination": "102",
  "start_duration": 10,
  "end_duration": 300,
  "start_hour_of_day": 0,
  "end_hour_of_day": 24,
  "status": "ANSWERED",
  "start_time": "2025-09-29T00:00:00-04:00",
  "end_time": "2025-10-05T23:59:59-04:00"
}
{
  "count": 1,
  "items": [
    {
      "session_id": "123412312313132",
      "caller": "101",
      "caller_display_name": "101",
      "caller_endpoint": "",
      "call_id": "a5G37QtkQC6BrNkGMFGyPA",
      "service_number": "",
      "service_name": "",
      "service_type": "",
      "callee": "102",
      "callee_display_name": "102",
      "callee_endpoint": "",
      "started_at": "2020-01-01T00:00:00Z",
      "rang_at": "",
      "answered_at": "",
      "ended_at": "",
      "direction": "CALLER",
      "end_reason": "",
      "reroute_reason": "",
      "status_code": 480,
      "destination": "",
      "outbound_caller_id": "123456",
      "did": "",
      "call_type": "",
      "callback_id": "xxxxxx",
      "billing_prefix": "",
      "cost": 0,
      "user_data": "",
      "inbound_trunk": "",
      "outbound_trunk": ""
    }
  ]
}

Retrieve Call History Details

post

Retrieve detailed call history for the specified session_id.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
session_idstringRequiredExample: NzAwNTUxOTA5NzczMTQ4MTYw
Body
objectOptional

Optional filters or additional request parameters

Responses
200

Successful response

application/json
post/dataflow/analytics/calls/history/{session_id}
POST /api/dataflow/analytics/calls/history/{session_id} HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
{
  "items": [
    {
      "session_id": "xxxxxx",
      "caller": "101",
      "caller_display_name": "101",
      "caller_endpoint": "",
      "call_id": "a5G37QtkQC6BrNkGMFGyPA",
      "service_number": "",
      "service_name": "",
      "service_type": "",
      "callee": "102",
      "callee_display_name": "102",
      "callee_endpoint": "",
      "started_at": "2020-01-01T00:00:00Z",
      "rang_at": "2020-01-01T00:00:00Z",
      "answered_at": "2020-01-01T00:00:00Z",
      "ended_at": "2020-01-01T00:00:00Z",
      "direction": "Inbound",
      "end_reason": "",
      "reroute_reason": "",
      "status_code": 480,
      "destination": "",
      "outbound_caller_id": "123456",
      "did": "",
      "call_type": "",
      "callback_id": "xxxxxx",
      "billing_prefix": "",
      "cost": 0,
      "user_data": "",
      "inbound_trunk": "",
      "outbound_trunk": ""
    }
  ]
}

Retrieve Call History Details by Session ID

post

Query detailed call history for a specific session_id.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
session_idstringRequiredExample: NzAwNTUxOTA5NzczMTQ4MTYw
Responses
200

OK

application/json
post/dataflow/analytics/calls/user/history/{session_id}
POST /api/dataflow/analytics/calls/user/history/{session_id} HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "items": [
    {
      "session_id": "123412312313132",
      "caller": "101",
      "caller_display_name": "101",
      "caller_endpoint": "",
      "call_id": "a5G37QtkQC6BrNkGMFGyPA",
      "service_number": "",
      "service_name": "",
      "service_type": "",
      "callee": "102",
      "callee_display_name": "102",
      "callee_endpoint": "",
      "started_at": "2020-01-01T00:00:00Z",
      "rang_at": "",
      "answered_at": "",
      "ended_at": "",
      "direction": "Inbound",
      "end_reason": "",
      "reroute_reason": "",
      "status_code": 480,
      "destination": "",
      "outbound_caller_id": "123456",
      "did": "",
      "call_type": "",
      "callback_id": "xxxxxx",
      "billing_prefix": "",
      "cost": 0,
      "user_data": "",
      "inbound_trunk": "",
      "outbound_trunk": ""
    }
  ]
}

Retrieve user activity records, including login and logout events.

post

This API returns user activity data, which records user login and logout events from the system. The data is typically used for auditing, monitoring, and analytics purposes.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
countbooleanOptional

Use the $count=true query option to include a count of entities that match the filter criteria.

Default: false
skipinteger · int32Optional

Use the skip query parameter to set the number of items to skip at the start of a collection.

Default: 0
topinteger · int32 · min: 1 · max: 100Optional

Use the top query parameter to specify the page size of the result set.

Default: 100
Body
start_timestring · date-timeRequired

The start time of the report period.
Must include timezone in RFC3339 format (e.g. 2025-09-28T00:00:00-04:00).

Example: 2025-09-28T00:00:00-04:00
end_timestring · date-timeRequired

The end time of the report period.
Must include timezone in RFC3339 format (e.g. 2025-09-28T15:00:00-04:00).

Example: 2025-09-28T15:00:00-04:00
numberintegerOptional

Call duration from start time in seconds.

Example: 100
eventstring · enumRequired

Filter by user activity event type.

Example: SIP_LOGINPossible values:
Responses
200

Successful response

application/json
countintegerOptional

Total number of records

post/dataflow/analytics/activity/users
POST /api/dataflow/analytics/activity/users HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 103

{
  "start_time": "2024-01-01T00:00:00Z",
  "end_time": "2024-01-31T23:59:59Z",
  "number": 10,
  "event": "SIP_LOGIN"
}
{
  "count": 1,
  "items": [
    {
      "name": "Jason",
      "number": "101",
      "event": "SIP_LOGIN",
      "device": "Yealink",
      "address": "192.168.0.11:5060",
      "time": "2025-09-28T00:00:00Z"
    }
  ]
}

Retrieve current user activity records, including login and logout events.

post

This API returns current user activity data, which records user login and logout events from the system. The data is typically used for auditing, monitoring, and analytics purposes.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
countbooleanOptional

Use the $count=true query option to include a count of entities that match the filter criteria.

Default: false
skipinteger · int32Optional

Use the skip query parameter to set the number of items to skip at the start of a collection.

Default: 0
topinteger · int32 · min: 1 · max: 100Optional

Use the top query parameter to specify the page size of the result set.

Default: 100
Body
start_timestring · date-timeRequired

The start time of the report period.
Must include timezone in RFC3339 format (e.g. 2025-09-28T00:00:00-04:00).

Example: 2025-09-28T00:00:00-04:00
end_timestring · date-timeRequired

The end time of the report period.
Must include timezone in RFC3339 format (e.g. 2025-09-28T15:00:00-04:00).

Example: 2025-09-28T15:00:00-04:00
eventstring · enumRequired

Filter by user activity event type.

Example: SIP_LOGINPossible values:
Responses
200

Successful response

application/json
countintegerOptional

Total number of records

post/dataflow/analytics/activity/user
POST /api/dataflow/analytics/activity/user HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 91

{
  "start_time": "2024-01-01T00:00:00Z",
  "end_time": "2024-01-31T23:59:59Z",
  "event": "SIP_LOGIN"
}
{
  "count": 1,
  "items": [
    {
      "name": "Jason",
      "number": "101",
      "event": "SIP_LOGIN",
      "device": "Yealink",
      "address": "192.168.0.11:5060",
      "time": "2025-09-28T00:00:00Z"
    }
  ]
}

Get Report Job List

get

Retrieve the list of scheduled report job.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
filterstringOptional

Use the filter query parameter to retrieve just a subset of a collection.

countbooleanOptional

Use the $count=true query option to include a count of entities that match the filter criteria.

Default: false
orderbystringOptional

Use the orderby query parameter to specify the sort order of the items returned from server.
The default order is ascending order.

skipinteger · int32Optional

Use the skip query parameter to set the number of items to skip at the start of a collection.

Default: 0
topinteger · int32 · min: 1 · max: 100Optional

Use the top query parameter to specify the page size of the result set.

Default: 100
Responses
200

OK

application/json
countinteger · int64Optional

Total number of resource.

Example: 100
get/dataflow/report_jobs
GET /api/dataflow/report_jobs HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "count": 2,
  "items": [
    {
      "id": "1041190429342564352",
      "schedule_name": "User Statistics Report",
      "type": "USERSTATISTICS",
      "params": {
        "to": "2025-11-02T00:00:00+08:00",
        "from": "2025-11-01T00:00:00+08:00",
        "status": "ANSWERED",
        "direction": "OUTBOUND",
        "time_range": "TODAY",
        "extension_number": "101;102-108"
      },
      "format": "CSV",
      "active": true,
      "time_zone": "Asia/Shanghai",
      "start_time": "2025-11-01T00:00:00+08:00",
      "end_time": "2025-11-20T00:00:00+08:00",
      "cron_expr": "",
      "create_time": "2025-11-13T11:19:02.738568+08:00",
      "recipients": "user1@example.com;user2@example.com",
      "last_run_time": "2025-11-13T11:19:02.738568+08:00"
    },
    {
      "id": "1041190429342564355",
      "schedule_name": "User Statistics Report2",
      "type": "USERSTATISTICS",
      "params": {
        "to": "2025-11-03T00:00:00+08:00",
        "from": "2025-11-02T00:00:00+08:00",
        "status": "ANSWERED",
        "direction": "OUTBOUND",
        "time_range": "TODAY",
        "extension_number": "101;102-108"
      },
      "format": "CSV",
      "active": true,
      "time_zone": "Asia/Shanghai",
      "start_time": "2025-12-01T00:00:00+08:00",
      "end_time": "2025-12-20T00:00:00+08:00",
      "cron_expr": "",
      "create_time": "2025-11-14T11:19:02.738568+08:00",
      "recipients": "user1@example.com;user2@example.com",
      "last_run_time": "2025-12-13T11:19:02.738568+08:00"
    }
  ]
}

Create Report Job

post

Create a new analytics report task.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
or
or
or
or
or
or
or
or
or
or
or
Responses
200

OK

application/json
idstringOptionalExample: NzAwNTUxOTA5NzczMTQ4MTYw
post/dataflow/report_jobs
POST /api/dataflow/report_jobs HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 434

{
  "type": "USERSTATISTICS",
  "format": "CSV",
  "schedule_name": "My User Statistics Report",
  "start_time": "2025-10-01T00:00:00Z",
  "end_time": "2025-10-31T23:59:59Z",
  "params": {
    "extension_number": "101;102-108;110",
    "status": "ANSWERED",
    "direction": "INBOUND",
    "from": "2025-11-01T00:00:00Z",
    "to": "2025-11-02T00:00:00Z",
    "time_range": "TODAY"
  },
  "cron_expr": "0 0 * * *",
  "active": true,
  "recipients": "team@example.com;test2@qq.com",
  "time_zone": "Asia/Shanghai"
}
{
  "id": "1017758181150949376"
}

Retrieve Report Job Details

get

Get detailed information of a report execution job specified by id.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired

Report Job ID

Example: NzAwNTUxOTA5NzczMTQ4MTYw
Responses
200

Successful retrieval of the report job details.

application/json
or
or
or
or
or
or
or
or
or
or
or
get/dataflow/report_jobs/{id}
GET /api/dataflow/report_jobs/{id} HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "type": "USERSTATISTICS",
  "format": "CSV",
  "schedule_name": "My User Statistics Report",
  "start_time": "2025-10-01T00:00:00Z",
  "end_time": "2025-10-31T23:59:59Z",
  "params": {
    "extension_number": "101;102-108;110",
    "status": "ANSWERED",
    "direction": "INBOUND",
    "from": "2025-11-01T00:00:00Z",
    "to": "2025-11-02T00:00:00Z",
    "time_range": "TODAY"
  },
  "cron_expr": "0 0 * * *",
  "active": true,
  "recipients": "team@example.com;test2@qq.com",
  "time_zone": "Asia/Shanghai"
}

Update Report Job

post

Update an existing analytics report Job. {id} is the report Jon ID.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired

Report Job ID

Example: NzAwNTUxOTA5NzczMTQ4MTYw
Body
or
or
or
or
or
or
or
or
or
or
or
Responses
200

updated successfully.

No content

post/dataflow/report_jobs/{id}
POST /api/dataflow/report_jobs/{id} HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 434

{
  "type": "USERSTATISTICS",
  "format": "CSV",
  "schedule_name": "My User Statistics Report",
  "start_time": "2025-10-01T00:00:00Z",
  "end_time": "2025-10-31T23:59:59Z",
  "params": {
    "extension_number": "101;102-108;110",
    "status": "ANSWERED",
    "direction": "INBOUND",
    "from": "2025-11-01T00:00:00Z",
    "to": "2025-11-02T00:00:00Z",
    "time_range": "TODAY"
  },
  "cron_expr": "0 0 * * *",
  "active": true,
  "recipients": "team@example.com;test2@qq.com",
  "time_zone": "Asia/Shanghai"
}

No content

Delete a Report Job

post

Permanently delete the report execution task specified by id.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired

The unique identifier of the report job to delete.

Example: NzAwNTUxOTA5NzczMTQ4MTYw
Responses
200

deleted successfully.

No content

post/dataflow/report_jobs/{id}/destroy
POST /api/dataflow/report_jobs/{id}/destroy HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

Retrieve Report Execution Logs

get

Get detailed information of a report execution job specified by id.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
filterstringOptional

Use the filter query parameter to retrieve just a subset of a collection.

countbooleanOptional

Use the $count=true query option to include a count of entities that match the filter criteria.

Default: false
orderbystringOptional

Use the orderby query parameter to specify the sort order of the items returned from server.
The default order is ascending order.

skipinteger · int32Optional

Use the skip query parameter to set the number of items to skip at the start of a collection.

Default: 0
topinteger · int32 · min: 1 · max: 100Optional

Use the top query parameter to specify the page size of the result set.

Default: 100
Responses
200

OK

application/json
countinteger · int64Optional

Total number of resource.

Example: 100
get/dataflow/report_list
GET /api/dataflow/report_list HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "count": 2,
  "items": [
    {
      "id": "1041260768550453248",
      "report_id": "1041254768468557824",
      "report_name": "User Statistics-13112025-246799",
      "schedule_name": "My Daily Report",
      "type": "USERSTATISTICS",
      "format": "CSV",
      "file_url": "/api/blobs/V5lc8N4e2xFDuNMj2TGIxAAAAPQmTXMO",
      "create_time": "2025-11-13T15:58:32.912541+08:00",
      "finish_time": "2025-11-13T15:58:33.075691+08:00",
      "recipients": "user1@example.com;user2@example.com"
    },
    {
      "id": "1041260768550453249",
      "report_id": "1041254768468557824",
      "report_name": "User Statistics-13112025-246788",
      "schedule_name": "My Daily Report2",
      "type": "USERSTATISTICS",
      "format": "CSV",
      "file_url": "/api/blobs/V5lc8N4e2xFDuNMj2TGIxAAAAPQ",
      "create_time": "2025-11-13T11:58:32.912541+08:00",
      "finish_time": "2025-11-13T11:59:33.075691+08:00",
      "recipients": "user1@example.com;user2@example.com"
    }
  ]
}

Delete a report log

post

Delete a specific report log entry by its unique identifier.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired

Unique report log identifier.

Example: NzAwNTUxOTA5NzczMTQ4MTYw
Responses
200

deleted successfully.

No content

post/dataflow/report_list/{id}/destroy
POST /api/dataflow/report_list/{id}/destroy HTTP/1.1
Host: HOSTNAME:8887
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

Last updated

Was this helpful?