OtherAPI ReferenceOther

Get concurrent streams history

Returns historical concurrent stream counts for the project, aggregated per period. The project is implied by the API key used for authentication. Region-scoped. Every aggregation period in the requested window is returned, with no gaps. Periods with no recorded activity have every field set to `0`.

GET
https://api.soniox.com/v1/concurrent-streams-history

Returns historical concurrent stream counts for the project, aggregated per period. The project is implied by the API key used for authentication. Region-scoped.

Every aggregation period in the requested window is returned, with no gaps. Periods with no recorded activity have every field set to 0.

Headers

AuthorizationRequiredBearer <SONIOX_API_KEY>

Query parameters

start_timeRequiredstring

Start of the time window (inclusive). Must be an ISO 8601 timestamp in UTC (e.g. 2026-04-28T09:00:00Z). Filters by period_start.

end_timeRequiredstring

End of the time window (exclusive). Must be an ISO 8601 timestamp in UTC (e.g. 2026-04-28T09:00:00Z) and strictly after start_time. Filters by period_start.

period_secRequiredinteger

Aggregation period in seconds. One of 60 (per-minute), 3600 (hourly), 86400 (daily). The period also caps how long the requested window may be.

Value in: 60 | 3600 | 86400
kindRequiredstring

Stream kind to return. stt covers Speech-to-Text WebSocket sessions, tts covers Text-to-Speech WebSocket streams and REST requests.

Accepted values: "stt" | "tts"

Response

200

Per-period concurrent stream aggregates.

kindRequiredstring

Stream kind these entries describe (stt or tts).

Accepted values: "stt" | "tts"
entriesRequiredarray<object>

Per-period concurrent stream aggregates for the authenticated project, ordered by period_start ascending. Every aggregation period in the requested window is returned, with no gaps. Periods with no recorded activity have every field set to 0.

Errors

Per-period concurrent stream aggregates.

{
  "kind": "tts",
  "entries": [
    {
      "period_start": "2026-04-28T09:00:00Z",
      "period_sec": 60,
      "sample_min": 0,
      "sample_max": 4,
      "sample_sum": 21,
      "sample_count": 9,
      "total_count": 1
    },
    {
      "period_start": "2026-04-28T09:01:00Z",
      "period_sec": 60,
      "sample_min": 0,
      "sample_max": 0,
      "sample_sum": 0,
      "sample_count": 0,
      "total_count": 0
    }
  ]
}

Invalid request.

Error types:

  • invalid_request: A query parameter is missing or invalid. Common causes: period_sec is not one of 60, 3600, 86400, start_time / end_time not parseable as ISO 8601, end_time not strictly after start_time, the window between them exceeds the maximum for the requested period_sec, or the window would return more than 20000 entries.

{
  "status_code": 400,
  "error_type": "invalid_request",
  "message": "Your request did not pass validation. One or more fields in the request body are missing or have invalid values. See `validation_errors` for the specific field and retry with corrected values.",
  "validation_errors": [
    {
      "error_type": "value_error",
      "location": "query.payload",
      "message": "For period_sec=60, the window between `start_time` and `end_time` must not exceed 7 days."
    }
  ],
  "request_id": "3d37a3bd-5078-47ee-a369-b204e3bbedda",
  "more_info": "https://soniox.com/docs/api-reference/errors#invalid-request"
}

Authentication error.

{
  "status_code": 401,
  "error_type": "unauthenticated",
  "message": "Incorrect API key provided. You can get an API key at https://console.soniox.com",
  "validation_errors": [],
  "request_id": "3d37a3bd-5078-47ee-a369-b204e3bbedda",
  "more_info": "https://soniox.com/docs/api-reference/errors#unauthenticated"
}

Rate / capacity limit exceeded.

Error types:

  • limit_exceeded: The caller hit a per-minute request rate or other capacity limit. The message describes which limit was hit.

{
  "status_code": 429,
  "error_type": "limit_exceeded",
  "message": "Requests per minute limit has been exceeded for your organization.",
  "validation_errors": [],
  "request_id": "3d37a3bd-5078-47ee-a369-b204e3bbedda",
  "more_info": "https://soniox.com/docs/api-reference/errors#limit-exceeded"
}

Internal server error.

{
  "status_code": 500,
  "error_type": "internal_error",
  "message": "The server encountered an error. Please try again. If the issue persists contact support@soniox.com.",
  "validation_errors": [],
  "request_id": "3d37a3bd-5078-47ee-a369-b204e3bbedda",
  "more_info": "https://soniox.com/docs/api-reference/errors#internal-error"
}