Get Concurrency Trend
curl --request GET \
--url https://prod-api.ringg.ai/ca/api/v0/analytics/v4/concurrency-trend \
--header 'X-API-KEY: <api-key>'import requests
url = "https://prod-api.ringg.ai/ca/api/v0/analytics/v4/concurrency-trend"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://prod-api.ringg.ai/ca/api/v0/analytics/v4/concurrency-trend', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"series": [
{
"bucket": "2026-10-15 14:00:00",
"paid": 5,
"received": 7
}
],
"granularity": "hour",
"available": true
}{
"message": "invalid channel(s): sms"
}{
"message": "Failed to fetch concurrency trend!"
}Get Concurrency Trend
Get your workspace’s paid concurrency against the concurrency it received over time, hourly for up to two days and daily for longer date ranges.
GET
/
analytics
/
v4
/
concurrency-trend
Get Concurrency Trend
curl --request GET \
--url https://prod-api.ringg.ai/ca/api/v0/analytics/v4/concurrency-trend \
--header 'X-API-KEY: <api-key>'import requests
url = "https://prod-api.ringg.ai/ca/api/v0/analytics/v4/concurrency-trend"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://prod-api.ringg.ai/ca/api/v0/analytics/v4/concurrency-trend', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"series": [
{
"bucket": "2026-10-15 14:00:00",
"paid": 5,
"received": 7
}
],
"granularity": "hour",
"available": true
}{
"message": "invalid channel(s): sms"
}{
"message": "Failed to fetch concurrency trend!"
}Returns the Concurrency usage chart in Analytics. If
received keeps reaching paid, your calls are waiting on concurrency: raise it on Billing.
Notes
- It covers the whole workspace and takes only the date range,
tzandsub_workspace_id. granularityishourfor ranges of two days or less anddayotherwise.availableisfalsewhen there is no data for the range.
Errors
400: a filter is invalid, such as an unknownchannel, a malformed ID, orsub_workspace_idsent from a workspace that isn’t a primary workspace.401:X-API-KEYis missing or invalid.
Authorizations
Query Parameters
Start of the reporting window. Accepts YYYY-MM-DD or ISO-8601. Omit both dates for all time.
Example:
"2026-10-01"
End of the reporting window (inclusive). Accepts YYYY-MM-DD or ISO-8601.
Example:
"2026-10-15"
IANA timezone used to bucket the time series (for example Asia/Kolkata). Bucket labels are returned in this timezone. Omitted or invalid values fall back to UTC.
Example:
"Asia/Kolkata"
Primary workspaces only: limit the combined analytics to these Ringg Spaces. Repeat the parameter for multiple IDs. The primary workspace's own ID is accepted; any other workspace sending this parameter gets 400.
Example:
["00000000-0000-4000-8000-000000000101"]
Was this page helpful?