# Obtener una lista de perfiles de teléfono en la nube

Lista los Cloud Phones visibles para el equipo autenticado, página a página.
- **Efecto**: ninguno. Solo lectura. Es seguro reintentar con retroceso acotado.
- **Nota**: se devuelven teléfonos de todos los tipos de dispositivo. Las contraseñas de los proxies de plataforma y dinámicos se eliminan de la respuesta.
- **Uso**: este endpoint y `/cloudphone/info` son las señales de finalización de las operaciones asíncronas de encendido, nuevo dispositivo en un clic y aprovisionamiento.

Endpoint: POST /cloudphone/page
Version: 2026-09-05
Security: Authorization

## Security:

  - `Authorization` (unknown)
    http bearer JWT

## Request fields (application/json):

  - `bindIp` (boolean)
    Si la IP está vinculada: verdadero = vinculada, falso = no lo está
    Example: false

  - `keyword` (string)
    Palabras clave para filtrar: información del proxy, nombre del grupo, nombre de la etiqueta, nombre del entorno
    Example: CP-424

  - `pageNo` (integer)
    Página actual
    Example: 1

  - `pageSize` (integer)
    Elementos por página
    Example: 100

  - `sort` (array)
    Campos de ordenación dinámicos. Actualmente, solo se admite "envName" para teléfonos en la nube.
    Example: [{"sortDirection":"asc","sortField":"envName"}]

  - `sort.sortDirection` (string, required)
    Dirección de ordenación
    Enum: "asc", "desc"

  - `sort.sortField` (string, required)
    Campo para ordenar (actualmente solo se admite "envName")
    Example: envName

## Response 200:

  - `200` (unknown)
    OK

## Response 200 fields (application/json):

  - `code` (integer, required)
    Código de resultado devuelto 0: Normal. Los demás códigos son excepciones.

  - `msg` (string | null, required)
    mensaje de error

  - `data` (object, required)

  - `data.current` (string, required)

  - `data.dataList` (array, required)

  - `data.dataList.abnormalStatus` (integer)
    Estado anormal: 0-Sin anomalías 1-No activado 2-Fuera de contrato 3-Sobrevendido 4-Desactivado

  - `data.dataList.adbInfo` (object)

  - `data.dataList.adbInfo.adbIp` (string, required)
    IP de ADB

  - `data.dataList.adbInfo.adbPassword` (string, required)
    contraseña de conexión adb

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

  - `data.dataList.adbInfo.remark` (string, required)
    Información sobre observaciones de fallos

  - `data.dataList.adbInfo.success` (integer, required)
    Adquisición exitosa 1=Sí 0=No

  - `data.dataList.billingType` (integer)
    Facturación: 0-Gratis 1-Suscripción flexible 2-Mensual

  - `data.dataList.createDate` (string)

  - `data.dataList.createMember` (integer)

  - `data.dataList.createMemberName` (string)

  - `data.dataList.enableAdb` (boolean)

  - `data.dataList.envName` (string)
    Nombre del teléfono en la nube

  - `data.dataList.envRemark` (string)
    Comentarios sobre el perfil

  - `data.dataList.envStatus` (integer)
    Estado del perfil: 0-Nuevo 1-Error al crear 2-Detenido 3-Iniciando 4-Iniciando 5-Reinicio en curso

  - `data.dataList.expireTime` (string)
    tiempo de expiración

  - `data.dataList.groupId` (string)

  - `data.dataList.groupName` (string | null)
    Nombre del grupo. Null cuando el teléfono en la nube no pertenece a ningún grupo

  - `data.dataList.id` (string)

  - `data.dataList.androidId` (string)
    android id del teléfono en la nube

  - `data.dataList.gaid` (string)
    gaid del teléfono en la nube

  - `data.dataList.lastConnectDate` (string)

  - `data.dataList.lastConnectMemberId` (string)

  - `data.dataList.lastConnectMemberName` (string)

  - `data.dataList.lastStartDate` (string)

  - `data.dataList.lastStartMemberId` (string)

  - `data.dataList.lastStartMemberName` (string)

  - `data.dataList.proxy` (object)

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

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

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

  - `data.dataList.proxy.delFlag` (integer, required)
    1 - eliminado 2 - no eliminado

  - `data.dataList.proxy.expiryTime` (string, required)

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

  - `data.dataList.proxy.groupId` (string, required)

  - `data.dataList.proxy.id` (string, required)

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

  - `data.dataList.proxy.proxyAreaCode` (string, required)

  - `data.dataList.proxy.proxyCatagoryType` (integer, required)
    Tipo de proxy: 0: grupo de sitios 1: plataforma en la nube 2: IP propia 3: VPS 4: máquina virtual

  - `data.dataList.proxy.proxyCheckStatus` (integer, required)
    Estado de detección: 0: detección pendiente 1: detección exitosa 2: fallo de detección 3: error desconocido

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

  - `data.dataList.proxy.state` (string | null)
    Estado o provincia del proxy. Se prioriza la ubicación detectada de la IP de salida y después la configurada; puede ser null o una cadena vacía.
    Example: California

  - `data.dataList.proxy.city` (string | null)
    Ciudad del proxy. Se prioriza la ubicación detectada de la IP de salida y después la configurada; puede ser null o una cadena vacía.
    Example: Los Angeles

  - `data.dataList.proxy.proxyIp` (string, required)

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

  - `data.dataList.proxy.proxyPort` (integer | null, required)
    Puerto de conexión del proxy; no se deduce del nombre. Puede ser null si no está disponible.
    Example: 1080

  - `data.dataList.proxy.proxyRegionCode` (string, required)

  - `data.dataList.proxy.proxyStatus` (integer, required)
    0-Normal 1-Asignación pendiente 2-Actualización 3-Caducado

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

  - `data.dataList.proxy.proxySub.activeRecordId` (string, required)

  - `data.dataList.proxy.proxySub.businessId` (string, required)

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

  - `data.dataList.proxy.proxySub.endTime` (string, required)

  - `data.dataList.proxy.proxySub.id` (string, required)

  - `data.dataList.proxy.proxySub.nextBillingTime` (string, required)

  - `data.dataList.proxy.proxySub.startTime` (string, required)

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

  - `data.dataList.proxy.proxySub.subStatus` (integer, required)
    Estado de la suscripción: 0-Pendiente 1-Suscrito 2-Cancelado

  - `data.dataList.proxy.proxySub.subType` (integer, required)
    Tipo de suscripción: 1 agente, 2 paquetes

  - `data.dataList.proxy.proxySub.teamId` (string, required)

  - `data.dataList.proxy.proxyType` (integer, required)
    Tipo de proxy: 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)

  - `data.dataList.proxy.regionKey` (string, required)

  - `data.dataList.proxy.releaseTime` (string, required)
    Tiempo de liberación: tiempo de eliminación si se elimina, tiempo de expiración si expira.

  - `data.dataList.proxy.uniqueId` (integer, required)

  - `data.dataList.proxyStatus` (integer)
    Estado del proxy: 0-No detectado 1-Detectando 2-Detección fallida 3-Detección exitosa

  - `data.dataList.supportAdb` (boolean)

  - `data.dataList.tagInfos` (array)
    Detalles de las etiquetas. Array vacío cuando no hay etiquetas asignadas

  - `data.dataList.tagInfos.id` (string, required)
    ID de la etiqueta

  - `data.dataList.tagInfos.tagName` (string, required)
    Nombre de la etiqueta

  - `data.dataList.updateDate` (string)

  - `data.dataList.updateMember` (integer)

  - `data.pages` (string, required)

  - `data.total` (string, required)

  - `requestId` (string, required)
    ID de solicitud de operación

