Replay Servers
Filter by status
Filter by area ID
110Returns a list of replay servers
GET /apis/v2/replay-servers HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Returns a list of replay servers
{
"items": [
{
"id": "text",
"_links": {
"self": {
"href": "text"
}
},
"deviceId": "text",
"hostname": "text",
"version": "text",
"displayName": "text",
"status": "PENDING",
"area": {
"id": "text"
},
"approvedDate": "2026-01-01T00:00:00.000Z",
"approvedByUser": {
"id": "text"
},
"lastSeenDate": "2026-01-01T00:00:00.000Z",
"lastSeenIp": "text",
"config": {
"apiBaseUrl": "text",
"gcpStorageBucket": "text",
"logoPath": "text",
"logoPlacement": "bottom-right",
"gcpCredentialsPath": "text",
"postrollPath": "text",
"cleanupEnabled": true,
"cameras": [
{
"id": "text",
"name": "text",
"feed": "text",
"feed2": "text",
"isEnabled": true,
"videoCodec": "h264",
"audioCodec": "aac",
"distortion1": 1,
"distortion2": 1,
"rotation": 1,
"scale": 1,
"vignette": 1,
"lutPath": "text"
}
]
},
"targetVersion": "text",
"serverUrl": "text",
"localIp": "text",
"createdDate": "2026-01-01T00:00:00.000Z",
"errors": [
{
"code": "text",
"message": "text",
"details": {}
}
]
}
],
"_pagination": {
"page": 1,
"ipp": 1,
"count": 1,
"total": 1
},
"_links": {
"self": {
"href": "text"
}
}
}Returns available software versions from GCS
GET /apis/v2/replay-servers/available-versions HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Returns available software versions from GCS
{
"versions": [
{
"version": "text"
}
]
}List branding assets with signed URLs
GET /apis/v2/replay-servers/branding-assets HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
List branding assets with signed URLs
{
"assets": [
{
"name": "text",
"path": "text",
"url": "text"
}
]
}File to upload
Uploaded branding asset
File name
Full path in bucket
Signed URL for preview
POST /apis/v2/replay-servers/branding-assets HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: multipart/form-data
Accept: */*
Content-Length: 17
{
"file": "binary"
}Uploaded branding asset
{
"name": "text",
"path": "text",
"url": "text"
}Target version for this replay server (empty string or null to clear)
Returns the updated replay server
The unique identifier of the resource
Unique device identifier
Device hostname
Software version running on the device
Display name for the server
Status of the server
When the device was approved
When the device was last seen
IP address of last request
Target software version for this server
External DDNS or URL where this server is reachable
Local network IP address reported by the device
When the server was created
PATCH /apis/v2/replay-servers/{serverId}/target-version HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 18
{
"version": "text"
}Returns the updated replay server
{
"id": "text",
"_links": {
"self": {
"href": "text"
}
},
"deviceId": "text",
"hostname": "text",
"version": "text",
"displayName": "text",
"status": "PENDING",
"area": {
"id": "text"
},
"approvedDate": "2026-01-01T00:00:00.000Z",
"approvedByUser": {
"id": "text"
},
"lastSeenDate": "2026-01-01T00:00:00.000Z",
"lastSeenIp": "text",
"config": {
"apiBaseUrl": "text",
"gcpStorageBucket": "text",
"logoPath": "text",
"logoPlacement": "bottom-right",
"gcpCredentialsPath": "text",
"postrollPath": "text",
"cleanupEnabled": true,
"cameras": [
{
"id": "text",
"name": "text",
"feed": "text",
"feed2": "text",
"isEnabled": true,
"videoCodec": "h264",
"audioCodec": "aac",
"distortion1": 1,
"distortion2": 1,
"rotation": 1,
"scale": 1,
"vignette": 1,
"lutPath": "text"
}
]
},
"targetVersion": "text",
"serverUrl": "text",
"localIp": "text",
"createdDate": "2026-01-01T00:00:00.000Z",
"errors": [
{
"code": "text",
"message": "text",
"details": {}
}
]
}Returns pending replay servers awaiting approval
GET /apis/v2/replay-servers/pending HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Returns pending replay servers awaiting approval
{
"items": [
{
"id": "text",
"_links": {
"self": {
"href": "text"
}
},
"deviceId": "text",
"hostname": "text",
"version": "text",
"displayName": "text",
"status": "PENDING",
"area": {
"id": "text"
},
"approvedDate": "2026-01-01T00:00:00.000Z",
"approvedByUser": {
"id": "text"
},
"lastSeenDate": "2026-01-01T00:00:00.000Z",
"lastSeenIp": "text",
"config": {
"apiBaseUrl": "text",
"gcpStorageBucket": "text",
"logoPath": "text",
"logoPlacement": "bottom-right",
"gcpCredentialsPath": "text",
"postrollPath": "text",
"cleanupEnabled": true,
"cameras": [
{
"id": "text",
"name": "text",
"feed": "text",
"feed2": "text",
"isEnabled": true,
"videoCodec": "h264",
"audioCodec": "aac",
"distortion1": 1,
"distortion2": 1,
"rotation": 1,
"scale": 1,
"vignette": 1,
"lutPath": "text"
}
]
},
"targetVersion": "text",
"serverUrl": "text",
"localIp": "text",
"createdDate": "2026-01-01T00:00:00.000Z",
"errors": [
{
"code": "text",
"message": "text",
"details": {}
}
]
}
],
"_pagination": {
"page": 1,
"ipp": 1,
"count": 1,
"total": 1
},
"_links": {
"self": {
"href": "text"
}
}
}Returns health data from the device
No content
GET /apis/v2/replay-servers/{serverId}/health HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Returns health data from the device
No content
Returns log lines from the device
No content
GET /apis/v2/replay-servers/{serverId}/logs HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Returns log lines from the device
No content
Returns camera config from the device
No content
GET /apis/v2/replay-servers/{serverId}/config HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Returns camera config from the device
No content
API base URL for pairing
GCP storage bucket name
Path to logo overlay image
Logo placement
Path to GCP credentials JSON file
Path to postroll video file
Enable auto-cleanup of old chunks and clips
Returns the updated replay server
The unique identifier of the resource
Unique device identifier
Device hostname
Software version running on the device
Display name for the server
Status of the server
When the device was approved
When the device was last seen
IP address of last request
Target software version for this server
External DDNS or URL where this server is reachable
Local network IP address reported by the device
When the server was created
PATCH /apis/v2/replay-servers/{serverId}/config HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 378
{
"apiBaseUrl": "text",
"gcpStorageBucket": "text",
"logoPath": "text",
"logoPlacement": "bottom-right",
"gcpCredentialsPath": "text",
"postrollPath": "text",
"cleanupEnabled": true,
"cameras": [
{
"id": "text",
"name": "text",
"feed": "text",
"feed2": "text",
"isEnabled": true,
"videoCodec": "h264",
"audioCodec": "aac",
"distortion1": 1,
"distortion2": 1,
"rotation": 1,
"scale": 1,
"vignette": 1,
"lutPath": "text"
}
]
}Returns the updated replay server
{
"id": "text",
"_links": {
"self": {
"href": "text"
}
},
"deviceId": "text",
"hostname": "text",
"version": "text",
"displayName": "text",
"status": "PENDING",
"area": {
"id": "text"
},
"approvedDate": "2026-01-01T00:00:00.000Z",
"approvedByUser": {
"id": "text"
},
"lastSeenDate": "2026-01-01T00:00:00.000Z",
"lastSeenIp": "text",
"config": {
"apiBaseUrl": "text",
"gcpStorageBucket": "text",
"logoPath": "text",
"logoPlacement": "bottom-right",
"gcpCredentialsPath": "text",
"postrollPath": "text",
"cleanupEnabled": true,
"cameras": [
{
"id": "text",
"name": "text",
"feed": "text",
"feed2": "text",
"isEnabled": true,
"videoCodec": "h264",
"audioCodec": "aac",
"distortion1": 1,
"distortion2": 1,
"rotation": 1,
"scale": 1,
"vignette": 1,
"lutPath": "text"
}
]
},
"targetVersion": "text",
"serverUrl": "text",
"localIp": "text",
"createdDate": "2026-01-01T00:00:00.000Z",
"errors": [
{
"code": "text",
"message": "text",
"details": {}
}
]
}Returns branding status from the device (what is currently downloaded)
No content
GET /apis/v2/replay-servers/{serverId}/branding HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Returns branding status from the device (what is currently downloaded)
No content
Returns the logo image currently on the device
No content
GET /apis/v2/replay-servers/{serverId}/branding/logo HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Returns the logo image currently on the device
No content
Returns the postroll video currently on the device
No content
GET /apis/v2/replay-servers/{serverId}/branding/postroll HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Returns the postroll video currently on the device
No content
Returns branded instant replay video (with logo + postroll)
No content
GET /apis/v2/replay-servers/{serverId}/instant-replay/{cameraId}/branded HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Returns branded instant replay video (with logo + postroll)
No content
Returns instant replay video file
No content
GET /apis/v2/replay-servers/{serverId}/instant-replay/{cameraId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Returns instant replay video file
No content
Returns snapshot image
No content
POST /apis/v2/replay-servers/{serverId}/snapshot/{cameraId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Returns snapshot image
No content
Requests device service restart
No content
POST /apis/v2/replay-servers/{serverId}/restart HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Requests device service restart
No content
aa27a2ae-8235-426d-91ad-6e30cb494b2bReturns a replay server
The unique identifier of the resource
Unique device identifier
Device hostname
Software version running on the device
Display name for the server
Status of the server
When the device was approved
When the device was last seen
IP address of last request
Target software version for this server
External DDNS or URL where this server is reachable
Local network IP address reported by the device
When the server was created
GET /apis/v2/replay-servers/{serverId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Returns a replay server
{
"id": "text",
"_links": {
"self": {
"href": "text"
}
},
"deviceId": "text",
"hostname": "text",
"version": "text",
"displayName": "text",
"status": "PENDING",
"area": {
"id": "text"
},
"approvedDate": "2026-01-01T00:00:00.000Z",
"approvedByUser": {
"id": "text"
},
"lastSeenDate": "2026-01-01T00:00:00.000Z",
"lastSeenIp": "text",
"config": {
"apiBaseUrl": "text",
"gcpStorageBucket": "text",
"logoPath": "text",
"logoPlacement": "bottom-right",
"gcpCredentialsPath": "text",
"postrollPath": "text",
"cleanupEnabled": true,
"cameras": [
{
"id": "text",
"name": "text",
"feed": "text",
"feed2": "text",
"isEnabled": true,
"videoCodec": "h264",
"audioCodec": "aac",
"distortion1": 1,
"distortion2": 1,
"rotation": 1,
"scale": 1,
"vignette": 1,
"lutPath": "text"
}
]
},
"targetVersion": "text",
"serverUrl": "text",
"localIp": "text",
"createdDate": "2026-01-01T00:00:00.000Z",
"errors": [
{
"code": "text",
"message": "text",
"details": {}
}
]
}aa27a2ae-8235-426d-91ad-6e30cb494b2bPermanently delete the server (only for REVOKED or PENDING)
Returns the revoked replay server
The unique identifier of the resource
Unique device identifier
Device hostname
Software version running on the device
Display name for the server
Status of the server
When the device was approved
When the device was last seen
IP address of last request
Target software version for this server
External DDNS or URL where this server is reachable
Local network IP address reported by the device
When the server was created
Server permanently deleted
DELETE /apis/v2/replay-servers/{serverId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "text",
"_links": {
"self": {
"href": "text"
}
},
"deviceId": "text",
"hostname": "text",
"version": "text",
"displayName": "text",
"status": "PENDING",
"area": {
"id": "text"
},
"approvedDate": "2026-01-01T00:00:00.000Z",
"approvedByUser": {
"id": "text"
},
"lastSeenDate": "2026-01-01T00:00:00.000Z",
"lastSeenIp": "text",
"config": {
"apiBaseUrl": "text",
"gcpStorageBucket": "text",
"logoPath": "text",
"logoPlacement": "bottom-right",
"gcpCredentialsPath": "text",
"postrollPath": "text",
"cleanupEnabled": true,
"cameras": [
{
"id": "text",
"name": "text",
"feed": "text",
"feed2": "text",
"isEnabled": true,
"videoCodec": "h264",
"audioCodec": "aac",
"distortion1": 1,
"distortion2": 1,
"rotation": 1,
"scale": 1,
"vignette": 1,
"lutPath": "text"
}
]
},
"targetVersion": "text",
"serverUrl": "text",
"localIp": "text",
"createdDate": "2026-01-01T00:00:00.000Z",
"errors": [
{
"code": "text",
"message": "text",
"details": {}
}
]
}Optional display name for the server
Returns the approved replay server
The unique identifier of the resource
Unique device identifier
Device hostname
Software version running on the device
Display name for the server
Status of the server
When the device was approved
When the device was last seen
IP address of last request
Target software version for this server
External DDNS or URL where this server is reachable
Local network IP address reported by the device
When the server was created
Server not found
Validation error
POST /apis/v2/replay-servers/approve HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 66
{
"server": {
"id": "text"
},
"area": {
"id": "text"
},
"displayName": "text"
}{
"id": "text",
"_links": {
"self": {
"href": "text"
}
},
"deviceId": "text",
"hostname": "text",
"version": "text",
"displayName": "text",
"status": "PENDING",
"area": {
"id": "text"
},
"approvedDate": "2026-01-01T00:00:00.000Z",
"approvedByUser": {
"id": "text"
},
"lastSeenDate": "2026-01-01T00:00:00.000Z",
"lastSeenIp": "text",
"config": {
"apiBaseUrl": "text",
"gcpStorageBucket": "text",
"logoPath": "text",
"logoPlacement": "bottom-right",
"gcpCredentialsPath": "text",
"postrollPath": "text",
"cleanupEnabled": true,
"cameras": [
{
"id": "text",
"name": "text",
"feed": "text",
"feed2": "text",
"isEnabled": true,
"videoCodec": "h264",
"audioCodec": "aac",
"distortion1": 1,
"distortion2": 1,
"rotation": 1,
"scale": 1,
"vignette": 1,
"lutPath": "text"
}
]
},
"targetVersion": "text",
"serverUrl": "text",
"localIp": "text",
"createdDate": "2026-01-01T00:00:00.000Z",
"errors": [
{
"code": "text",
"message": "text",
"details": {}
}
]
}Last updated
Was this helpful?

