# Tabs ## List **get** `/computers/{id}/tabs` Get a list of open tabs with IDs, URLs, titles, and main tab status (browser sessions only). Includes external CDP pages (e.g., Playwright). Excludes devtools:// and chrome:// tabs. Results may be eventually consistent for newly created tabs. ### Path Parameters - `id: string` ### Returns - `ActionResult = object { error_message, executed_tab_id, page_context, 4 more }` - `error_message: optional string` - `executed_tab_id: optional string` - `page_context: optional V2GoBackendInternalTypesPageContext` - `device_scale_factor: optional number` - `is_main_tab: optional boolean` - `page_height: optional number` - `page_width: optional number` - `scroll_x: optional number` - `scroll_y: optional number` - `tab_id: optional string` - `title: optional string` - `url: optional string` - `viewport_height: optional number` - `viewport_width: optional number` - `request_id: optional string` - `result: optional map[unknown]` - `status: optional string` - `timestamp: optional string` ### Example ```http curl https://api.tzafon.ai/computers/$ID/tabs \ -H "Authorization: Bearer $TZAFON_API_KEY" ``` ## Create **post** `/computers/{id}/tabs` Create a new tab, optionally navigating to a URL. The new tab becomes the main tab (browser sessions only). ### Path Parameters - `id: string` ### Body Parameters - `url: optional string` ### Returns - `ActionResult = object { error_message, executed_tab_id, page_context, 4 more }` - `error_message: optional string` - `executed_tab_id: optional string` - `page_context: optional V2GoBackendInternalTypesPageContext` - `device_scale_factor: optional number` - `is_main_tab: optional boolean` - `page_height: optional number` - `page_width: optional number` - `scroll_x: optional number` - `scroll_y: optional number` - `tab_id: optional string` - `title: optional string` - `url: optional string` - `viewport_height: optional number` - `viewport_width: optional number` - `request_id: optional string` - `result: optional map[unknown]` - `status: optional string` - `timestamp: optional string` ### Example ```http curl https://api.tzafon.ai/computers/$ID/tabs \ -X POST \ -H "Authorization: Bearer $TZAFON_API_KEY" ``` ## Delete **delete** `/computers/{id}/tabs/{tab_id}` Close a specific tab by ID. Cannot close the last remaining tab (browser sessions only). Tab IDs come from ListTabs. ### Path Parameters - `id: string` - `tab_id: string` ### Returns - `ActionResult = object { error_message, executed_tab_id, page_context, 4 more }` - `error_message: optional string` - `executed_tab_id: optional string` - `page_context: optional V2GoBackendInternalTypesPageContext` - `device_scale_factor: optional number` - `is_main_tab: optional boolean` - `page_height: optional number` - `page_width: optional number` - `scroll_x: optional number` - `scroll_y: optional number` - `tab_id: optional string` - `title: optional string` - `url: optional string` - `viewport_height: optional number` - `viewport_width: optional number` - `request_id: optional string` - `result: optional map[unknown]` - `status: optional string` - `timestamp: optional string` ### Example ```http curl https://api.tzafon.ai/computers/$ID/tabs/$TAB_ID \ -X DELETE \ -H "Authorization: Bearer $TZAFON_API_KEY" ``` ## Switch **post** `/computers/{id}/tabs/{tab_id}/switch` Switch the main/active tab to a different tab by ID (browser sessions only). Tab IDs come from ListTabs. ### Path Parameters - `id: string` - `tab_id: string` ### Returns - `ActionResult = object { error_message, executed_tab_id, page_context, 4 more }` - `error_message: optional string` - `executed_tab_id: optional string` - `page_context: optional V2GoBackendInternalTypesPageContext` - `device_scale_factor: optional number` - `is_main_tab: optional boolean` - `page_height: optional number` - `page_width: optional number` - `scroll_x: optional number` - `scroll_y: optional number` - `tab_id: optional string` - `title: optional string` - `url: optional string` - `viewport_height: optional number` - `viewport_width: optional number` - `request_id: optional string` - `result: optional map[unknown]` - `status: optional string` - `timestamp: optional string` ### Example ```http curl https://api.tzafon.ai/computers/$ID/tabs/$TAB_ID/switch \ -X POST \ -H "Authorization: Bearer $TZAFON_API_KEY" ```