> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tapkit.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Hold and drag

> Long press, then drag

Press and hold at one point, then drag to another and release. Use it to move app icons, reorder lists, and drag and drop.

<ParamField path="phone_id" type="string" required>
  The phone's ID, from [List phones](/api-reference/list-phones).
</ParamField>

<ParamField query="async" type="boolean" default="false">
  Return `{"job_id": ...}` immediately instead of waiting for the action. See [Jobs](/api-reference/introduction#jobs).
</ParamField>

## Body

<ParamField body="from_x" type="integer" required>
  Start position, pixels from the left edge.
</ParamField>

<ParamField body="from_y" type="integer" required>
  Start position, pixels from the top edge.
</ParamField>

<ParamField body="to_x" type="integer" required>
  End position, pixels from the left edge.
</ParamField>

<ParamField body="to_y" type="integer" required>
  End position, pixels from the top edge.
</ParamField>

<ParamField body="hold_duration_ms" type="integer" default="500">
  How long to hold before moving, in milliseconds.
</ParamField>

<ParamField body="speed" type="string" default="medium">
  How fast to move: `slow`, `medium`, or `fast`.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://api.tapkit.ai/v1/phones/$PHONE_ID/hold-and-drag \
    -H "X-API-Key: $TAPKIT_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"from_x": 300, "from_y": 800, "to_x": 900, "to_y": 800, "hold_duration_ms": 500, "speed": "medium"}'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "id": "5d2c9a0e-7f7b-4c1e-9d1a-2f4b8e0c3a61",
    "status": "completed",
    "result": {},
    "created_at": "2026-09-23T18:30:00Z",
    "completed_at": "2026-09-23T18:30:01Z"
  }
  ```
</ResponseExample>
