Raw schema
{
"type": "object",
"properties": {
"phone_id": {
"type": "string",
"pattern": "^ph_[a-z2-7]{12}$",
"description": "Phone ID from create_phone or list_phones."
},
"actions": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "tap"
},
"target": {
"anyOf": [
{
"type": "object",
"properties": {
"x": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"y": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"ref": {
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"snapshot_id": {
"type": "string",
"pattern": "^snp_[a-z2-7]{12}$"
}
},
"required": [
"ref",
"snapshot_id"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"nth": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"required": [
"text"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 300
}
},
"required": [
"id"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"desc": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"required": [
"desc"
],
"additionalProperties": false
}
]
}
},
"required": [
"type",
"target"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "double_tap"
},
"target": {
"anyOf": [
{
"type": "object",
"properties": {
"x": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"y": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"ref": {
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"snapshot_id": {
"type": "string",
"pattern": "^snp_[a-z2-7]{12}$"
}
},
"required": [
"ref",
"snapshot_id"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"nth": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"required": [
"text"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 300
}
},
"required": [
"id"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"desc": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"required": [
"desc"
],
"additionalProperties": false
}
]
}
},
"required": [
"type",
"target"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "long_press"
},
"target": {
"anyOf": [
{
"type": "object",
"properties": {
"x": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"y": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"ref": {
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"snapshot_id": {
"type": "string",
"pattern": "^snp_[a-z2-7]{12}$"
}
},
"required": [
"ref",
"snapshot_id"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"nth": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"required": [
"text"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 300
}
},
"required": [
"id"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"desc": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"required": [
"desc"
],
"additionalProperties": false
}
]
},
"duration_ms": {
"default": 800,
"type": "integer",
"minimum": 300,
"maximum": 5000
}
},
"required": [
"type",
"target"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "swipe"
},
"from": {
"type": "object",
"properties": {
"x": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"y": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"to": {
"type": "object",
"properties": {
"x": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"y": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"duration_ms": {
"default": 300,
"type": "integer",
"minimum": 50,
"maximum": 5000
}
},
"required": [
"type",
"from",
"to"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "scroll"
},
"direction": {
"type": "string",
"enum": [
"up",
"down",
"left",
"right"
]
},
"target": {
"anyOf": [
{
"type": "object",
"properties": {
"x": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"y": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"ref": {
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"snapshot_id": {
"type": "string",
"pattern": "^snp_[a-z2-7]{12}$"
}
},
"required": [
"ref",
"snapshot_id"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"nth": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"required": [
"text"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 300
}
},
"required": [
"id"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"desc": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"required": [
"desc"
],
"additionalProperties": false
}
]
},
"amount": {
"default": 0.6,
"type": "number",
"minimum": 0.1,
"maximum": 1
}
},
"required": [
"type",
"direction"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "type"
},
"text": {
"type": "string",
"minLength": 1,
"maxLength": 5000
},
"clear": {
"default": false,
"type": "boolean"
},
"submit": {
"default": false,
"type": "boolean"
}
},
"required": [
"type",
"text"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "key"
},
"key": {
"anyOf": [
{
"type": "string",
"enum": [
"enter",
"delete",
"tab",
"escape",
"space",
"up",
"down",
"left",
"right",
"page_up",
"page_down",
"move_home",
"move_end",
"menu",
"search",
"volume_up",
"volume_down"
]
},
{
"type": "integer",
"minimum": 0,
"maximum": 400
}
]
}
},
"required": [
"type",
"key"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "back"
}
},
"required": [
"type"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "home"
}
},
"required": [
"type"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "recents"
}
},
"required": [
"type"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "notifications"
}
},
"required": [
"type"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "open_app"
},
"package": {
"type": "string",
"maxLength": 255,
"pattern": "^[A-Za-z][A-Za-z0-9_]*(\\.[A-Za-z0-9_]+)+$"
},
"activity": {
"type": "string",
"maxLength": 300
}
},
"required": [
"type",
"package"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "close_app"
},
"package": {
"type": "string",
"maxLength": 255,
"pattern": "^[A-Za-z][A-Za-z0-9_]*(\\.[A-Za-z0-9_]+)+$"
},
"clear_data": {
"default": false,
"type": "boolean"
}
},
"required": [
"type",
"package"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "open_url"
},
"url": {
"type": "string",
"minLength": 3,
"maxLength": 2000
},
"package": {
"type": "string",
"maxLength": 255,
"pattern": "^[A-Za-z][A-Za-z0-9_]*(\\.[A-Za-z0-9_]+)+$"
}
},
"required": [
"type",
"url"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "wait"
},
"ms": {
"type": "integer",
"minimum": 1,
"maximum": 10000
}
},
"required": [
"type",
"ms"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "wait_for"
},
"target": {
"anyOf": [
{
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"nth": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"required": [
"text"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 300
}
},
"required": [
"id"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"desc": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"required": [
"desc"
],
"additionalProperties": false
}
]
},
"gone": {
"default": false,
"type": "boolean"
},
"timeout_ms": {
"default": 10000,
"type": "integer",
"minimum": 100,
"maximum": 30000
}
},
"required": [
"type",
"target"
],
"additionalProperties": false
}
]
},
"description": "From 1 to 20 actions, run in order. Durations are in milliseconds, and the waits in one batch may add up to 60 seconds. Coordinates are device pixels."
},
"observe": {
"default": "ui",
"description": "What the result shows of the screen afterwards: ui (the element list, the default), screenshot, both, or none. A batch that stops early shows the element list, unless the screen couldn't be read, or not in time.",
"type": "string",
"enum": [
"none",
"ui",
"screenshot",
"both"
]
}
},
"required": [
"phone_id",
"actions"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}