# List Cloud Phone Profiles

Endpoint: POST /api/cloudphone/page
Version: 1.0.0

## Request fields (application/json):

  - `bindIp` (boolean)
    Whether IP is bound: true = bound, false = not
    Example: false

  - `keyword` (string)
    Keyword to filter: proxy info, group name, tag name, environment name
    Example: CP-424

  - `pageNo` (integer)
    Current page
    Example: 1

  - `pageSize` (integer)
    Items per page
    Example: 100

  - `sort` (array)
    Dynamic sort fields. Currently only "envName" is supported for cloud phones.
    Example: [{"sortDirection":"asc","sortField":"envName"}]

  - `sort.sortDirection` (string, required)
    Sort direction
    Enum: "asc", "desc"

  - `sort.sortField` (string, required)
    Field to sort by (only "envName" is currently supported)
    Example: envName

## Response 200 fields (application/json):

  - `code` (integer, required)
    Return result code 0:Normal Other codes are exceptions.

  - `msg` (string, required)
    error message

  - `data` (object, required)

  - `data.current` (integer, required)

  - `data.dataList` (array, required)

  - `data.dataList.abnormalStatus` (integer)
    Abnormal status 0-No abnormality 1-Unactivated 2-Out-of-contract 3-Oversold 4-Deactivated

  - `data.dataList.adbInfo` (object)
    ADB info is only available when the phone is powered on (envStatus >= 4); it cannot be queried when powered off or booting

  - `data.dataList.adbInfo.adbIp` (string, required)
    adb ip

  - `data.dataList.adbInfo.adbPassword` (string, required)
    adb connection password

  - `data.dataList.adbInfo.adbPort` (string, required)
    adb port

  - `data.dataList.adbInfo.command` (string | null)
    ADB SSH tunnel connection command

  - `data.dataList.adbInfo.expireTime` (string | null)
    ADB connection expiration time

  - `data.dataList.adbInfo.remark` (string, required)
    Failure Remarks Information

  - `data.dataList.adbInfo.success` (integer, required)
    Successful acquisition 1=Yes 0=No

  - `data.dataList.billingType` (integer)
    Billing type: 1 = Pay-per-minute (On-demand), 2 = Monthly

  - `data.dataList.createDate` (string)
    Creation time

  - `data.dataList.createMember` (integer)
    Creator member ID

  - `data.dataList.createMemberName` (string)
    Creator member name

  - `data.dataList.enableAdb` (boolean)
    Whether to enable ADB

  - `data.dataList.envName` (string)
    Cloud Phone Name

  - `data.dataList.envRemark` (string)
    Profile Remarks

  - `data.dataList.envStatus` (integer)
    Profile Status:
- 0: New
- 1: Creation failed
- 2: Powered off
- 3: Booting
- 4: Powered on
- 5: Resetting
- 6: Restarting
- 7: One-click new machine in progress

  - `data.dataList.expireTime` (integer)
    expiration time

  - `data.dataList.groupId` (integer)
    Group ID

  - `data.dataList.groupName` (string | null)
    Group name. Null when the cloud phone is ungrouped

  - `data.dataList.id` (integer)
    Cloud phone ID

  - `data.dataList.androidId` (string)
    cloud phone android id

  - `data.dataList.gaid` (string)
    cloud phone gaid

  - `data.dataList.lastConnectDate` (string)
    Last connection time

  - `data.dataList.lastConnectMemberId` (integer)
    Last connected member ID

  - `data.dataList.lastConnectMemberName` (string)
    Last connected member name

  - `data.dataList.lastStartDate` (string)
    Last boot time

  - `data.dataList.lastStartMemberId` (integer)
    Last boot member ID

  - `data.dataList.lastStartMemberName` (string)
    Last boot member name

  - `data.dataList.proxy` (object)

  - `data.dataList.proxy.country` (string, required)
    Country

  - `data.dataList.proxy.countryCode` (string, required)
    Country code

  - `data.dataList.proxy.createDate` (string, required)
    Creation time

  - `data.dataList.proxy.delFlag` (integer, required)
    1 - deleted 2 - not deleted

  - `data.dataList.proxy.expiryTime` (integer, required)
    Expiration time

  - `data.dataList.proxy.exportIp` (string, required)
    Outgoing IP address

  - `data.dataList.proxy.groupId` (integer, required)
    Group ID

  - `data.dataList.proxy.id` (integer, required)
    ID

  - `data.dataList.proxy.providerCode` (string, required)
    Provider code

  - `data.dataList.proxy.proxyAreaCode` (string, required)
    Proxy location area code

  - `data.dataList.proxy.proxyCatagoryType` (integer, required)
    Proxy type:0:site group 1:cloud platform 2:own IP 3:vps 4:virtual machine

  - `data.dataList.proxy.proxyCheckStatus` (integer, required)
    Detection status:0:pending detection 1:successful detection 2:detection failure 3:unknown error

  - `data.dataList.proxy.proxyInfo` (string, required)
    Proxy details string

  - `data.dataList.proxy.proxyIp` (string, required)
    Proxy server IP address

  - `data.dataList.proxy.proxyName` (string, required)
    Proxy configuration name

  - `data.dataList.proxy.proxyPort` (integer, required)
    Proxy server port

  - `data.dataList.proxy.proxyRegionCode` (string, required)
    Proxy location region code

  - `data.dataList.proxy.proxyStatus` (integer, required)
    0-Normal 1-Pending allocation 2-Upgrading 3-Expired

  - `data.dataList.proxy.proxySub` (object, required)

  - `data.dataList.proxy.proxySub.activeRecordId` (integer, required)
    Active subscription record ID

  - `data.dataList.proxy.proxySub.businessId` (string, required)
    Proxy service business ID

  - `data.dataList.proxy.proxySub.createMember` (integer, required)
    Creator member ID

  - `data.dataList.proxy.proxySub.endTime` (integer, required)
    End time

  - `data.dataList.proxy.proxySub.id` (integer, required)
    Subscription ID

  - `data.dataList.proxy.proxySub.nextBillingTime` (integer, required)
    Next billing/payment time

  - `data.dataList.proxy.proxySub.startTime` (integer, required)
    Start time of validity

  - `data.dataList.proxy.proxySub.subPayMethod` (string, required)
    Subscription payment method

  - `data.dataList.proxy.proxySub.subStatus` (integer, required)
    Subscription Status:0-Pending 1-Subscribed 2-Cancelled

  - `data.dataList.proxy.proxySub.subType` (integer, required)
    Subscription Type:1-Agent 2-Package

  - `data.dataList.proxy.proxySub.teamId` (integer, required)
    Team ID

  - `data.dataList.proxy.proxyType` (integer, required)
    Proxy type：0-http 1-https 2-socks5 4-Oxylabs 5-Proxys.io 6-GeoSurf 9-Oxylabsauto 10-Trogan 11-Shadowsocks 12-vmess

  - `data.dataList.proxy.proxyTypeCode` (string, required)
    Proxy protocol type code

  - `data.dataList.proxy.regionKey` (string, required)
    Cloud platform region key

  - `data.dataList.proxy.releaseTime` (string, required)
    Release time:deletion time if deleted, expiration time if expired

  - `data.dataList.proxy.uniqueId` (integer, required)
    Display sort sequence ID

  - `data.dataList.proxyStatus` (integer)
    Proxy Status:0-Not Detected 1-Detecting 2-Detecting Failed 3-Detecting Successful

  - `data.dataList.supportAdb` (boolean)
    Whether ADB is supported: 0 = no, 1 = yes

  - `data.dataList.tagInfos` (array)
    Tag details. Empty array when no tags are assigned

  - `data.dataList.tagInfos.id` (string, required)
    Tag ID

  - `data.dataList.tagInfos.tagName` (string, required)
    Tag name

  - `data.dataList.updateDate` (string)
    Update time

  - `data.dataList.updateMember` (integer)
    Updater member ID

  - `data.pages` (integer, required)

  - `data.total` (integer, required)

  - `requestId` (string, required)
    Operation Request ID

