# Touch - Drag

Drag between two points on the Cloud Phone screen.
- **Preconditions**: the phone must be powered on and not held by another member. Supported on compatible device models only; incompatible models reject the call.
- **Note**: **on some models this is the same implementation as swipe** — the service delegates drag straight to the swipe routine, so the two are indistinguishable there. Other models have a separate drag action.
- **Completion**: synchronous. `data.status` is `finish` or `pending`.
- **Retry**: no deduplication; a repeat call drags again.

Documented business errors: `33300`, `33301`, `33401`. See [Error Codes](../Getting%20Started/error-codes.md) for what each code means. Any operation can additionally return the common codes.

Endpoint: POST /api/cloudphone/touch/drag
Version: 2026-09-05

## Request fields (application/json):

  - `id` (string, required)
    Cloud Phone ID
    Example: 1558968155668507

  - `pos1` (array, required)
    Start coordinates [x, y]
    Example: [540,1500]

  - `pos2` (array, required)
    End coordinates [x, y]
    Example: [540,500]

  - `duration` (integer)
    Swipe/drag duration in milliseconds. A larger value results in a slower action.
    Example: 300

## Response 200:

  - `200` (unknown)
    Operation successful

## Response 200 fields (application/json):

  - `code` (integer)
    Status code, 0 means success
    Example: 0

  - `msg` (string | null)
    Response message
    Example: success

  - `data` (object)

  - `data.status` (string)
    Execution status
    Example: finish

