POST
/
boxes
/
{boxId}
/
actions
/
long-press
JavaScript
import GboxSDK from "gbox-sdk";

const gboxSDK = new GboxSDK({
  apiKey: process.env["GBOX_API_KEY"] // This is the default and can be omitted
});

async function main() {
  const box = await gboxSDK.create({ type: "android" });

  // Long press at coordinates (350, 250)
  await box.action.longPress({
    x: 350,
    y: 250,
  });

  // Long press with custom duration (500ms)
  await box.action.longPress({
    x: 200,
    y: 300,
    duration: "500ms"
  });

  // Long press using natural language target
  await box.action.longPress({
    target: "Chrome icon",
    duration: "1s"
  });
}

main();
{
  "message": "Action executed successfully",
  "actionId": "c9bdc193-b54b-4ddb-a035-5ac0c598d32d",
  "screenshot": {
    "trace": {
      "uri": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA..."
    },
    "before": {
      "uri": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA..."
    },
    "after": {
      "uri": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA..."
    }
  }
}

Authorizations

Authorization
string
header
required

Enter your API Key in the format: Bearer <token>. Get it from https://gbox.ai

Path Parameters

boxId
string
required

Box ID

Example:

"c9bdc193-b54b-4ddb-a035-5ac0c598d32d"

Body

application/json

Long press action configuration.

Operation flow:

  1. Touch finger at specified coordinates
  2. Hold for the specified duration
  3. Release finger

This is useful for triggering context menus, drag operations, or other long-press interactions.

x
number
required

X coordinate of the long press

Example:

350

y
number
required

Y coordinate of the long press

Example:

250

duration
string
default:1s

Duration to hold the press (e.g. '1s', '500ms')

Supported time units: ms (milliseconds), s (seconds), m (minutes), h (hours) Example formats: "500ms", "30s", "5m", "1h" Default: 1s

Example:

"1s"

options
object

Action options. When options.screenshot is provided, ALL deprecated screenshot fields (outputFormat, presignedExpiresIn, screenshotDelay, screenshotRange, includeScreenshot) will be completely ignored. Action common options

Example:
{
"screenshot": {
"outputFormat": "base64",
"presignedExpiresIn": "30m",
"delay": "500ms",
"phases": ["before", "after"]
}
}

Response

200 - application/json

Result of an UI action execution with optional screenshots

message
string
required

message

Example:

"Action executed successfully"

actionId
string
required

Unique identifier for each action. Use this ID to locate the action and report issues.

Example:

"c9bdc193-b54b-4ddb-a035-5ac0c598d32d"

screenshot
object

Optional screenshot data. Only present when screenshots are requested via options.screenshot.phases or deprecated fields Complete screenshot result with operation trace, before and after images

Example:
{
"trace": {
"uri": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA..."
},
"before": {
"uri": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA..."
},
"after": {
"uri": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA..."
}
}