Skip to main content
View as MarkdownOpenAPI spec

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 · uuidrequired
Session UUID
Header parameters
X-Organization-Idstring
Selects which of the caller's organizations the request acts on. When omitted, the caller's default organization is used.
Returns
objectstringrequired
dataarrayrequired
Show child attributes
idstring · uuidrequired
Allocation 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.
statusstringrequired
Device 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.
infoobjectrequired
Descriptive attributes of the device.
Show child attributes
platformstringrequired
typestring
namestringrequired
osVersionstringrequired
serialstring
The 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-timerequired
When the device was added to the session
releasedAtstring · date-timenullable
When the device was released (billing end)
nextCursorstringnullable
Cursor 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 · uuidrequired
Session UUID
Header parameters
X-Organization-Idstring
Selects which of the caller's organizations the request acts on. When omitted, the caller's default organization is used.
Body parameters
filtersarrayrequired
Show child attributes
attributestringrequired
operatorstringrequired
Allowed operators depend on the attribute: platform and type accept only EQUALS; name accepts EQUALS, STARTS_WITH, CONTAINS; version accepts EQUALS and the comparison operators.
valuestringrequired
Must be non-empty. For platform: 'ios' or 'android'. For type: 'real'.
filestring · uuid
A ready file from app storage to install on the device. Its platform must match the platform filter. On iOS the app is installed while the device is provisioned, so a new device is always started.
launchAfterInstallboolean
Launch the app from `file` once it is installed and the device is ready. A failed launch does not fail the allocation.
Returns
idstring · uuidrequired
Allocation 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.
statusstringrequired
Device 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.
infoobjectrequired
Descriptive attributes of the device.
Show child attributes
platformstringrequired
typestring
namestringrequired
osVersionstringrequired
serialstring
The 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-timerequired
When the device was added to the session
releasedAtstring · date-timenullable
When 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 · uuidrequired
Session UUID
deviceIdstringrequired
The 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-Idstring
Selects which of the caller's organizations the request acts on. When omitted, the caller's default organization is used.
Returns
idstring · uuidrequired
Allocation 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.
statusstringrequired
Device 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.
infoobjectrequired
Descriptive attributes of the device.
Show child attributes
platformstringrequired
typestring
namestringrequired
osVersionstringrequired
serialstring
The 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-timerequired
When the device was added to the session
releasedAtstring · date-timenullable
When 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 · uuidrequired
Session UUID
deviceIdstringrequired
The 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-Idstring
Selects which of the caller's organizations the request acts on. When omitted, the caller's default organization is used.
Returns
idstring · uuidrequired
Allocation 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.
statusstringrequired
Device 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.
infoobjectrequired
Descriptive attributes of the device.
Show child attributes
platformstringrequired
typestring
namestringrequired
osVersionstringrequired
serialstring
The 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-timerequired
When the device was added to the session
releasedAtstring · date-timenullable
When the device was released (billing end)

Install a stored file on a device​

POST/api/v1/sessions/{sessionId}/devices/{deviceId}/install

Installs a ready file from app storage on a device of this session, without uploading it again. Synchronous: a large app can take minutes.

Path parameters
sessionIdstring · uuidrequired
Session UUID
deviceIdstringrequired
The 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-Idstring
Selects which of the caller's organizations the request acts on. When omitted, the caller's default organization is used.
Body parameters
filestring · uuidrequired
A ready file of the organization (see Files).
launchAfterInstallboolean
Launch the app once it is installed. A failed launch does not fail the install; see `launched`.
Returns
filestring · uuidrequired
statusstringrequired
bundleIdstringrequired
launchedbooleanrequired
True when launchAfterInstall was set and the launch succeeded.