Skip to main content

Auvious Composition API v1.0

info

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​

  • API Key (apiKey)
    • Parameter Name: Authorization, in: header.

Composition Command Service​

Cancel a running Composition​

POST http://auvious.video/composition/api/{conversationId}/{compositionId}/cancel HTTP/1.1
Host: auvious.video
Accept: */*

Supported roles (AGENT, SUPERVISOR)

Parameters​

ParameterInTypeRequiredDescription
conversationIdpathstringtruenone
compositionIdpathstringtruenone

Responses​

Overview​
StatusMeaningDescriptionSchema
200OKOKInline
Response Schema​
Examples​

200 Response

caution

To perform this operation, you must be authenticated by means of one of the following methods: apiKey

Code samples​

curl -X POST http://auvious.video/composition/api/{conversationId}/{compositionId}/cancel \
-H 'Accept: */*' \ -H 'Authorization: API_KEY'

Create a new Composition​

POST http://auvious.video/composition/api/request HTTP/1.1
Host: auvious.video
Content-Type: application/json
Accept: application/json

Supported roles (AGENT, SUPERVISOR, SERVICE)

Request body​

{
"conversationId": "string",
"type": "VIDEO",
"layout": "GRID",
"name": "string",
"videoFormat": "MP4",
"audioFormat": "MP3",
"resolution": "320x240",
"priority": "0",
"audioBitrateKbps": "48",
"screenShareWidth": "640",
"participantResolution": "320x240"
}

Parameters​

ParameterInTypeRequiredDescription
bodybodyCreateCompositionWebCommandtruenone

Responses​

Overview​
StatusMeaningDescriptionSchema
200OKOKCompositionIdentifier
Examples​

200 Response

{
"id": "string",
"conversationId": "string"
}
caution

To perform this operation, you must be authenticated by means of one of the following methods: apiKey

Code samples​

curl -X POST http://auvious.video/composition/api/request \
-H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: API_KEY'

Re-execute a previously completed composition​

POST http://auvious.video/composition/api/reexecute HTTP/1.1
Host: auvious.video
Content-Type: application/json
Accept: application/json

Supported roles (AGENT, SUPERVISOR)

Request body​

{
"id": "string",
"conversationId": "string",
"priority": "1"
}

Parameters​

ParameterInTypeRequiredDescription
bodybodyReExecuteCompositionWebCommandtruenone

Responses​

Overview​
StatusMeaningDescriptionSchema
200OKOKCompositionIdentifier
Examples​

200 Response

{
"id": "string",
"conversationId": "string"
}
caution

To perform this operation, you must be authenticated by means of one of the following methods: apiKey

Code samples​

curl -X POST http://auvious.video/composition/api/reexecute \
-H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: API_KEY'

Delete existing Composition​

DELETE http://auvious.video/composition/api/{conversationId}/{compositionId}/delete HTTP/1.1
Host: auvious.video
Accept: */*

Supported roles (SUPERVISOR)

Parameters​

ParameterInTypeRequiredDescription
conversationIdpathstringtruenone
compositionIdpathstringtruenone

Responses​

Overview​
StatusMeaningDescriptionSchema
200OKOKInline
Response Schema​
Examples​

200 Response

caution

To perform this operation, you must be authenticated by means of one of the following methods: apiKey

Code samples​

curl -X DELETE http://auvious.video/composition/api/{conversationId}/{compositionId}/delete \
-H 'Accept: */*' \ -H 'Authorization: API_KEY'

Composition Query Service​

Get recording data and associated composition by conversationId​

GET http://auvious.video/composition/api/query/conversation/{conversationId} HTTP/1.1
Host: auvious.video
Accept: application/json

Supported roles (AGENT, SUPERVISOR)

Parameters​

ParameterInTypeRequiredDescription
conversationIdpathstringtruenone

Responses​

Overview​
StatusMeaningDescriptionSchema
200OKOKCompositionMessage
Examples​

200 Response

{
"recordingMetadata": {
"conversationId": "string",
"audio": true,
"video": true,
"started": "string",
"stopped": "string",
"duration": "string",
"totalParticipants": 0,
"canExportVideo": true,
"canExportAudio": true,
"agentId": "string",
"organizationId": "string"
},
"compositions": [
{
"id": "string",
"conversationId": "string",
"userId": "string",
"state": "string",
"type": "string",
"created": "string",
"completed": "string",
"name": "string",
"format": "string",
"layout": "GRID",
"duration": "string",
"ffmpegVersion": "string"
}
]
}
caution

To perform this operation, you must be authenticated by means of one of the following methods: apiKey

Code samples​

curl -X GET http://auvious.video/composition/api/query/conversation/{conversationId} \
-H 'Accept: application/json' \ -H 'Authorization: API_KEY'

Get all compositions initiated by the currently authenticated user​

GET http://auvious.video/composition/api/query/composition?pageable=page,0,size,1,sort,string HTTP/1.1
Host: auvious.video
Accept: application/json

Supported roles (AGENT, SUPERVISOR)

Parameters​

ParameterInTypeRequiredDescription
pageablequeryPageabletruenone

Responses​

Overview​
StatusMeaningDescriptionSchema
200OKOKPageCompositionView
Examples​

200 Response

{
"totalPages": 0,
"totalElements": 0,
"pageable": {
"paged": true,
"pageNumber": 0,
"pageSize": 0,
"offset": 0,
"sort": {
"sorted": true,
"empty": true,
"unsorted": true
},
"unpaged": true
},
"size": 0,
"content": [
{
"id": "string",
"conversationId": "string",
"userId": "string",
"state": "string",
"type": "string",
"created": "string",
"completed": "string",
"name": "string",
"format": "string",
"layout": "GRID",
"duration": "string",
"ffmpegVersion": "string"
}
],
"number": 0,
"sort": {
"sorted": true,
"empty": true,
"unsorted": true
},
"first": true,
"last": true,
"numberOfElements": 0,
"empty": true
}
caution

To perform this operation, you must be authenticated by means of one of the following methods: apiKey

Code samples​

curl -X GET http://auvious.video/composition/api/query/composition?pageable=page,0,size,1,sort,string \
-H 'Accept: application/json' \ -H 'Authorization: API_KEY'

Get a composition by compositionId​

GET http://auvious.video/composition/api/query/composition/{compositionId} HTTP/1.1
Host: auvious.video
Accept: application/json

Supported roles (AGENT, SUPERVISOR). Agents can access their own compositions within the tenant; supervisors can access any tenant composition.

Parameters​

ParameterInTypeRequiredDescription
compositionIdpathstringtruenone

Responses​

Overview​
StatusMeaningDescriptionSchema
200OKOKCompositionView
Examples​

200 Response

{
"id": "string",
"conversationId": "string",
"userId": "string",
"state": "string",
"type": "string",
"created": "string",
"completed": "string",
"name": "string",
"format": "string",
"layout": "GRID",
"duration": "string",
"ffmpegVersion": "string"
}
caution

To perform this operation, you must be authenticated by means of one of the following methods: apiKey

Code samples​

curl -X GET http://auvious.video/composition/api/query/composition/{compositionId} \
-H 'Accept: application/json' \ -H 'Authorization: API_KEY'

Composition Media Player​

Get a signed URL to play a media file by conversation id and composition Id​

GET http://auvious.video/composition/api/player/{conversationId}/{compositionId}/url/inline HTTP/1.1
Host: auvious.video
Accept: */*
Referer: string

Supported roles (AGENT, SUPERVISOR)

Parameters​

ParameterInTypeRequiredDescription
conversationIdpathstringtruenone
compositionIdpathstringtruenone
Refererheaderstringtruenone

Responses​

Overview​
StatusMeaningDescriptionSchema
200OKOKCompositionResourceMessage
Examples​

200 Response

caution

To perform this operation, you must be authenticated by means of one of the following methods: apiKey

Code samples​

curl -X GET http://auvious.video/composition/api/player/{conversationId}/{compositionId}/url/inline \
-H 'Accept: */*' \ -H 'Referer: string' \ -H 'Authorization: API_KEY'

Get a signed URL to download a media file by conversation id and composition Id​

GET http://auvious.video/composition/api/player/{conversationId}/{compositionId}/url/attachment HTTP/1.1
Host: auvious.video
Accept: */*
Referer: string

Supported roles (AGENT, SUPERVISOR)

Parameters​

ParameterInTypeRequiredDescription
conversationIdpathstringtruenone
compositionIdpathstringtruenone
Refererheaderstringtruenone

Responses​

Overview​
StatusMeaningDescriptionSchema
200OKOKCompositionResourceMessage
Examples​

200 Response

caution

To perform this operation, you must be authenticated by means of one of the following methods: apiKey

Code samples​

curl -X GET http://auvious.video/composition/api/player/{conversationId}/{compositionId}/url/attachment \
-H 'Accept: */*' \ -H 'Referer: string' \ -H 'Authorization: API_KEY'

getInline​

GET http://auvious.video/composition/api/player/inline/{conversationId}/{compositionId}/{fileName}?Date=string&Expires=string&Signature=string HTTP/1.1
Host: auvious.video
Accept: */*
Range: string

Parameters​

ParameterInTypeRequiredDescription
conversationIdpathstringtruenone
compositionIdpathstringtruenone
fileNamepathstringtruenone
Datequerystringtruenone
Expiresquerystringtruenone
Signaturequerystringtruenone
Rangeheaderstringfalsenone

Responses​

Overview​
StatusMeaningDescriptionSchema
200OKOKstring
Examples​

200 Response

caution

To perform this operation, you must be authenticated by means of one of the following methods: apiKey

Code samples​

curl -X GET http://auvious.video/composition/api/player/inline/{conversationId}/{compositionId}/{fileName}?Date=string&Expires=string&Signature=string \
-H 'Accept: */*' \ -H 'Range: string' \ -H 'Authorization: API_KEY'

getAttachment​

GET http://auvious.video/composition/api/player/attachment/{conversationId}/{compositionId}/{fileName}?Date=string&Expires=string&Signature=string HTTP/1.1
Host: auvious.video
Accept: */*
Range: string

Parameters​

ParameterInTypeRequiredDescription
conversationIdpathstringtruenone
compositionIdpathstringtruenone
fileNamepathstringtruenone
Datequerystringtruenone
Expiresquerystringtruenone
Signaturequerystringtruenone
Rangeheaderstringfalsenone

Responses​

Overview​
StatusMeaningDescriptionSchema
200OKOKstring
Examples​

200 Response

caution

To perform this operation, you must be authenticated by means of one of the following methods: apiKey

Code samples​

curl -X GET http://auvious.video/composition/api/player/attachment/{conversationId}/{compositionId}/{fileName}?Date=string&Expires=string&Signature=string \
-H 'Accept: */*' \ -H 'Range: string' \ -H 'Authorization: API_KEY'

Schemas​

CreateCompositionWebCommand​

{
"conversationId": "string",
"type": "VIDEO",
"layout": "GRID",
"name": "string",
"videoFormat": "MP4",
"audioFormat": "MP3",
"resolution": "320x240",
"priority": "0",
"audioBitrateKbps": "48",
"screenShareWidth": "640",
"participantResolution": "320x240"
}

Properties​

NameTypeRequiredRestrictionsDescription
conversationIdstringtruenonenone
typestringtruenonenone
layoutstringfalsenoneDefault value: GRID
namestringtruenonenone
videoFormatstringfalsenoneDefault value: MP4
audioFormatstringfalsenoneDefault value: MP3
resolutionstringfalsenoneDeprecated compatibility metadata. Use participantResolution for structured rendering.
priorityinteger(int32)falsenone0 (Low priority), 1 (Normal priority), 2 (High priority). Default value: 1
audioBitrateKbpsinteger(int32)falsenoneStructured audio bitrate in kbps. Default value: 96
screenShareWidthinteger(int32)falsenoneStructured screen-share canvas width. Default value: 1280
participantResolutionstringfalsenoneStructured participant tile resolution. Default value: 320x240
Enumerated Values​
PropertyValue
typeVIDEO
typeAUDIO
layoutGRID
videoFormatMP4
audioFormatMP3
resolution320x240
priority0
priority1
priority2
audioBitrateKbps48
audioBitrateKbps64
audioBitrateKbps96
audioBitrateKbps128
screenShareWidth640
screenShareWidth960
screenShareWidth1280
participantResolution320x240
participantResolution640x480

CompositionIdentifier​

{
"id": "string",
"conversationId": "string"
}

Properties​

NameTypeRequiredRestrictionsDescription
idstringtruenonenone
conversationIdstringtruenonenone

ReExecuteCompositionWebCommand​

{
"id": "string",
"conversationId": "string",
"priority": "1"
}

Properties​

NameTypeRequiredRestrictionsDescription
idstringtruenonenone
conversationIdstringtruenonenone
prioritystringfalsenone1 (Normal priority), 2 (High priority)
Enumerated Values​
PropertyValue
priority1
priority2

ComposedRecordingDataMessage​

{
"conversationId": "string",
"audio": true,
"video": true,
"started": "string",
"stopped": "string",
"duration": "string",
"totalParticipants": 0,
"canExportVideo": true,
"canExportAudio": true,
"agentId": "string",
"organizationId": "string"
}

Properties​

NameTypeRequiredRestrictionsDescription
conversationIdstringfalsenonenone
audiobooleanfalsenonenone
videobooleanfalsenonenone
startedstringfalsenonenone
stoppedstringfalsenonenone
durationstringfalsenonenone
totalParticipantsinteger(int32)falsenonenone
canExportVideobooleanfalsenonenone
canExportAudiobooleanfalsenonenone
agentIdstringfalsenonenone
organizationIdstringfalsenonenone

CompositionMessage​

{
"recordingMetadata": {
"conversationId": "string",
"audio": true,
"video": true,
"started": "string",
"stopped": "string",
"duration": "string",
"totalParticipants": 0,
"canExportVideo": true,
"canExportAudio": true,
"agentId": "string",
"organizationId": "string"
},
"compositions": [
{
"id": "string",
"conversationId": "string",
"userId": "string",
"state": "string",
"type": "string",
"created": "string",
"completed": "string",
"name": "string",
"format": "string",
"layout": "GRID",
"duration": "string",
"ffmpegVersion": "string"
}
]
}

Properties​

NameTypeRequiredRestrictionsDescription
recordingMetadataComposedRecordingDataMessagefalsenonenone
compositions[CompositionView]falsenonenone

CompositionView​

{
"id": "string",
"conversationId": "string",
"userId": "string",
"state": "string",
"type": "string",
"created": "string",
"completed": "string",
"name": "string",
"format": "string",
"layout": "GRID",
"duration": "string",
"ffmpegVersion": "string"
}

Properties​

NameTypeRequiredRestrictionsDescription
idstringfalsenonenone
conversationIdstringfalsenonenone
userIdstringfalsenonenone
statestringfalsenonenone
typestringfalsenonenone
createdstringfalsenonenone
completedstringfalsenonenone
namestringfalsenonenone
formatstringfalsenonenone
layoutstringfalsenonenone
durationstringfalsenonenone
ffmpegVersionstringfalsenonenone
Enumerated Values​
PropertyValue
layoutGRID

Pageable​

{
"page": 0,
"size": 1,
"sort": [
"string"
]
}

Properties​

NameTypeRequiredRestrictionsDescription
pageinteger(int32)falsenonenone
sizeinteger(int32)falsenonenone
sort[string]falsenonenone

PageCompositionView​

{
"totalPages": 0,
"totalElements": 0,
"pageable": {
"paged": true,
"pageNumber": 0,
"pageSize": 0,
"offset": 0,
"sort": {
"sorted": true,
"empty": true,
"unsorted": true
},
"unpaged": true
},
"size": 0,
"content": [
{
"id": "string",
"conversationId": "string",
"userId": "string",
"state": "string",
"type": "string",
"created": "string",
"completed": "string",
"name": "string",
"format": "string",
"layout": "GRID",
"duration": "string",
"ffmpegVersion": "string"
}
],
"number": 0,
"sort": {
"sorted": true,
"empty": true,
"unsorted": true
},
"first": true,
"last": true,
"numberOfElements": 0,
"empty": true
}

Properties​

NameTypeRequiredRestrictionsDescription
totalPagesinteger(int32)falsenonenone
totalElementsinteger(int64)falsenonenone
pageablePageableObjectfalsenonenone
sizeinteger(int32)falsenonenone
content[CompositionView]falsenonenone
numberinteger(int32)falsenonenone
sortSortObjectfalsenonenone
firstbooleanfalsenonenone
lastbooleanfalsenonenone
numberOfElementsinteger(int32)falsenonenone
emptybooleanfalsenonenone

PageableObject​

{
"paged": true,
"pageNumber": 0,
"pageSize": 0,
"offset": 0,
"sort": {
"sorted": true,
"empty": true,
"unsorted": true
},
"unpaged": true
}

Properties​

NameTypeRequiredRestrictionsDescription
pagedbooleanfalsenonenone
pageNumberinteger(int32)falsenonenone
pageSizeinteger(int32)falsenonenone
offsetinteger(int64)falsenonenone
sortSortObjectfalsenonenone
unpagedbooleanfalsenonenone

SortObject​

{
"sorted": true,
"empty": true,
"unsorted": true
}

Properties​

NameTypeRequiredRestrictionsDescription
sortedbooleanfalsenonenone
emptybooleanfalsenonenone
unsortedbooleanfalsenonenone

CompositionResourceMessage​

{
"url": "https://storage.googleapis.com/bucket/6e6d5224-1919-48fa-a982-66cef9fa4c08/7edf1e1e-0109-4d92-9bad-ab43059a28e3/ca900103-16d3-4b34-884a-003fd8b8e9ca/7edf1e1e-0109-4d92-9bad-ab43059a28e3.mp4?GoogleAccessId=rtc-recorder-gcs@auvious.iam.gserviceaccount.com&Expires=1610649825&Signature=t2f4bXWN842Z7eHHVKaMZs1KHUzcqX8EXX4QoaWinjcKrMcq1AnADJ7iV2MjLgScnJFhlFYiFosHiLNUSqbjuar9IKEtH9JTyLdvkljEzBPPrkvZ5X0XIi5%2FsEQTekwdzKmTjjGRUZWCix%2FIMbizCl0qnX6Tpi%2BbKhTD7u9PjXk1PEum2P2siAnB0s8D9sow6IDuH8%2FrKYMjCe3jb2P%2Fi6asce9xOwmNjW7lxnyLMAeydxCWyZ66kcas0wXZ5BillG%2BA9NvqvnBXKQrGV5im6%2FnleElz9JhcFS%2B2U5suXt9tok3SScbgMvSWfLQ0PyttJuKtQ%2FxTzUnvGOc5WGkTNg%3D%3D",
"validFor": "PT5M",
"validUntil": "2021-01-14T18:43:45.569343Z"
}

Properties​

NameTypeRequiredRestrictionsDescription
urlstring(uri)falsenoneA signed URL of the given resource.
validForstringfalsenoneSignedUrl.validFor mirrored back to clients. Start countdown timers from this ISO-8601 duration to stay correct even if the consumer clock is fast/slow (example: PT5M).
validUntilstringfalsenoneISO-8601 instant when the link expires. Derived from validFor and current server time (STS TTL aware).