Auvious RTC API v1.9.18
Auvious RTC API is the core set of services providing the realtime communication capabilities of the Auvious Platform.
You are viewing REST API documentation. This documentation is auto-generated from a swagger specification which itself is generated from annotations in the source code of the project. It is possible that this documentation includes bugs and that code samples are incomplete or wrong.
Authentication
HTTP Authentication, scheme: bearer
OAuth 2.0 Authorization.
Flow: clientCredentials
OAuth 2.0 Token URL = https://auvious.video/security/oauth/token
OAuth 2.0 Scope
Scope Scope Description
Interaction
Get interaction by id
GET https://auvious.video/rtc-api/interactions/{interactionId} HTTP/1.1
Host: auvious.video
Accept: application/json
Returns the interaction data for the supplied interaction id. SERVICE clients bypass organization scoping.
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| interactionId | path | string | true | none |
Responses
Overview
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Interaction found | Interaction |
| 400 | Bad Request | Bad Request | Inline |
| 401 | Unauthorized | Unauthorized | Interaction |
| 403 | Forbidden | Forbidden | Interaction |
| 404 | Not Found | Interaction not found | Interaction |
Response Schema
Status Code 400
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » additionalProperties | string | false | none | none |
Examples
200 Response
{
"id": "string",
"organizationId": "string",
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"type": "string",
"data": {
"property1": {},
"property2": {}
},
"version": 0
}
400 Response
To perform this operation, you must be authenticated by means of one of the following methods: BearerToken, OAuth2ClientCredentials
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X GET https://auvious.video/rtc-api/interactions/{interactionId} \
-H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
var body []byte
// body = ...
req, err := http.NewRequest("GET", "https://auvious.video/rtc-api/interactions/{interactionId}", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
const headers = {
'Accept': 'application/json', 'Authorization': 'Bearer {access-token}'
}
fetch('https://auvious.video/rtc-api/interactions/{interactionId}', {
method: 'GET',
headers
})
.then(r => r.json())
.then((body) => {
console.log(body)
})
// This sample needs improvement.
URL obj = new URL("https://auvious.video/rtc-api/interactions/{interactionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get(
'https://auvious.video/rtc-api/interactions/{interactionId}',
params={},
headers = headers)
print r.json()
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://auvious.video/rtc-api/interactions/{interactionId}',
params: {}, headers: headers
p JSON.parse(result)
Update an interaction
PUT https://auvious.video/rtc-api/interactions/{interactionId} HTTP/1.1
Host: auvious.video
Content-Type: application/json
Accept: */*
Updates an existing interaction. Agents are limited to their organization's interactions.
SERVICE clients may update any interaction by id. Optimistic locking is supported through the optional version field.
Request body
{
"type": "string",
"data": {
"property1": {},
"property2": {}
},
"version": 0
}
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| interactionId | path | string | true | none |
| body | body | UpdateInteractionWebCommand | true | none |
Responses
Overview
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | Interaction updated | None |
| 400 | Bad Request | Invalid request payload | Inline |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| 404 | Not Found | Interaction not found | None |
| 409 | Conflict | Version conflict detected | None |
Response Schema
Status Code 400
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » additionalProperties | string | false | none | none |
Examples
400 Response
To perform this operation, you must be authenticated by means of one of the following methods: BearerToken, OAuth2ClientCredentials
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X PUT https://auvious.video/rtc-api/interactions/{interactionId} \
-H 'Content-Type: application/json' \ -H 'Accept: */*' \ -H 'Authorization: Bearer {access-token}'
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
var body []byte
// body = ...
req, err := http.NewRequest("PUT", "https://auvious.video/rtc-api/interactions/{interactionId}", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
const input = '{
"type": "string",
"data": {
"property1": {},
"property2": {}
},
"version": 0
}';
const headers = {
'Content-Type': 'application/json', 'Accept': '*/*', 'Authorization': 'Bearer {access-token}'
}
fetch('https://auvious.video/rtc-api/interactions/{interactionId}', {
method: 'PUT',
body: input,
headers
})
.then(r => r.json())
.then((body) => {
console.log(body)
})
// This sample needs improvement.
URL obj = new URL("https://auvious.video/rtc-api/interactions/{interactionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.put(
'https://auvious.video/rtc-api/interactions/{interactionId}',
params={},
headers = headers)
print r.json()
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put 'https://auvious.video/rtc-api/interactions/{interactionId}',
params: {}, headers: headers
p JSON.parse(result)
Retrieve interactions by date range
GET https://auvious.video/rtc-api/interactions?start=2025-01-20T22%3A00%3A00.928Z&end=2025-01-21T21%3A59%3A59.928Z HTTP/1.1
Host: auvious.video
Accept: application/json
Retrieve intercations for a date range with pagination and sorting
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| page | query | integer | false | Page index (0-based) |
| size | query | integer | false | Number of items per page |
| sort | query | array[string] | false | Sorting criteria |
| start | query | string(date-time) | true | start date in ISO 8601 |
| end | query | string(date-time) | true | end date in ISO 8601 |
| type | query | string | false | The type of the interaction. One or more of: 'audio','video','chat','cobrowse' |
| userId | query | string | false | The user id that created the interaction. |
| recording | query | string | false | Recording filter. Valid values: 'media','no_media','cobrowse','no_cobrowse' |
| customerId | query | string | false | Filter on customer id |
| conferenceId | query | string | false | Filter by conference id |
| tags | query | string | false | Filter by tags |
| onHoldDurationGt | query | string | false | Minimum on hold duration in milliseconds |
| onHoldDurationLt | query | string | false | Maximum on hold duration in milliseconds |
Responses
Overview
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | PageInteraction |
| 400 | Bad Request | Bad Request | Inline |
Response Schema
Status Code 400
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » additionalProperties | string | false | none | none |
Examples
200 Response
{
"totalPages": 0,
"totalElements": 0,
"size": 0,
"content": [
{
"id": "string",
"organizationId": "string",
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"type": "string",
"data": {
"property1": {},
"property2": {}
},
"version": 0
}
],
"number": 0,
"sort": {
"empty": true,
"sorted": true,
"unsorted": true
},
"numberOfElements": 0,
"pageable": {
"offset": 0,
"sort": {
"empty": true,
"sorted": true,
"unsorted": true
},
"pageSize": 0,
"paged": true,
"pageNumber": 0,
"unpaged": true
},
"first": true,
"last": true,
"empty": true
}
400 Response
To perform this operation, you must be authenticated by means of one of the following methods: BearerToken, OAuth2ClientCredentials
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X GET https://auvious.video/rtc-api/interactions?start=2025-01-20T22%3A00%3A00.928Z&end=2025-01-21T21%3A59%3A59.928Z \
-H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
var body []byte
// body = ...
req, err := http.NewRequest("GET", "https://auvious.video/rtc-api/interactions", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
const headers = {
'Accept': 'application/json', 'Authorization': 'Bearer {access-token}'
}
fetch('https://auvious.video/rtc-api/interactions?start=2025-01-20T22%3A00%3A00.928Z&end=2025-01-21T21%3A59%3A59.928Z', {
method: 'GET',
headers
})
.then(r => r.json())
.then((body) => {
console.log(body)
})
// This sample needs improvement.
URL obj = new URL("https://auvious.video/rtc-api/interactions?start=2025-01-20T22%3A00%3A00.928Z&end=2025-01-21T21%3A59%3A59.928Z");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get(
'https://auvious.video/rtc-api/interactions',
params={
'start': '2025-01-20T22:00:00.928Z',
'end': '2025-01-21T21:59:59.928Z'},
headers = headers)
print r.json()
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://auvious.video/rtc-api/interactions',
params: {
'start' => 'string(date-time)',
'end' => 'string(date-time)'}, headers: headers
p JSON.parse(result)
Create an interaction
POST https://auvious.video/rtc-api/interactions HTTP/1.1
Host: auvious.video
Content-Type: application/json
Accept: application/json
Creates a new interaction record. Agents implicitly target their own organization as derived from the JWT.
Internal SERVICE clients must provide the organizationId field in the request body because their tokens do not carry the claim.
Request body
{
"interactionId": "string",
"type": "string",
"data": {
"property1": {},
"property2": {}
},
"organizationId": "string"
}
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | CreateInteractionWebCommand | true | none |
Responses
Overview
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Interaction created | CreateInteractionResponse |
| 400 | Bad Request | Missing organizationId for SERVICE caller | Inline |
| 401 | Unauthorized | Unauthorized | CreateInteractionResponse |
| 409 | Conflict | Interaction already exists | CreateInteractionResponse |
Response Schema
Status Code 400
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » additionalProperties | string | false | none | none |
Examples
200 Response
{
"interactionId": "string",
"version": 0
}
400 Response
To perform this operation, you must be authenticated by means of one of the following methods: BearerToken, OAuth2ClientCredentials
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X POST https://auvious.video/rtc-api/interactions \
-H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
var body []byte
// body = ...
req, err := http.NewRequest("POST", "https://auvious.video/rtc-api/interactions", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
const input = '{
"interactionId": "string",
"type": "string",
"data": {
"property1": {},
"property2": {}
},
"organizationId": "string"
}';
const headers = {
'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer {access-token}'
}
fetch('https://auvious.video/rtc-api/interactions', {
method: 'POST',
body: input,
headers
})
.then(r => r.json())
.then((body) => {
console.log(body)
})
// This sample needs improvement.
URL obj = new URL("https://auvious.video/rtc-api/interactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post(
'https://auvious.video/rtc-api/interactions',
params={},
headers = headers)
print r.json()
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://auvious.video/rtc-api/interactions',
params: {}, headers: headers
p JSON.parse(result)
Schemas
UpdateInteractionWebCommand
{
"type": "string",
"data": {
"property1": {},
"property2": {}
},
"version": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| type | string | false | none | type of interaction, e.g. video call if omitted it wont be updated |
| data | object | false | none | interaction data, this is the place to store arbitrary data that might be needed later, if omitted it won't be updated. Careful with this, when supplied it all data will be replaced |
| » additionalProperties | object | false | none | interaction data, this is the place to store arbitrary data that might be needed later, if omitted it won't be updated. Careful with this, when supplied it all data will be replaced |
| version | integer(int64) | false | none | version of the interaction, used for optimistic locking, optional, if not provided it will be ignored |
CreateInteractionWebCommand
{
"interactionId": "string",
"type": "string",
"data": {
"property1": {},
"property2": {}
},
"organizationId": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| interactionId | string | false | none | interaction id, can be supplied to match integration party e.g. Genesys Cloud interaction/conversation id |
| type | string | false | none | type of interaction, e.g. video call |
| data | object | false | none | interaction data, this is the place to store arbitrary data that might be needed later |
| » additionalProperties | object | false | none | interaction data, this is the place to store arbitrary data that might be needed later |
| organizationId | string | false | none | organization id; required when creating interactions using service credentials |
CreateInteractionResponse
{
"interactionId": "string",
"version": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| interactionId | string | false | none | none |
| version | integer(int64) | false | none | none |
Interaction
{
"id": "string",
"organizationId": "string",
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"type": "string",
"data": {
"property1": {},
"property2": {}
},
"version": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | false | none | none |
| organizationId | string | false | none | none |
| createdBy | string | false | none | none |
| createdAt | string(date-time) | false | none | none |
| type | string | false | none | none |
| data | object | false | none | none |
| » interaction data | object | false | none | none |
| version | integer(int64) | false | none | none |
PageInteraction
{
"totalPages": 0,
"totalElements": 0,
"size": 0,
"content": [
{
"id": "string",
"organizationId": "string",
"createdBy": "string",
"createdAt": "2019-08-24T14:15:22Z",
"type": "string",
"data": {
"property1": {},
"property2": {}
},
"version": 0
}
],
"number": 0,
"sort": {
"empty": true,
"sorted": true,
"unsorted": true
},
"numberOfElements": 0,
"pageable": {
"offset": 0,
"sort": {
"empty": true,
"sorted": true,
"unsorted": true
},
"pageSize": 0,
"paged": true,
"pageNumber": 0,
"unpaged": true
},
"first": true,
"last": true,
"empty": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| totalPages | integer(int32) | false | none | none |
| totalElements | integer(int64) | false | none | none |
| size | integer(int32) | false | none | none |
| content | [Interaction] | false | none | none |
| number | integer(int32) | false | none | none |
| sort | SortObject | false | none | none |
| numberOfElements | integer(int32) | false | none | none |
| pageable | PageableObject | false | none | none |
| first | boolean | false | none | none |
| last | boolean | false | none | none |
| empty | boolean | false | none | none |
PageableObject
{
"offset": 0,
"sort": {
"empty": true,
"sorted": true,
"unsorted": true
},
"pageSize": 0,
"paged": true,
"pageNumber": 0,
"unpaged": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| offset | integer(int64) | false | none | none |
| sort | SortObject | false | none | none |
| pageSize | integer(int32) | false | none | none |
| paged | boolean | false | none | none |
| pageNumber | integer(int32) | false | none | none |
| unpaged | boolean | false | none | none |
SortObject
{
"empty": true,
"sorted": true,
"unsorted": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| empty | boolean | false | none | none |
| sorted | boolean | false | none | none |
| unsorted | boolean | false | none | none |