Devices
List devices in a session
GET/api/v1/sessions/{sessionId}/devices
Devices attached to the session, newest first. Visible to every member of the organization that owns the session.
Path parameters
sessionIdstring · uuidrequiredSession UUID
Header parameters
X-Organization-IdstringSelects which of the caller's organizations the request acts on. When omitted, the caller's default organization is used.
Returns
objectstringrequireddataarrayrequiredShow child attributes
idstring · uuidrequiredAllocation id. Stable and always present, including while the device is still provisioning and no physical device exists yet. This is not the device's own id — see info.serial.
statusstringrequiredDevice lifecycle status. `provisioning` means a device is being booted and has no info.serial yet; `in_use` means it is allocated and driveable; `released` means it has been returned to the pool. More values will be added.
infoobjectrequiredDescriptive attributes of the device.
Show child attributes
platformstringrequiredtypestringnamestringrequiredosVersionstringrequiredserialstringThe physical device's own id — a UDID on iOS, a serial on Android. Absent while the device is provisioning. This is the id accepted by the device endpoints and tools.
createdAtstring · date-timerequiredWhen the device was added to the session
releasedAtstring · date-timenullableWhen the device was released (billing end)
nextCursorstringnullableCursor for the next page; absent when there are no more results
Allocate a device
POST/api/v1/sessions/{sessionId}/devices
Allocates a device matching the given filters and attaches it to the session. Uses the same filter DSL as the fleet.allocate RPC. Allocation is asynchronous: the device is returned immediately with status "provisioning" or "queued" and becomes usable once its status is "ready". Poll GET /sessions/{sessionId}/devices/{deviceId} to observe readiness.
Path parameters
sessionIdstring · uuidrequiredSession UUID
Header parameters
X-Organization-IdstringSelects which of the caller's organizations the request acts on. When omitted, the caller's default organization is used.
Body parameters
filtersarrayrequiredShow child attributes
attributestringrequiredoperatorstringrequiredAllowed operators depend on the attribute: platform and type accept only EQUALS; name accepts EQUALS, STARTS_WITH, CONTAINS; version accepts EQUALS and the comparison operators.
valuestringrequiredMust be non-empty. For platform: 'ios' or 'android'. For type: 'real'.
Returns
idstring · uuidrequiredAllocation id. Stable and always present, including while the device is still provisioning and no physical device exists yet. This is not the device's own id — see info.serial.
statusstringrequiredDevice lifecycle status. `provisioning` means a device is being booted and has no info.serial yet; `in_use` means it is allocated and driveable; `released` means it has been returned to the pool. More values will be added.
infoobjectrequiredDescriptive attributes of the device.
Show child attributes
platformstringrequiredtypestringnamestringrequiredosVersionstringrequiredserialstringThe physical device's own id — a UDID on iOS, a serial on Android. Absent while the device is provisioning. This is the id accepted by the device endpoints and tools.
createdAtstring · date-timerequiredWhen the device was added to the session
releasedAtstring · date-timenullableWhen the device was released (billing end)
Get a device
GET/api/v1/sessions/{sessionId}/devices/{deviceId}
Returns a device attached to the session. Visible to every member of the organization that owns the session.
Path parameters
sessionIdstring · uuidrequiredSession UUID
deviceIdstringrequiredThe physical device's own id, as returned in SessionDevice.info.serial — a UDID on iOS, a serial on Android. Not the allocation id (SessionDevice.id).
Header parameters
X-Organization-IdstringSelects which of the caller's organizations the request acts on. When omitted, the caller's default organization is used.
Returns
idstring · uuidrequiredAllocation id. Stable and always present, including while the device is still provisioning and no physical device exists yet. This is not the device's own id — see info.serial.
statusstringrequiredDevice lifecycle status. `provisioning` means a device is being booted and has no info.serial yet; `in_use` means it is allocated and driveable; `released` means it has been returned to the pool. More values will be added.
infoobjectrequiredDescriptive attributes of the device.
Show child attributes
platformstringrequiredtypestringnamestringrequiredosVersionstringrequiredserialstringThe physical device's own id — a UDID on iOS, a serial on Android. Absent while the device is provisioning. This is the id accepted by the device endpoints and tools.
createdAtstring · date-timerequiredWhen the device was added to the session
releasedAtstring · date-timenullableWhen the device was released (billing end)
Release a device
POST/api/v1/sessions/{sessionId}/devices/{deviceId}/release
Releases a device, stopping billing and returning it to the fleet. Returns the device with its updated status. Idempotent: releasing an already-released device is a no-op.
Path parameters
sessionIdstring · uuidrequiredSession UUID
deviceIdstringrequiredThe physical device's own id, as returned in SessionDevice.info.serial — a UDID on iOS, a serial on Android. Not the allocation id (SessionDevice.id).
Header parameters
X-Organization-IdstringSelects which of the caller's organizations the request acts on. When omitted, the caller's default organization is used.
Returns
idstring · uuidrequiredAllocation id. Stable and always present, including while the device is still provisioning and no physical device exists yet. This is not the device's own id — see info.serial.
statusstringrequiredDevice lifecycle status. `provisioning` means a device is being booted and has no info.serial yet; `in_use` means it is allocated and driveable; `released` means it has been returned to the pool. More values will be added.
infoobjectrequiredDescriptive attributes of the device.
Show child attributes
platformstringrequiredtypestringnamestringrequiredosVersionstringrequiredserialstringThe physical device's own id — a UDID on iOS, a serial on Android. Absent while the device is provisioning. This is the id accepted by the device endpoints and tools.
createdAtstring · date-timerequiredWhen the device was added to the session
releasedAtstring · date-timenullableWhen the device was released (billing end)