> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.doc-detective.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.doc-detective.com/_mcp/server.

# Type keys (detailed)

> Reference for the `Type keys (detailed)` schema.

## Referenced In

* [Find element (detailed)](/reference/schemas/find-element-detailed)
* [type](/reference/schemas/type)

## Fields

| Field            | Type                                                                                                                                                                                                        | Description                                                                                                                                                                                                                                                                                                                          | Default |
| :--------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ |
| keys             | one of: - string - array of string                                                                                                                                                                          | Required. Sequence of keys to enter.                                                                                                                                                                                                                                                                                                 | —       |
| inputDelay       | number                                                                                                                                                                                                      | Optional. Delay in milliseconds between each key press during a recording, and between each keystroke sent to a process surface. Not applied on app surfaces in this phase — the native driver types the value atomically.                                                                                                           | `100`   |
| surface          | one of: - string - object([Process surface](/reference/schemas/process-surface)) - object([Browser surface](/reference/schemas/browser-surface)) - object([App surface](/reference/schemas/app-surface))    | Optional. The surface a step acts on. Omit to act on the active surface — the most recently opened, focused, or explicitly targeted surface, whatever its kind. Specifying a surface switches the active surface for the steps that follow. Supports background processes, browser windows/tabs, and native app windows.             | —       |
| waitUntil        | one of: - object([Process readiness](/reference/schemas/process-readiness)) - object([Browser readiness](/reference/schemas/browser-readiness)) - object([App readiness](/reference/schemas/app-readiness)) | Optional. After sending the keys, wait until the surface is ready. Requires a `surface`; the allowed conditions depend on the surface kind: a process surface accepts `stdio`/`delayMs`, a browser surface accepts `networkIdleTime`/`domIdleTime`/`find`, an app surface accepts `delayMs`/`find`. No condition applies by default. | —       |
| timeout          | integer                                                                                                                                                                                                     | Optional. Maximum time in milliseconds to wait for `waitUntil` after sending the keys. Minimum: 0                                                                                                                                                                                                                                    | `5000`  |
| selector         | string                                                                                                                                                                                                      | Optional. Selector for the element to type into. If not specified, the typing occurs in the active element.                                                                                                                                                                                                                          | —       |
| elementText      | string                                                                                                                                                                                                      | Optional. Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria.                                                                                                                                                                                    | —       |
| elementId        | string                                                                                                                                                                                                      | Optional. ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax.                                                                                                                                                                                                                         | —       |
| elementTestId    | string                                                                                                                                                                                                      | Optional. data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax.                                                                                                                                                                                                                | —       |
| elementClass     | one of: - string - array of string                                                                                                                                                                          | Optional. Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes.                                                                                                                                                    | —       |
| elementAttribute | object                                                                                                                                                                                                      | Optional. Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.                                                                                                                  | —       |
| elementAria      | string                                                                                                                                                                                                      | Optional. Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax.                                                                                                                                                                                              | —       |

## Examples

```json
{
  "keys": "example",
  "inputDelay": 100,
  "surface": "example",
  "waitUntil": {
    "stdio": "example",
    "delayMs": 42
  },
  "timeout": 5000,
  "selector": "example",
  "elementText": "example",
  "elementId": "example",
  "elementTestId": "example",
  "elementClass": "example",
  "elementAttribute": {},
  "elementAria": "example"
}
```