# Request File Download

Download a file from a Cloud Phone.
- **Preconditions**: the phone must be powered on and not held by another member.
- **Effect**: the service scans the parent directory first and only then starts the transfer, so a missing path fails **here** rather than on the status poll. It must match a regular file, not a directory.
- **Completion**: **accepted, not complete.** The response returns `downId`; poll `/cloudphone/download/result` until the status is succeeded, failed or cancelled. The status endpoint re-checks that the phone is still powered on and still yours.
- **Retry**: not idempotent — each call rescans and issues a new `downId`.

Documented business errors: `33300`, `33301`, `33507`. 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/download
Version: 2026-09-05

## Request fields (application/json):

  - `id` (string, required)
    Cloud phone ID

  - `filePath` (string, required)
    file path: /sdcard/Download/a.txt

## Response 200:

  - `200` (unknown)
    Success. `data` is an object with the fields `id` and `downId`.

## Response 200 fields (application/json):

  - `code` (integer, required)
    Response code, 0 indicates success,>0 indicates failure

  - `msg` (string | null, required)

  - `data` (object, required)

  - `data.id` (string, required)
    Cloud phone id

  - `data.downId` (string, required)
    File download id

  - `requestId` (string, required)

