---
title: "Launch WDA installed on the device"
method: POST
path: "/sessions/{sessionId}/device/launchWebDriverAgent"
tags: ["Device Interactions"]
---

# Launch WDA installed on the device

`POST /sessions/{sessionId}/device/launchWebDriverAgent`

## Request

- Base URL: `https://api.us-west-1.saucelabs.com/rdc/v2`
- URL: `https://api.us-west-1.saucelabs.com/rdc/v2/sessions/{sessionId}/device/launchWebDriverAgent`
- Auth: HTTP basic
- TypeScript: <https://skmtc.dev/saucelabs/apis/real-device-access-api-reference/docs/sessions/:sessionId/device/launchWebDriverAgent/post.ts> (a function with typed inputs; its response is checked against the schema)

Launches WebDriverAgent (WDA) on an iOS device. WDA enables Appium-based automation by providing
a WebDriver-compatible interface to the device. Please use the installApp endpoint to provide your own
WDA binary and use getWebDriverAgentStatus to check if WDA is running. After launching, you can interact with 
the newly installed WDA using the HTTP Proxy endpoints provided by this API.

## Path parameters

- `sessionId` string, required

## Request body

- LaunchWDARequest
  - `bundleId` string: Bundle identifier of the installed WDA

## Response `200`

Command executed successfully

- RunningWDA
  - `bundleId` string: Bundle identifier of the running WDA
  - `devicePort` number: Port of WDA running in the device
  - `hostPort` number: Forwarded WDA for hosted appium use
  - `state` 'PENDING' | 'LAUNCHING' | 'RUNNING' | 'ERROR'
  - `error` string

## Other responses

- `400`: Bad Request
- `403`: Feature not available on public devices
- `404`: Not Found
- `409`: WDA already started

---

[API](https://skmtc.dev/saucelabs/apis/real-device-access-api-reference.md) - [All operations](https://skmtc.dev/saucelabs/apis/real-device-access-api-reference/llms.txt) - [OpenAPI document](https://skmtc.dev/saucelabs/apis/real-device-access-api-reference/revisions/f845a4b66e37?raw)
