Mobile Apps
Upload and manage Android APK files used by mobile tests and mobile discoveries. Mobile apps are immutable artifacts; upload each build separately.
List mobile apps
Parameters
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
limit | integer | query | No | Number of results (max 100) (default: 20) |
cursor | uuid | query | No | Cursor for pagination |
Status Codes
| Code | Description |
|---|---|
200 | OK |
401 | Unauthorized |
422 | Invalid list parameters |
Response Body
{"mobile_apps":[],"next_cursor":null}GET
/api/v1/mobile-appscURL
Response
Get a mobile app
Parameters
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
id | uuid | path | Yes | Mobile app ID |
Status Codes
| Code | Description |
|---|---|
200 | OK |
401 | Unauthorized |
404 | Mobile app not found |
422 | Invalid mobile app ID |
Response Body
{
"mobile_app": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "customer-app.apk",
"package_name": "com.example.customer",
"main_activity": "com.example.customer.MainActivity",
"version_name": "2.4.1",
"version_code": 20401,
"size_bytes": 18273642,
"created_at": "2026-07-31T17:00:00Z",
"updated_at": "2026-07-31T17:00:00Z"
}
}GET
/api/v1/mobile-apps/{id}cURL
Response
Upload a mobile app
Uploads and validates one Android APK. The maximum APK size is 500 MB.
Parameters
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
file | file | body | Yes | Android APK (multipart form field name: file) |
Status Codes
| Code | Description |
|---|---|
201 | Mobile app uploaded |
400 | Malformed multipart upload |
401 | Unauthorized |
413 | APK exceeds 500 MB |
422 | Invalid APK |
507 | Storage quota exceeded |
Response Body
{
"mobile_app": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "customer-app.apk",
"package_name": "com.example.customer",
"main_activity": "com.example.customer.MainActivity",
"version_name": "2.4.1",
"version_code": 20401,
"size_bytes": 18273642,
"created_at": "2026-07-31T17:00:00Z",
"updated_at": "2026-07-31T17:00:00Z"
}
}POST
/api/v1/mobile-apps/uploadcURL
Response
Import a staged mobile app
Consumes an APK from tenant Files. The embedded assistant may also consume a file from its private chat workspace. The source file is removed only after a successful import.
Parameters
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
source | string | body | Yes | tenant_files, or chat_workspace for embedded assistant calls |
path | string | body | Yes | Relative APK path in the selected source |
Status Codes
| Code | Description |
|---|---|
201 | Mobile app imported |
400 | Malformed JSON |
401 | Unauthorized |
403 | Chat workspace unavailable |
404 | Source APK not found |
413 | APK exceeds 500 MB |
422 | Invalid import or APK |
507 | Storage quota exceeded |
Response Body
{
"mobile_app": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "customer-app.apk",
"package_name": "com.example.customer",
"main_activity": "com.example.customer.MainActivity",
"version_name": "2.4.1",
"version_code": 20401,
"size_bytes": 18273642,
"created_at": "2026-07-31T17:00:00Z",
"updated_at": "2026-07-31T17:00:00Z"
}
}POST
/api/v1/mobile-apps/importcURL
Response
Delete a mobile app
Deletes an app and its stored APK. Returns a 409 problem with active_runs when queued or executing test runs still use it.
Parameters
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
id | uuid | path | Yes | Mobile app ID |
Status Codes
| Code | Description |
|---|---|
204 | Mobile app deleted |
401 | Unauthorized |
404 | Mobile app not found |
409 | Mobile app is used by active test runs |
422 | Invalid mobile app ID |
DELETE
/api/v1/mobile-apps/{id}cURL
Response