Skip to main content

Mobile Farm API (1.1.0)

Managing real mobile devices: adding and deleting devices, getting detailed device information, managing ADB keys, and more.

ADB keys

Manages all available RSA keys for Android Debug Bridge (ADB).

List ADB keys

Returns a list of ADB keys, including their fingerprints and titles.

Authorizations:
iam_token_project_scopediam_token_account_scoped

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Store ADB key

Stores an ADB public key, enabling debug access.

Authorizations:
iam_token_project_scopediam_token_account_scoped
Request Body schema: application/json
required
publicKey
required
string non-empty

The public key associated with the ADB key.

title
string [ 1 .. 255 ] characters

The title associated with the ADB key.

Responses

Request samples

Content type
application/json
{
  • "publicKey": "string",
  • "title": "string"
}

Response samples

Content type
application/json
{
  • "fingerprint": "string",
  • "title": "string"
}

Delete ADB key

Deletes an ADB public key associated with the provided fingerprint.

Authorizations:
iam_token_project_scopediam_token_account_scoped
path Parameters
fingerprint
required
string

Fingerprint of the ADB key.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

User ADB keys

Manages RSA keys for Android Debug Bridge (ADB) of a specific user. Applicable only to user administrators.

List ADB keys for specified user

Retrieves a list of ADB keys associated with a specific user, including their fingerprints and titles.

Authorizations:
iam_token_account_scoped
path Parameters
userId
required
string

User identifier.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Store ADB key for specified user

Stores an ADB public key for a specified user, enabling debug access.

Authorizations:
iam_token_account_scoped
path Parameters
userId
required
string

User identifier.

Request Body schema: application/json
required
publicKey
required
string non-empty

The public key associated with the ADB key.

title
string [ 1 .. 255 ] characters

The title associated with the ADB key.

Responses

Request samples

Content type
application/json
{
  • "publicKey": "string",
  • "title": "string"
}

Response samples

Content type
application/json
{
  • "fingerprint": "string",
  • "title": "string"
}

Delete ADB key for specified user

Deletes a specific ADB key for a specified user based on the provided fingerprint.

Authorizations:
iam_token_account_scoped
path Parameters
userId
required
string

User identifier.

fingerprint
required
string

Fingerprint of the ADB key.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Devices

Manages mobile devices.

List available devices

Returns a list of available mobile devices that you can add to a project.

Authorizations:
iam_token_project_scoped
query Parameters
fields
Array of strings

Fields of filters to return in response

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add devices to project

Adds devices to the project based on the provided filters.

Authorizations:
iam_token_project_scoped
Request Body schema: application/json
required

Body

billingType
string

The tariffication type for the device. Available values are minutes, hours, and months.

Array of objects (entity.Filter)

Responses

Request samples

Content type
application/json
{
  • "billingType": "string",
  • "filters": [
    ]
}

Response samples

Content type
application/json
{
  • "devices": [
    ]
}

List devices

Returns a list of devices in a project.

Authorizations:
iam_token_project_scoped

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Remove device from project

Removes a device from the project using its serial number.

Authorizations:
iam_token_project_scoped
path Parameters
serial
required
string

The serial number of the device.

Request Body schema: application/json
required

Body

slotID
string

The slot identifier.

Responses

Request samples

Content type
application/json
{
  • "slotID": "string"
}

Response samples

Content type
application/json
{
  • "adminStatus": "string",
  • "cpuPlatform": "string",
  • "manufacturer": "string",
  • "marketName": "string",
  • "meta": {
    },
  • "osVersion": "string",
  • "owner": {
    },
  • "platform": "string",
  • "present": true,
  • "ready": true,
  • "resolution": "string",
  • "sdk": "string",
  • "serial": "string",
  • "status": {
    }
}

Get device information

Returns information about a device by its serial number.

Authorizations:
iam_token_project_scoped
path Parameters
serial
required
string

The serial number of the device.

Responses

Response samples

Content type
application/json
{
  • "abi": "string",
  • "adminStatus": "string",
  • "airplaneMode": true,
  • "battery": {
    },
  • "browser": {
    },
  • "channel": "string",
  • "cpuPlatform": "string",
  • "display": {
    },
  • "manufacturer": "string",
  • "marketName": "string",
  • "meta": {
    },
  • "mfProxy": true,
  • "network": {
    },
  • "openGLESVersion": "string",
  • "operator": "string",
  • "osVersion": "string",
  • "owner": {
    },
  • "phone": {
    },
  • "platform": "string",
  • "presenceChangedAt": "string",
  • "present": true,
  • "product": "string",
  • "ready": true,
  • "remoteConnect": true,
  • "remoteConnectUrl": "string",
  • "resolution": "string",
  • "reverseForwards": [
    ],
  • "sdk": "string",
  • "serial": "string",
  • "status": 0,
  • "statusChangedAt": "string",
  • "usage": "string",
  • "usageChangedAt": "string",
  • "wifiAutoConnectFeatureAvailable": true
}

Replace device

Replaces the device based on the provided filters.

Authorizations:
iam_token_project_scoped
path Parameters
serial
required
string

The serial number of the device.

Request Body schema: application/json
required

Body

object (entity.FilterReplace)
slotId
string

The slot identifier.

Responses

Request samples

Content type
application/json
{
  • "filter": {
    },
  • "slotId": "string"
}

Response samples

Content type
application/json
{
  • "adminStatus": "string",
  • "cpuPlatform": "string",
  • "manufacturer": "string",
  • "marketName": "string",
  • "meta": {
    },
  • "osVersion": "string",
  • "owner": {
    },
  • "platform": "string",
  • "present": true,
  • "ready": true,
  • "resolution": "string",
  • "sdk": "string",
  • "serial": "string",
  • "status": {
    }
}

Change device settings

Updates settings on the specified device. This operation is asynchronous. The response indicates that the change request has been accepted for processing.

Authorizations:
iam_token_project_scoped
path Parameters
serial
required
string

The serial number of the device.

Request Body schema: application/json
required
object (entity.DeviceProxySettings)

Proxy tunnel configuration for the device.

wifi
boolean

Indicates whether the Wi-Fi configuration should be added or removed on the device. If true, the Wi-Fi configuration is added or enabled. If false, it is removed or disabled.

Responses

Request samples

Content type
application/json
{
  • "proxy": {
    },
  • "wifi": true
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Update device tariffication

Updates a tariffication of the device.

Authorizations:
iam_token_project_scoped
path Parameters
serial
required
string

The serial number of the device.

Request Body schema: application/json
required

Body

autoPayDateTime
string

The next payment date. Applicable only to a monthly subscription.

type
string

The tariffication type for the device. Available values are minutes, hours, and months.

object (entity.Update)

Responses

Request samples

Content type
application/json
{
  • "autoPayDateTime": "string",
  • "type": "string",
  • "updates": {
    }
}

Response samples

Content type
application/json
{
  • "adminStatus": "string",
  • "cpuPlatform": "string",
  • "manufacturer": "string",
  • "marketName": "string",
  • "meta": {
    },
  • "osVersion": "string",
  • "owner": {
    },
  • "platform": "string",
  • "present": true,
  • "ready": true,
  • "resolution": "string",
  • "sdk": "string",
  • "serial": "string",
  • "status": {
    }
}

User devices

Manages devices used by a user.

Assign device to user

Assigns a device to a user. Works only for Android devices.

Authorizations:
iam_token_project_scoped
Request Body schema: application/json
required
serial
required
string

The serial number of the device.

timeout
integer

Device timeout in milliseconds. If the device remains idle for this period, it will be automatically disconnected. The default timeout is 9 hours (32,400,000 milliseconds).

Responses

Request samples

Content type
application/json
{
  • "serial": "string",
  • "timeout": 0
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Remove device from user

Removes a device from the user and makes it available for other users. Works only for Android devices.

Authorizations:
iam_token_project_scoped
path Parameters
serial
required
string

The serial number of the device.

Responses

Response samples

Content type
application/json
"string"

Start ADB remote connect session

Starts an ADB remote connect session. Works only for Android devices.

Authorizations:
iam_token_project_scoped
path Parameters
serial
required
string

The serial number of the device.

Responses

Response samples

Content type
application/json
{
  • "remoteConnectUrl": "string"
}

End ADB remote connect session

Ends an ADB remote connect session. Works only for Android devices.

Authorizations:
iam_token_project_scoped
path Parameters
serial
required
string

The serial number of the device.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

WebSocket authorization

Issues WebSocket authorization tickets.

Issue websocket authorization ticket

Issues a new websocket authorization ticket. The ticket allows you to control a device remotely.

Authorizations:
iam_token_project_scoped

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "description": "string",
  • "ticket": "string"
}

Proxy tokens

Manages all proxy tokens that are used for routing device traffic to the client.

List proxy tokens

Returns a list of proxy tokens belonging to the current user. Each token includes metadata such as fingerprint, name, active status, and associated device serial numbers. Token secrets are not exposed in this response.

Authorizations:
iam_token_project_scopediam_token_account_scoped

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create proxy token

Creates a proxy token for the current user. The generated token secret is returned in the response body and cannot be retrieved afterwards. The token name must be unique per user.

Authorizations:
iam_token_project_scopediam_token_account_scoped
Request Body schema: application/json
required
name
required
string

Human-readable name for the proxy token. Must be unique per user (case-insensitive). Length: 1–255 characters (trimmed).

Responses

Request samples

Content type
application/json
{
  • "name": "My VPN Token"
}

Response samples

Content type
application/json
{
  • "active": true,
  • "fingerprint": "fp_someformat",
  • "name": "My VPN Token",
  • "token": "daxyz789..."
}

Delete proxy token

Deletes the specified proxy token using its unique fingerprint. Any active connections that rely on this token are immediately terminated.

Authorizations:
iam_token_project_scopediam_token_account_scoped
path Parameters
fingerprint
required
string

Unique fingerprint of the proxy token to delete.

Responses

Response samples

Content type
application/json
{
  • "active": true,
  • "fingerprint": "fp_someformat",
  • "name": "My VPN Token",
  • "serials": [
    ]
}

User proxy tokens

Manages proxy tokens that are used for routing device traffic to a specific user's client. Accessible only to iam_admin.

List proxy tokens for user

Returns a list of proxy tokens belonging to the specified user. Each token includes metadata such as fingerprint, name, active status, and associated device serial numbers. Token secrets are not exposed in this response. This method is available only to user administrators.

Authorizations:
iam_token_account_scoped
path Parameters
user_id
required
string

Unique identifier of the user whose proxy tokens are being listed.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create proxy token for user

Creates a new proxy token for the specified user. The generated token secret is returned in the response body and is not retrievable afterwards. The token name must be unique per user. This method is available only to user administrators.

Authorizations:
iam_token_account_scoped
path Parameters
user_id
required
string

Unique identifier of the user for whom the proxy token is being created.

Request Body schema: application/json
required
name
required
string

Human-readable name for the proxy token. Must be unique per user (case-insensitive). Length: 1–255 characters (trimmed).

Responses

Request samples

Content type
application/json
{
  • "name": "My VPN Token"
}

Response samples

Content type
application/json
{
  • "active": true,
  • "fingerprint": "fp_someformat",
  • "name": "My VPN Token",
  • "token": "daxyz789..."
}

Delete user proxy token

Deletes the specified proxy token belonging to the specified user. Any active connections that rely on this token are immediately terminated. This method is available only to user administrators.

Authorizations:
iam_token_account_scoped
path Parameters
user_id
required
string

Unique identifier of the user whose proxy token is being deleted.

fingerprint
required
string

Unique fingerprint of the proxy token to delete.

Responses

Response samples

Content type
application/json
{
  • "active": true,
  • "fingerprint": "fp_someformat",
  • "name": "My VPN Token",
  • "serials": [
    ]
}

Proxy firewall

Manages project-scoped proxy firewall rules for traffic forwarding.

List firewall rules

Returns a list of all firewall rules configured for the current project.

Authorizations:
iam_token_project_scoped

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create firewall rule

Creates a new firewall rule in the current project. The maximum number of rules per project is 100.

Authorizations:
iam_token_project_scoped
Request Body schema: application/json
required
action
string
Enum: "allow" "deny"

Specifies whether to permit (allow) or block (deny) traffic matching this rule.

address
string

Destination address. Available values are IPv4, IPv6, subnet, domain, or "*".

ports
string

Destination port. Available values are a single port, a range (e.g., "8000:9000"), or "*".

Responses

Request samples

Content type
application/json
{
  • "action": "allow",
  • "address": "192.168.1.0/24",
  • "ports": "443"
}

Response samples

Content type
application/json
{
  • "id": "fwr-7f9a1b2c",
  • "action": "allow",
  • "address": "192.168.1.0/24",
  • "ports": "443"
}

Delete firewall rule

Deletes a firewall rule by its unique identifier.

Authorizations:
iam_token_project_scoped
path Parameters
id
required
string

Unique identifier of the firewall rule to delete.

Responses

Response samples

Content type
application/json
"string"

Update firewall rule

Updates one or more fields of a firewall rule. Only the fields provided in the request body are modified.

Authorizations:
iam_token_project_scoped
path Parameters
id
required
string

Unique identifier of the firewall rule to update.

Request Body schema: application/json
required
action
string
Enum: "allow" "deny"

Specifies whether to permit (allow) or block (deny) traffic matching this rule.

address
string

Destination address. Available values are IPv4, IPv6, subnet, domain, or "*".

ports
string

Destination port. Available values are a single port, a range (e.g., "8000:9000"), or "*".

Responses

Request samples

Content type
application/json
{
  • "action": "allow",
  • "address": "192.168.1.0/24",
  • "ports": "443"
}

Response samples

Content type
application/json
{
  • "id": "fwr-7f9a1b2c",
  • "action": "allow",
  • "address": "192.168.1.0/24",
  • "ports": "443"
}

Reorder firewall rules

Updates the execution priority of firewall rules by submitting an ordered list of rule identifiers. The first identifier in the list receives the highest priority.

Authorizations:
iam_token_project_scoped
Request Body schema: application/json
required
ids
required
Array of strings

List of rule identifiers in the desired order of execution priority. The first rule in the list has the highest priority. Priority is important only for IP-based rules when overlapping subnets exist (e.g., denying 172.0.0.1 but allowing 172.0.0.0/24).

Responses

Request samples

Content type
application/json
{
  • "ids": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]