← Back to Home

API Overview

The Ximpler API is organized around REST. Our API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.

Ximpler provides separate REST APIs for accessing device management, application management, and test execution functionality and more.

Base URL: https://ximpler.playtorium.co.th/service/api/external
Authentication

All API requests require authentication using an API token. Include your token in the Authorization header:

Authorization: YOUR_API_TOKEN

Table of Contents

Get Active Devices

GET
/device/active

Description

Retrieves a list of active devices available for testing, filtered by platform.

Query Parameters

Parameter Type Required Description
platformName string No Platform to filter by (e.g., "android", "ios")

Example Request

GET /device/active?platformName=android Authorization: YOUR_API_TOKEN

Create Application Upload URL

POST
/apps/upload-url

Description

Generates a pre-signed URL for uploading application files to cloud storage.

Request Body

{ "version": "1.0.0", "fileName": "android.wdio.native.app.v1.0.8.apk" }

Body Parameters

Parameter Type Required Description
version string Yes Version of the application
fileName string Yes Name of the application file (.apk for Android, .ipa for iOS)

Example Request

POST /apps/upload-url Authorization: YOUR_API_TOKEN Content-Type: application/json { "version": "1.0.0", "fileName": "android.wdio.native.app.v1.0.8.apk" }

Upload Application

PUT
[Pre-signed URL from previous step]

Description

Uploads the application file to cloud storage using the pre-signed URL obtained from the previous endpoint.

Headers

Header Value Description
Content-Type application/octet-stream Binary content type for file upload

Request Body

Binary file data (APK or IPA file)

Example Request

PUT [PRE_SIGNED_URL] Content-Type: application/octet-stream [BINARY FILE DATA]

Activate Application

POST
/apps/activate

Description

Activates an uploaded application, making it available for testing.

Request Body

{ "appId": "285" }

Body Parameters

Parameter Type Required Description
appId string Yes ID of the uploaded application

Example Request

POST /apps/activate Authorization: YOUR_API_TOKEN Content-Type: application/json { "appId": "285" }

Delete Application

DELETE
/apps/{appId}

Description

Deletes an application from the system.

Path Parameters

Parameter Type Required Description
appId string Yes ID of the application to delete

Example Request

DELETE /apps/416 Authorization: YOUR_API_TOKEN

Update Test

PUT
/test/{testId}

Description

Updates test configuration with a new application ID.

Path Parameters

Parameter Type Required Description
testId string Yes ID of the test to update

Request Body

{ "appId": "310" }

Body Parameters

Parameter Type Required Description
appId string Yes ID of the application to use for testing

Example Request

PUT /test/619 Authorization: YOUR_API_TOKEN Content-Type: application/json { "appId": "310" }

Run Test

POST
/test/{testId}/run

Description

Executes a test on a specified device.

Path Parameters

Parameter Type Required Description
testId string Yes ID of the test to run

Request Body

{ "deviceId": "21" }

Body Parameters

Parameter Type Required Description
deviceId string Yes ID of the device to run the test on

Example Request

POST /test/34/run Authorization: YOUR_API_TOKEN Content-Type: application/json { "deviceId": "21" }

Run Test Suite

POST
/test/suite/{suiteId}/run

Description

Executes a test suite on a specified device.

Path Parameters

Parameter Type Required Description
suiteId string Yes ID of the test suite to run

Request Body

{ "deviceId": "21" }

Body Parameters

Parameter Type Required Description
deviceId string Yes ID of the device to run the test suite on

Example Request

POST /test/suite/12/run Authorization: YOUR_API_TOKEN Content-Type: application/json { "deviceId": "21" }