Skip to main content
POST
/
boxes
/
{boxId}
/
actions
/
drag
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" });

  await box.action.drag({
    start: { x: 100, y: 150 },
    end: { x: 200, y: 200 },
    duration: "50ms"
  });

  // Natural language start/end 
  await box.action.drag({
    start: "Chrome App",
    end: "Trash",
    duration: "800ms"
  });

  await box.action.drag({
    path: [
      { x: 100, y: 150 },
      { x: 200, y: 200 },
      { x: 300, y: 250 }
    ],
    duration: "50ms"
  });
}

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
  • Drag Simple
  • Drag Advanced

Drag action configuration with start and end points.

Operation flow:

  1. Touch finger at "start" coordinates
  2. Move to "end" coordinates within the "duration" time and lift finger
start
required

Start point of the drag path (coordinates or natural language) Single point in a drag path

end
required

End point of the drag path (coordinates or natural language) Single point in a drag path

duration
string
default:500ms

Duration to complete the movement from start to end coordinates

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

Example:

"500ms"

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..."
}
}
I