Create a deduplicated screen and group deployment with an optional canary cohort
POST
/api/v1/update-deployments
const url = 'https://example.com/api/v1/update-deployments';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"releaseId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","name":"example","mode":"download_only","maintenanceWindowStart":"2026-04-15T12:00:00Z","screenIds":["2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"],"groupIds":["2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"],"canarySize":1}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/v1/update-deployments \ --header 'Content-Type: application/json' \ --data '{ "releaseId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "name": "example", "mode": "download_only", "maintenanceWindowStart": "2026-04-15T12:00:00Z", "screenIds": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "groupIds": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "canarySize": 1 }'Requires an authenticated dashboard user.
Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
releaseId
required
string format: uuid
name
required
string
mode
required
string
maintenanceWindowStart
Required and in the future when mode is maintenance_window.
string | null format: date-time
screenIds
Array<string>
groupIds
Array<string>
canarySize
integer
Responses
Section titled “ Responses ”Deployment created
Media typeapplication/json
object
data
required
object
id
required
string format: uuid
status
required
string
targetCount
required
integer
apkSizeBytes
required
integer format: int64
rolloutMode
required
string
rolloutPhase
required
string
canarySize
required
integer
Example
{ "data": { "status": "active", "rolloutMode": "full", "rolloutPhase": "full" }}Targets outside the caller’s screen scope
Invalid or unverified release/targets