# Waits

Engine-side waits and one-off checks.

Engine-side waits and one-off checks.

## waitFor

`POST /v1/devices/{deviceId}/waits`

Wait inside the engine until a condition holds on this device

| Parameter | In | Required | Type | What it is |
|---|---|---|---|---|
| `deviceId` | path | yes | string | Stable device id such as `ios:00008120-001A2B3C4D5E6F70` or `android:R58M123ABC`. |
| `Silan-Lease` | header | no | string | Lease token when the device is claimed. |

Request body: `application/json` (`WaitRequest`).

| Field | Type | What it is |
|---|---|---|
| `condition` | object | Single-device condition. Cross-device conditions live in scenarios. |
| `timeoutMs` | integer |  |
| `returning` | object |  |

| Response | Means |
|---|---|
| 200 | Finished; `matched` says whether the condition held before the timeout. `WaitResult` |
| 4XX | Error (RFC 9457). |
| 5XX | Error (RFC 9457). |

MCP tools on this operation: [`wait_for`](/reference/mcp/wait-for/).

## check

`POST /v1/devices/{deviceId}/checks`

Evaluate a condition once and report pass or fail with evidence

| Parameter | In | Required | Type | What it is |
|---|---|---|---|---|
| `deviceId` | path | yes | string | Stable device id such as `ios:00008120-001A2B3C4D5E6F70` or `android:R58M123ABC`. |
| `Silan-Lease` | header | no | string | Lease token when the device is claimed. |

Request body: `application/json`.

| Field | Type | What it is |
|---|---|---|
| `condition` | object | Single-device condition. Cross-device conditions live in scenarios. |

| Response | Means |
|---|---|
| 200 | Result. `CheckResult` |
| 4XX | Error (RFC 9457). |
| 5XX | Error (RFC 9457). |

MCP tools on this operation: [`check`](/reference/mcp/check/).