# API Local de Teléfono en la Nube

Gestione instancias de teléfonos en la nube a través de la API Local de MoreLogin. URL base: http://127.0.0.1:40000. La API Local se ejecuta en su máquina junto con la aplicación de escritorio MoreLogin. Todas las solicitudes deben originarse desde la misma máquina.

Version: 1.0.0

## Servers

MoreLogin  Local endpoint
```
http://127.0.0.1:40000
```

## Security

## Download OpenAPI description

[API Local de Teléfono en la Nube](https://guide.morelogin.com/_bundle/@l10n/es/API%20Reference/Cloud%20Phone/local-api.yaml)

## Cloud Phone Management

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

 - [POST /api/cloudphone/page](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/cloud-phone-management/pageusingpost.md)

### Creación de un perfil de teléfono en la nube

 - [POST /api/cloudphone/create](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/cloud-phone-management/createusingpost.md)

### Teléfono en la nube para startups

 - [POST /api/cloudphone/powerOn](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/cloud-phone-management/poweronusingpost.md)

### Apaga el teléfono en la nube

 - [POST /api/cloudphone/powerOff](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/cloud-phone-management/poweroffusingpost.md)

### Modificar el perfil del teléfono en la nube

 - [POST /api/cloudphone/edit/batch](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/cloud-phone-management/editbatchusingpost.md)

### Configurar proxy del teléfono en la nube

 - [POST /api/cloudphone/setProxy](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/cloud-phone-management/setproxy.md): Set proxy settings for one or more cloud phones. Supports binding proxyId directly, or adding/modifying detailed proxy parameters. The request payload format is identical to browser proxy configuration, and settings are synchronized to channel providers in real-time.

### Eliminar perfil de teléfono en la nube

 - [POST /api/cloudphone/delete/batch](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/cloud-phone-management/deleteusingpost.md)

### Nuevo teléfono en la nube con un solo clic

 - [POST /api/cloudphone/newMachine](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/cloud-phone-management/onenewusingpost.md)

### Detalles del teléfono en la nube

 - [POST /api/cloudphone/info](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/cloud-phone-management/infousingpost.md)

### Get Cloud Phone Details By AndroidId

 - [POST /api/cloudphone/queryByAndroidId](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/cloud-phone-management/querybyandroidid.md): Query the cloud phone ID associated with a specific androidId under the current team. Returns the single cloud phone ID if found.

### Habilitar o deshabilitar ROOT global

 - [POST /api/cloudphone/enableRoot](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/cloud-phone-management/enableroot.md): Enable or disable the global system-level ROOT permission on a single cloud phone.

### Captura de pantalla del teléfono en la nube

 - [POST /api/cloudphone/screenCap](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/cloud-phone-management/screencap.md): Get the real-time screen capture of the specified cloud phone instance. Supports returning a temporary signed URL with an expiration timestamp.

### Consultar lista de marcas y modelos

 - [POST /api/cloudphone/brand/models](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/cloud-phone-management/paths/~1api~1cloudphone~1brand~1models/post.md): Consulta la lista de marcas y modelos disponibles para la versión de Android especificada.

## ADB

### Actualizar el estado de ADB del teléfono en la nube

 - [POST /api/cloudphone/updateAdb](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/adb/updateadbusingpost.md)

### Batch Query ADB Info

 - [POST /api/cloudphone/batchAdbInfo](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/adb/batchadbinfo.md): Batch query cloud phone ADB connection info.
- The envIds list supports a maximum of 200 items
- Supports mixed queries across wuin and arm providers; the API internally groups by provider and merges results
- ADB info is only available when the phone is powered on (envStatus >= 4); it cannot be queried when powered off or booting

### Ejecutar comando de shell

 - [POST /api/cloudphone/exeCommand](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/adb/executeshellcommand.md)

## Files

### Subir archivos

 - [POST /api/cloudphone/uploadFile](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/files/fileuploadusing.md)

### Obtener la URL del archivo de carga temporal

 - [POST /api/cloudphone/upload/file/signedUrl](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/files/paths/~1api~1cloudphone~1upload~1file~1signedurl/post.md): Cargue archivos temporales a través de esta interfaz y el sistema los eliminará automáticamente después de 7 días.

### Subir archivo para la URL

 - [POST /api/cloudphone/upload/file](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/files/paths/~1api~1cloudphone~1upload~1file/post.md)

### Resultado de la carga del archivo

 - [POST /api/cloudphone/upload/file/result](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/files/paths/~1api~1cloudphone~1upload~1file~1result/post.md)

### Descarga de archivos

 - [POST /api/cloudphone/download](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/files/paths/~1api~1cloudphone~1download/post.md)

### Resultado de la descarga del archivo

 - [POST /api/cloudphone/download/result](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/files/paths/~1api~1cloudphone~1download~1result/post.md)

### Juego de caja de llaves

 - [POST /api/cloudphone/setKeyBox](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/files/paths/~1api~1cloudphone~1setkeybox/post.md)

## Apps

### Instala la aplicación en tu teléfono en la nube.

 - [POST /api/cloudphone/app/install](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/apps/paths/~1api~1cloudphone~1app~1install/post.md)

### Obtener la lista de aplicaciones APP

 - [POST /api/cloudphone/app/page](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/apps/paths/~1api~1cloudphone~1app~1page/post.md): Obtener la lista de aplicaciones APP

### Listar aplicaciones del equipo

 - [POST /api/cloudphone/team/app/page](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/apps/paths/~1api~1cloudphone~1team~1app~1page/post.md): Obtiene la lista de aplicaciones del equipo.

### Consultar la lista de aplicaciones instaladas

 - [POST /api/cloudphone/app/installedList](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/apps/paths/~1api~1cloudphone~1app~1installedlist/post.md): Consulta la lista de aplicaciones instaladas en un teléfono en la nube.

### Iniciar la aplicación

 - [POST /api/cloudphone/app/start](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/apps/paths/~1api~1cloudphone~1app~1start/post.md): Inicia una aplicación instalada en el teléfono en la nube.

### Reiniciar la aplicación

 - [POST /api/cloudphone/app/restart](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/apps/paths/~1api~1cloudphone~1app~1restart/post.md)

### Detener la aplicación

 - [POST /api/cloudphone/app/stop](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/apps/paths/~1api~1cloudphone~1app~1stop/post.md)

### Desinstalar la aplicación

 - [POST /api/cloudphone/app/uninstall](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/apps/paths/~1api~1cloudphone~1app~1uninstall/post.md)

### Habilitar ROOT de la aplicación

 - [POST /api/cloudphone/app/openRoot](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/apps/appopenroot.md): Enable ROOT permission for a specific app package on a single cloud phone.

### Configurar Ocultar la aplicación de accesibilidad

 - [POST /api/cloudphone/app/setHideAccessibilityApp](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/apps/paths/~1api~1cloudphone~1app~1sethideaccessibilityapp/post.md): Solo es compatible con Android 13, Android 14 y Android 15A.

## Schedules

### Obtenga páginas de plantillas de mercado

 - [POST /api/cloudphone/rpa/template/market/page](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/schedules/paths/~1api~1cloudphone~1rpa~1template~1market~1page/post.md): Plantilla de mercado de horarios de consulta, el nombre de la plantilla admite consultas difusas

### Obtén plantillas de páginas personalizadas

 - [POST /api/cloudphone/rpa/template/personal/page](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/schedules/paths/~1api~1cloudphone~1rpa~1template~1personal~1page/post.md): Plantilla de mercado de horarios de consulta, el nombre de la plantilla admite consultas difusas

### Obtén una lista de horarios

 - [POST /api/cloudphone/rpa/task/page](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/schedules/paths/~1api~1cloudphone~1rpa~1task~1page/post.md)

### Crear un horario

 - [POST /api/cloudphone/rpa/task/save](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/schedules/paths/~1api~1cloudphone~1rpa~1task~1save/post.md): Guardar la tarea programada del teléfono en la nube.

templateParameter Parameter Specification
 1. __Parameter Source__
Parameter keys must be extracted from the parameter field returned by the following APIs:
- Get market template pages
- Get Personal template pages
2.  __Data Structure__
- Submit parameters in JSON object format: {"key1": "value1", "key2": "value2"}
- Final parameter values must be deserialized according to business logic before use
3. __Common Type Parameters__
For the following parameter types, pass values directly in the corresponding format:
- string: {"name": "John"}
- decimal / number: {"amount": 100.50}
- boolean: {"enabled": true}
4. __Media Type Parameters__
For media parameters such as image (pic) or video (video), in addition to basic information, a fixed key "__Extra__" must be included. Example format:
json
{
    "__Extra__": {
        "pic": {
            "name": "pic_name",
            "size": 204800
        },
        "video": {
            "name": "video_name",
            "size": 204800000
        }
    },
    "pic": "https://get.morelogin.com/prod/cloudPhoneTaskVideo/1556061681934880/1c62314c7e2b4d298abe8d5452d7c050/test.png",
    "video": "https://get.morelogin.com/pre/cloudPhoneTaskVideo/1542431036481556/4c4fed83685345ae8f1505fbe0c2f123/baby.mp4"
}

5. __Parameter Configuration Example__
The following example demonstrates how to configure the templateParameter parameter when saving a plan using a market template:
- __Step 1: Retrieve Template Parameters__
Call the Market Template API:
GET /api/cloudphone/rpa/template/market/page
Extract the parameter field from the response, for example:

json
"parameter": "{\"videoDownloadUrl\":{\"type\":\"video\",\"extra\":{\"name\":\"Select Video\",\"type\":\"video\",\"required\":true,\"defaultValue\":{\"enabled\":false},\"index\":1,\"sizeLimit\":{\"value\":200,\"unit\":\"MB\"},\"formatType\":[\"mp4\",\"mov\"]}},\"videoDescription\":{\"type\":\"string\",\"extra\":{\"name\":\"Video Caption\",\"type\":\"string\",\"required\":false,\"charValid\":{\"enabled\":true,\"value\":1000},\"multiline\":{\"enabled\":true,\"value\":3},\"defaultValue\":{\"enabled\":false},\"index\":2}},\"coverUrl\":{\"type\":\"image\",\"extra\":{\"name\":\"Cover Image\",\"type\":\"image\",\"required\":false,\"defaultValue\":{\"enabled\":false},\"index\":3,\"sizeLimit\":{\"value\":5,\"unit\":\"MB\"},\"formatType\":[\"jpg\",\"png\",\"jpeg\"]}},\"enableAIGC\":{\"type\":\"boolean\",\"extra\":{\"name\":\"AI Label\",\"type\":\"boolean\",\"required\":false,\"defaultValue\":{\"enabled\":false},\"index\":4}},\"productId\":{\"type\":\"string\",\"extra\":{\"name\":\"Product ID\",\"type\":\"string\",\"required\":false,\"charValid\":{\"enabled\":true,\"value\":50},\"placeholder\":\"Product ID only supports digits, with a maximum of 50 characters.\",\"defaultValue\":{\"enabled\":false},\"index\":5}},\"productTitle\":{\"type\":\"string\",\"extra\":{\"name\":\"Product Title\",\"type\":\"string\",\"required\":false,\"charValid\":{\"enabled\":true,\"value\":30},\"defaultValue\":{\"enabled\":false},\"index\":6}},\"getLeads\":{\"type\":\"boolean\",\"extra\":{\"name\":\"Get Leads\",\"type\":\"boolean\",\"required\":false,\"defaultValue\":{\"enabled\":false},\"index\":7}},\"comment\":{\"type\":\"string\",\"extra\":{\"name\":\"Comment\",\"type\":\"string\",\"required\":false,\"charValid\":{\"enabled\":true,\"value\":200},\"multiline\":{\"enabled\":true,\"value\":3},\"defaultValue\":{\"enabled\":false},\"index\":8}}}"


- __Step 2: Build the Parameter JSON__
Construct the JSON object according to the parameter requirements:
json
{
  "__Extra__": {
    "videoDownloadUrl": {
      "name": "video_name.mp4",
      "size": 204800000
    }
  },
  "videoDownloadUrl": "https://get.morelogin.com/pre/cloudPhoneTaskVideo/1542431036481556/4c4fed83685345ae8f1505fbe0c2f123/baby.mp4"
}

- __Step 3: Escape the JSON String__
Convert the JSON object into an escaped string format:
json
"{\"__Extra__\": {\"videoDownloadUrl\": {\"name\": \"video_name.mp4\",\"size\": 204800000}},\"videoDownloadUrl\": \"https://get.morelogin.com/pre/cloudPhoneTaskVideo/1542431036481556/4c4fed83685345ae8f1505fbe0c2f123/baby.mp4\"}"

- __Step 4: API Call__
Pass the escaped string as the value of the templateParameter parameter to the target API.

### Crear un horario único

 - [POST /api/cloudphone/rpa/onceTask/save](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/schedules/paths/~1api~1cloudphone~1rpa~1oncetask~1save/post.md): Guardar el teléfono en la nube una vez programada la tarea.

Especificación de parámetros de plantilla
1. Origen de los parámetros
Las claves de los parámetros deben extraerse del campo parameter que devuelven las siguientes API:
- Obtener páginas de plantillas de mercado
- Obtener páginas de plantillas personales
2. Estructura de datos
- Enviar parámetros en formato de objeto JSON: {"clave1": "valor1", "clave2": "valor2"}
- Los valores finales de los parámetros deben deserializarse según la lógica de negocio antes de su uso.
3. Parámetros de tipo común
Para los siguientes tipos de parámetros, pasar los valores directamente en el formato correspondiente:
- Cadena: {"nombre": "John"}
- Decimal/número: {"cantidad": 100.50}
- Booleano: {"habilitado": true}
4. Parámetros de tipo de medio
Para parámetros de medios como imágenes o vídeos, además de la información básica, se debe incluir una clave fija "__Extra__". Formato de ejemplo:
json
{
"__Extra__": {
"pic": {
"name": "pic_name",
"size": 204800

},
"video": {
"name": "video_name",
"size": 204800000
}

},
"pic": "https://get.morelogin.com/prod/cloudPhoneTaskVideo/1556061681934880/1c62314c7e2b4d298abe8d5452d7c050/test.png",
"video": "morelogin://cloudfile?ids=1,2"
}

5. Ejemplo de configuración de parámetros
El siguiente ejemplo muestra cómo configurar el parámetro templateParameter al guardar un plan usando una plantilla de mercado:
- Paso 1: Recuperar parámetros de la plantilla
Llamar a la API de plantillas de mercado:
GET /api/cloudphone/rpa/template/market/page
Extraer el campo parameter de la respuesta, por ejemplo:

json
"parameter": "{\"videoDownloadUrl\":{\"type\":\"video\",\"extra\":{\"name\":\"Select" Vídeo\",\"tipo\":\"vídeo\",\"obligatorio\":verdadero,\"valor_predeterminado\":{\"habilitado\":falso},\"índice\":1,\"límite_tamaño\":{\"valor\":200,\"unidad\":\"MB\"},\"tipo_formato\":[\"mp4\",\"mov\"]}},\"descripción_vídeo\":{\"tipo\":\"cadena\",\"extra\":{\"nombre\":\"Vídeo Leyenda\",\"tipo\":\"cadena\",\"obligatorio\":false,\"carácter\":{\"habilitado\":true,\"valor\":1000},\"multilínea\":{\"habilitado\":true,\"valor\":3},\"valor\predeterminado\":{\"habilitado\":false},\"índice\":2}},\"url\de\portada\":{\"tipo\":\"imagen\",\"extra\":{\"nombre\":\"Portada" Imagen\",\"tipo\":\"imagen\",\"obligatorio\":false,\"valor_predeterminado\":{\"habilitado\":false},\"índice\":3,\"límite_tamaño\":{\"valor\":5,\"unidad\":\"MB\"},\"tipo_formato\":[\"jpg\",\"png\",\"jpeg\"]}},\"habilitarAIGC\":{\"tipo\":\"booleano\",\"extra\":{\"nombre\":\"Etiqueta_AI\",\"tipo\":\"booleano\",\"obligatorio\":false,\"valor_predeterminado\":{\"habilitado\":false},\"índice\":4}},\"id_producto\":{\"tipo\":\"cadena\",\"extra\":{\"nombre\":\"Producto ID\",\"type\":\"string\",\"required\":false,\"charValid\":{\"enabled\":true,\"value\":50},\"placeholder\":\"El ID del producto solo admite dígitos, con un máximo de 50 caracteres."\"defaultValue\":{\"enabled\":false},\"index\":5}},\"productTitle\":{\"type\":\"string\",\"extra\":{\"name\":\"Producto Título\",\"tipo\":\"cadena\",\"obligatorio\":falso,\"carácterValidado\":{\"habilitado\":verdadero,\"valor\":30},\"valorPredeterminado\":{\"habilitado\":falso},\"índice\":6}},\"obtenerClientes Potenciales\":{\"tipo\":\"booleano\",\"extra\":{\"nombre\":\"Obtener "Clientes potenciales\",\"tipo\":\"booleano\",\"obligatorio\":falso,\"valor_predeterminado\":{\"habilitado\":falso},\"índice\":7}},\"comentario\":{\"tipo\":\"cadena\",\"extra\":{\"nombre\":\"Comentario\",\"tipo\":\"cadena\",\"obligatorio\":falso,\"caracter_validado\":{\"habilitado\":verdadero,\"valor\":200},\"multilínea\":{\"habilitado\":verdadero,\"valor\":3},\"valor_predeterminado\":{\"habilitado\":falso},\"índice\":8}}}"


- __Paso 2: Construir el JSON de parámetros__
Construir el objeto JSON según los requisitos de los parámetros:
json
{
"__Extra__": {
"videoDownloadUrl": {
"name": "video_name.mp4",
"size": 204800000
}

},
"videoDownloadUrl": "morelogin://cloudfile?ids=1,2"
}
 - __Paso 3: Escapar la cadena JSON__
Convierte el objeto JSON a un formato de cadena escapada:
``json
"{\"__Extra__\": {\"videoDownloadUrl\": {\"name\": \"video_name.mp4\",\"size\": 204800000}},\"videoDownloadUrl\": "morelogin://cloudfile?ids=1,2"
Paso 4: Llamada a la API
Pase la cadena escapada como valor del parámetro templateParameter` a la API de destino.

### Cancelar horario

 - [POST /api/cloudphone/rpa/task/cancel](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/schedules/paths/~1api~1cloudphone~1rpa~1task~1cancel/post.md)

### Registro de ejecuciones de tareas de consulta de página

 - [POST /api/cloudphone/rpa/subTask/page](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/schedules/paths/~1api~1cloudphone~1rpa~1subtask~1page/post.md): Plantilla de mercado de horarios de consulta, el nombre de la plantilla admite consultas difusas

### Obtener una ejecución de tarea

 - [POST /api/cloudphone/rpa/subTask/detail/{id}](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/schedules/paths/~1api~1cloudphone~1rpa~1subtask~1detail~1%7Bid%7D/post.md): Plantilla de mercado de horarios de consulta, el nombre de la plantilla admite consultas difusas

### Cancelar ejecución

 - [POST /api/cloudphone/rpa/subTask/cancel/{id}](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/schedules/paths/~1api~1cloudphone~1rpa~1subtask~1cancel~1%7Bid%7D/post.md)

## Touch

### Toque - Clic

 - [POST /api/cloudphone/touch/click](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/touch/touchclick.md): Simula un toque único en la pantalla del teléfono en la nube en las coordenadas especificadas.
El sistema de coordenadas utiliza la esquina superior izquierda de la pantalla como origen (0, 0), con el eje X extendiéndose hacia la derecha y el eje Y extendiéndose hacia abajo.

### Toque - Doble clic

 - [POST /api/cloudphone/touch/doubleClick](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/touch/touchdoubleclick.md): Simula un doble toque en la pantalla del teléfono en la nube en las coordenadas especificadas.
El sistema de coordenadas utiliza la esquina superior izquierda de la pantalla como origen (0, 0), con el eje X extendiéndose hacia la derecha y el eje Y extendiéndose hacia abajo.

### Toque - Pulsación larga

 - [POST /api/cloudphone/touch/longClick](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/touch/touchlongclick.md): Simula una pulsación larga en la pantalla del teléfono en la nube en las coordenadas especificadas.
Use el parámetro duration para personalizar la duración de la pulsación (en milisegundos). Si se omite, se usa la duración predeterminada.
El sistema de coordenadas utiliza la esquina superior izquierda de la pantalla como origen (0, 0), con el eje X extendiéndose hacia la derecha y el eje Y extendiéndose hacia abajo.

### Toque - Deslizar

 - [POST /api/cloudphone/touch/swipe](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/touch/touchswipe.md): Simula un deslizamiento del dedo desde las coordenadas de inicio hasta las coordenadas de fin.
Use el parámetro duration para controlar la velocidad del deslizamiento (en milisegundos). Un valor mayor resulta en un deslizamiento más lento.
El sistema de coordenadas utiliza la esquina superior izquierda de la pantalla como origen (0, 0), con el eje X extendiéndose hacia la derecha y el eje Y extendiéndose hacia abajo.

### Toque - Arrastrar

 - [POST /api/cloudphone/touch/drag](https://guide.morelogin.com/es/api-reference/cloud-phone/local-api/touch/touchdrag.md): Simula un arrastre del dedo desde las coordenadas de inicio hasta las coordenadas de fin. Similar a deslizar, pero arrastrar se usa típicamente para mover íconos, elementos de UI, etc.
Use el parámetro duration para controlar la velocidad del arrastre (en milisegundos). Un valor mayor resulta en un arrastre más lento.
El sistema de coordenadas utiliza la esquina superior izquierda de la pantalla como origen (0, 0), con el eje X extendiéndose hacia la derecha y el eje Y extendiéndose hacia abajo.

