## Key Down `computers.key_down(strid, ComputerKeyDownParams**kwargs) -> ActionResult` **post** `/computers/{id}/key-down` Press and hold a keyboard key. Use with key_up to release. Supports modifier keys (shift, ctrl, alt, meta) for complex interactions like Shift+Click. **Supported keys:** Modifier keys (shift, ctrl, alt, meta), special keys (enter, escape, tab, backspace, delete, space), arrow keys (arrowup, arrowdown, arrowleft, arrowright), navigation (home, end, pageup, pagedown), function keys (f1-f24), and any single character (a-z, 0-9). **Key names are case-insensitive:** "shift", "Shift", and "SHIFT" all work. **Example Shift+Click:** 1) key_down "shift", 2) click at coordinates, 3) key_up "shift" ### Parameters - `id: str` - `key: Optional[str]` Key name to press. Case-insensitive. Examples: "shift", "ctrl", "a", "Enter" - `tab_id: Optional[str]` Optional tab ID for browser sessions (ignored for desktop sessions) ### Returns - `class ActionResult: …` - `error_message: Optional[str]` - `executed_tab_id: Optional[str]` - `page_context: Optional[V2GoBackendInternalTypesPageContext]` - `device_scale_factor: Optional[float]` - `is_main_tab: Optional[bool]` - `page_height: Optional[int]` - `page_width: Optional[int]` - `scroll_x: Optional[float]` - `scroll_y: Optional[float]` - `tab_id: Optional[str]` - `title: Optional[str]` - `url: Optional[str]` - `viewport_height: Optional[int]` - `viewport_width: Optional[int]` - `request_id: Optional[str]` - `result: Optional[Dict[str, object]]` - `status: Optional[str]` - `timestamp: Optional[str]` ### Example ```python import os from tzafon import Lightcone client = Lightcone( api_key=os.environ.get("TZAFON_API_KEY"), # This is the default and can be omitted ) action_result = client.computers.key_down( id="id", ) print(action_result.executed_tab_id) ```