> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tapkit.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Press key

> Press a keyboard key

Press a keyboard key on the phone, optionally holding modifier keys. Use it to delete text, submit a field, dismiss the keyboard, or move the cursor.

<ParamField path="phone_id" type="string" required>
  The phone's ID, from [List phones](/api-reference/list-phones).
</ParamField>

<ParamField query="async" type="boolean" default="false">
  Return `{"job_id": ...}` immediately instead of waiting for the action. See [Jobs](/api-reference/introduction#jobs).
</ParamField>

## Body

<ParamField body="key" type="string" required>
  `enter`, `escape`, `backspace`, `arrow_up`, `arrow_down`, `arrow_left`, or `arrow_right`.
</ParamField>

<ParamField body="modifiers" type="string[]" default="[]">
  Modifier keys to hold: any of `control`, `shift`, `alternate`, `command`.
</ParamField>

<ParamField body="repeat" type="integer" default="1">
  How many times to press the key. At least 1.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://api.tapkit.ai/v1/phones/$PHONE_ID/keypress \
    -H "X-API-Key: $TAPKIT_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"key": "backspace", "repeat": 5}'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "id": "5d2c9a0e-7f7b-4c1e-9d1a-2f4b8e0c3a61",
    "status": "completed",
    "result": {},
    "created_at": "2026-09-23T18:30:00Z",
    "completed_at": "2026-09-23T18:30:01Z"
  }
  ```
</ResponseExample>
