Recordings API
Recordings endpoints exposed by the Devotel CPaaS API Base path:/api/v1
Endpoint count: 19
Public call-recording share
GET /api/v1/public/recordings/{token}string
required
—
List recording highlight clips
GET /api/v1/recordings/{id}/clips[start_ms, end_ms] window, derived duration_ms, and the media_fragment for player seeking. Requires the voice:read (or voice:write) scope.
string
required
Recording id whose clips to list.
List recording highlight moments
GET /api/v1/recordings/{id}/highlightskind, label, [start_ms, end_ms] window, derived duration_ms, and the media_fragment (#t=<start>,<end>) the player appends to the recording’s playback URL to seek to the moment. Run detect first to populate the set. Requires the voice:read (or voice:write) scope.
string
required
Recording id whose highlight moments to list.
Get recording integrity seal
GET /api/v1/recordings/{id}/integritysealed: false when the recording has not been sealed yet. Requires the voice:read scope.
string
required
Recording id whose integrity seal is requested.
Export signed recording integrity digest
GET /api/v1/recordings/{id}/integrity/export-digestvoice:read scope.
string
required
Recording id to export a signed digest for.
Verify recording integrity seal
GET /api/v1/recordings/{id}/integrity/verifyvalid), including the expected versus stored chain hash. Requires the voice:read scope.
string
required
Recording id to verify.
Get recording legal-hold state
GET /api/v1/recordings/{id}/legal-holdvoice:read scope.
string
required
Recording id whose legal-hold state is requested.
List recording visual-redaction regions
GET /api/v1/recordings/{id}/visual-redactionsbbox, [start_ms, end_ms] window, derived duration_ms, effect, source, and provenance. A playback widget or export pipeline reads these to apply the blur. Requires the voice:read (or voice:write) scope.
string
required
Recording id whose redaction regions to list.
Create recording highlight clip
POST /api/v1/recordings/{id}/clips[start_ms, end_ms] window. The clip is a lightweight pointer at the existing media — no re-encode, no second file — and is returned with a W3C Media Fragments URI (#t=<start>,<end>) the player appends to the recording’s playback URL to seek straight to the segment. The window is clamped to the recording’s duration and must be at least 500ms; up to 50 clips per recording. Requires the voice:write scope and is audit-logged.
string
required
Recording id to cut the clip from.
string
required
Human-readable name for the clip.
integer
required
Clip start offset in milliseconds from the recording start.
integer
required
Clip end offset in milliseconds. Must be greater than start_ms and at least 500ms beyond it.
Promote highlight moment to clip
POST /api/v1/recordings/{id}/highlights/{momentId}/clip[start_ms, end_ms] window over to the clip. Optionally override the clip label; otherwise the moment’s own label is used. Subject to the same per-recording clip limit as manual clips. Requires the voice:write scope and is audit-logged.
string
required
Recording id the highlight moment belongs to.
string
required
Id of the highlight moment to promote.
string
Optional label for the created clip. Defaults to the highlight moment’s own label when omitted.
Detect recording highlight moments
POST /api/v1/recordings/{id}/highlights/detect[start_ms, end_ms] window plus the media_fragment (#t=<start>,<end>) for player seeking. Re-running replaces the previous proposals; no clip is created until a moment is promoted. Requires the voice:write scope and is audit-logged.
string
required
Recording id whose transcript to analyze. Must be a completed, transcribed recording.
Seal recording integrity
POST /api/v1/recordings/{id}/integrity/sealvoice:write scope and an owner or admin role, and is audit-logged.
string
required
Recording id to seal.
string
SHA-256 hex of the recorded media bytes. Optional — defaults to the egress-stamped
metadata.content_sha256.string
Symmetric algorithm the bytes are encrypted under at rest.
Create recording share link
POST /api/v1/recordings/{id}/sharevideo:write scope and is audit-logged.
string
required
Recording id to mint a share link for.
integer
Requested link lifetime in seconds. Clamped server-side to the [5 minutes, 30 days] range; omitted defaults to 7 days.
Add recording visual-redaction regions
POST /api/v1/recordings/{id}/visual-redactions{ x, y, w, h } as fractions of the frame, so it is resolution-independent) that applies over a [start_ms, end_ms] window with a visual effect and a provenance source. Submit a single box or a whole face-detection track (up to 200 regions per request). Boxes and windows are clamped to the frame and the recording’s duration; each window must be at least 100ms. Up to 500 regions per recording. Requires the voice:write scope and is audit-logged.
string
required
Recording id to add the redaction region(s) to. Must be a completed
video_room recording with stored media.object[]
required
One or more redaction regions to add. All-or-nothing — the whole request is rejected if any region is invalid.
Place or release recording legal hold
PUT /api/v1/recordings/{id}/legal-holdvoice:write scope and an owner or admin role, and is audit-logged.
string
required
Recording id to place or release a hold on.
boolean
required
True to place a hold, false to release it.
string
Optional operator-supplied justification for the change.
Delete recording highlight clip
DELETE /api/v1/recordings/{id}/clips/{clipId}voice:write scope and is audit-logged.
string
required
Recording id the clip belongs to.
string
required
Id of the clip to delete.
Dismiss recording highlight moment
DELETE /api/v1/recordings/{id}/highlights/{momentId}voice:write scope and is audit-logged.
string
required
Recording id the highlight moment belongs to.
string
required
Id of the highlight moment to dismiss.
Revoke recording share links
DELETE /api/v1/recordings/{id}/sharevideo:write scope and is audit-logged.
string
required
Recording id whose share links should be revoked.
Delete recording visual-redaction region
DELETE /api/v1/recordings/{id}/visual-redactions/{regionId}voice:write scope and is audit-logged.
string
required
Recording id the redaction region belongs to.
string
required
Id of the redaction region to delete.