# airbrowser-client
Undetectable Chrome-in-Docker for developers and agents (REST + MCP)

This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:

- API version: 1.0
- Package version: 1.13.0
- Generator version: 7.19.0-SNAPSHOT
- Build package: org.openapitools.codegen.languages.PythonClientCodegen

## Requirements.

Python 3.9+

## Installation & Usage
### pip install

If the python package is hosted on a repository, you can install directly using:

```sh
pip install git+https://github.com/ifokeev/airbrowser-mcp.git
```
(you may need to run `pip` with root permission: `sudo pip install git+https://github.com/ifokeev/airbrowser-mcp.git`)

Then import the package:
```python
import airbrowser_client
```

### Setuptools

Install via [Setuptools](http://pypi.python.org/pypi/setuptools).

```sh
python setup.py install --user
```
(or `sudo python setup.py install` to install the package for all users)

Then import the package:
```python
import airbrowser_client
```

### Tests

Execute `pytest` to run the tests.

## Getting Started

Please follow the [installation procedure](#installation--usage) and then run the following:

```python

import airbrowser_client
from airbrowser_client.rest import ApiException
from pprint import pprint

# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = airbrowser_client.Configuration(
    host = "/api/v1"
)



# Enter a context with an instance of the API client
with airbrowser_client.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = airbrowser_client.BrowserApi(api_client)
    payload = airbrowser_client.BrowsersRequest() # BrowsersRequest | 

    try:
        # Admin: list all, get info, or close all browsers
        api_response = api_instance.browsers(payload)
        print("The response of BrowserApi->browsers:\n")
        pprint(api_response)
    except ApiException as e:
        print("Exception when calling BrowserApi->browsers: %s\n" % e)

```

## Documentation for API Endpoints

All URIs are relative to */api/v1*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*BrowserApi* | [**browsers**](docs/BrowserApi.md#browsers) | **POST** /browser/browsers | Admin: list all, get info, or close all browsers
*BrowserApi* | [**check_element**](docs/BrowserApi.md#check_element) | **GET** /browser/{browser_id}/check_element | Check if element exists or is visible
*BrowserApi* | [**click**](docs/BrowserApi.md#click) | **POST** /browser/{browser_id}/click | Click element
*BrowserApi* | [**close_browser**](docs/BrowserApi.md#close_browser) | **DELETE** /browser/{browser_id}/close_browser | Close browser instance
*BrowserApi* | [**console_logs**](docs/BrowserApi.md#console_logs) | **POST** /browser/{browser_id}/console_logs | Console logs: get or clear
*BrowserApi* | [**cookies**](docs/BrowserApi.md#cookies) | **POST** /browser/{browser_id}/cookies | Manage browser cookies
*BrowserApi* | [**create_browser**](docs/BrowserApi.md#create_browser) | **POST** /browser/create_browser | Create browser instance with optional persistent profile
*BrowserApi* | [**detect_coordinates**](docs/BrowserApi.md#detect_coordinates) | **POST** /browser/{browser_id}/detect_coordinates | Detect element coordinates using vision
*BrowserApi* | [**dialog**](docs/BrowserApi.md#dialog) | **POST** /browser/{browser_id}/dialog | Dialogs: get, accept, dismiss
*BrowserApi* | [**emulate**](docs/BrowserApi.md#emulate) | **POST** /browser/{browser_id}/emulate | Emulation: set, clear, list_devices
*BrowserApi* | [**execute_cdp**](docs/BrowserApi.md#execute_cdp) | **POST** /browser/{browser_id}/execute_cdp | Execute a Chrome DevTools Protocol command
*BrowserApi* | [**execute_script**](docs/BrowserApi.md#execute_script) | **POST** /browser/{browser_id}/execute_script | Execute JavaScript
*BrowserApi* | [**fill_form**](docs/BrowserApi.md#fill_form) | **POST** /browser/{browser_id}/fill_form | Fill multiple form fields
*BrowserApi* | [**get_cdp_endpoint**](docs/BrowserApi.md#get_cdp_endpoint) | **GET** /browser/{browser_id}/get_cdp_endpoint | Get Chrome DevTools Protocol WebSocket URL for direct CDP access
*BrowserApi* | [**get_content**](docs/BrowserApi.md#get_content) | **GET** /browser/{browser_id}/get_content | Get page HTML
*BrowserApi* | [**get_element_data**](docs/BrowserApi.md#get_element_data) | **GET** /browser/{browser_id}/get_element_data | Get element text, attribute, or property
*BrowserApi* | [**get_url**](docs/BrowserApi.md#get_url) | **GET** /browser/{browser_id}/get_url | Get current URL
*BrowserApi* | [**gui_click**](docs/BrowserApi.md#gui_click) | **POST** /browser/{browser_id}/gui_click | GUI click by selector or coordinates
*BrowserApi* | [**gui_hover_xy**](docs/BrowserApi.md#gui_hover_xy) | **POST** /browser/{browser_id}/gui_hover_xy | GUI hover at coordinates
*BrowserApi* | [**gui_press_keys_xy**](docs/BrowserApi.md#gui_press_keys_xy) | **POST** /browser/{browser_id}/gui_press_keys_xy | Press keys at coordinates (click to focus, then send keys)
*BrowserApi* | [**gui_type_xy**](docs/BrowserApi.md#gui_type_xy) | **POST** /browser/{browser_id}/gui_type_xy | GUI type at coordinates - clicks then types text
*BrowserApi* | [**history**](docs/BrowserApi.md#history) | **POST** /browser/{browser_id}/history | History: back, forward, or refresh
*BrowserApi* | [**mouse**](docs/BrowserApi.md#mouse) | **POST** /browser/{browser_id}/mouse | Mouse: hover or drag
*BrowserApi* | [**navigate_browser**](docs/BrowserApi.md#navigate_browser) | **POST** /browser/{browser_id}/navigate | Navigate to URL
*BrowserApi* | [**network_logs**](docs/BrowserApi.md#network_logs) | **POST** /browser/{browser_id}/network_logs | Network logs: get or clear
*BrowserApi* | [**performance**](docs/BrowserApi.md#performance) | **POST** /browser/{browser_id}/performance | Performance: start_trace, stop_trace, metrics, analyze
*BrowserApi* | [**press_keys**](docs/BrowserApi.md#press_keys) | **POST** /browser/{browser_id}/press_keys | Press keyboard keys
*BrowserApi* | [**resize**](docs/BrowserApi.md#resize) | **POST** /browser/{browser_id}/resize | Resize viewport
*BrowserApi* | [**scroll**](docs/BrowserApi.md#scroll) | **POST** /browser/{browser_id}/scroll | Scroll to element/coords or by delta
*BrowserApi* | [**select**](docs/BrowserApi.md#select) | **POST** /browser/{browser_id}/select | Select dropdown: select option or get options
*BrowserApi* | [**snapshot**](docs/BrowserApi.md#snapshot) | **POST** /browser/{browser_id}/snapshot | DOM or accessibility snapshot
*BrowserApi* | [**tabs**](docs/BrowserApi.md#tabs) | **POST** /browser/{browser_id}/tabs | Tabs: list, new, switch, close, current
*BrowserApi* | [**take_screenshot**](docs/BrowserApi.md#take_screenshot) | **POST** /browser/{browser_id}/screenshot | Take screenshot
*BrowserApi* | [**type_text**](docs/BrowserApi.md#type_text) | **POST** /browser/{browser_id}/type | Type text into element
*BrowserApi* | [**upload_file**](docs/BrowserApi.md#upload_file) | **POST** /browser/{browser_id}/upload_file | Upload file to input
*BrowserApi* | [**wait_element**](docs/BrowserApi.md#wait_element) | **POST** /browser/{browser_id}/wait_element | Wait for element to be visible or hidden
*BrowserApi* | [**what_is_visible**](docs/BrowserApi.md#what_is_visible) | **POST** /browser/{browser_id}/what_is_visible | AI page analysis - what&#39;s visible
*HealthApi* | [**health_check**](docs/HealthApi.md#health_check) | **GET** /health/ | Check the health status of the browser pool
*HealthApi* | [**prometheus_metrics**](docs/HealthApi.md#prometheus_metrics) | **GET** /health/metrics | Get Prometheus-style metrics for monitoring
*PoolApi* | [**scale_pool**](docs/PoolApi.md#scale_pool) | **POST** /pool/scale | Scale the browser pool to a new maximum size
*PoolApi* | [**shutdown_server**](docs/PoolApi.md#shutdown_server) | **POST** /pool/shutdown | Gracefully shutdown the browser pool server
*ProfilesApi* | [**create_profile**](docs/ProfilesApi.md#create_profile) | **POST** /profiles/ | Create a new browser profile
*ProfilesApi* | [**delete_profile**](docs/ProfilesApi.md#delete_profile) | **DELETE** /profiles/{profile_name} | Delete a browser profile
*ProfilesApi* | [**get_profile**](docs/ProfilesApi.md#get_profile) | **GET** /profiles/{profile_name} | Get profile information
*ProfilesApi* | [**list_profiles**](docs/ProfilesApi.md#list_profiles) | **GET** /profiles/ | List all browser profiles


## Documentation For Models

 - [BaseResponse](docs/BaseResponse.md)
 - [BrowsersRequest](docs/BrowsersRequest.md)
 - [ClickRequest](docs/ClickRequest.md)
 - [ConsoleLogsRequest](docs/ConsoleLogsRequest.md)
 - [CookiesRequest](docs/CookiesRequest.md)
 - [CreateBrowserRequest](docs/CreateBrowserRequest.md)
 - [CreateProfileRequest](docs/CreateProfileRequest.md)
 - [DetectCoordinatesRequest](docs/DetectCoordinatesRequest.md)
 - [DialogRequest](docs/DialogRequest.md)
 - [EmulateRequest](docs/EmulateRequest.md)
 - [ErrorResponse](docs/ErrorResponse.md)
 - [ExecuteCdpRequest](docs/ExecuteCdpRequest.md)
 - [ExecuteScriptRequest](docs/ExecuteScriptRequest.md)
 - [FillFormRequest](docs/FillFormRequest.md)
 - [GenericResponse](docs/GenericResponse.md)
 - [GuiClickRequest](docs/GuiClickRequest.md)
 - [GuiHoverXyRequest](docs/GuiHoverXyRequest.md)
 - [GuiPressKeysXyRequest](docs/GuiPressKeysXyRequest.md)
 - [GuiTypeXyRequest](docs/GuiTypeXyRequest.md)
 - [HealthStatus](docs/HealthStatus.md)
 - [HistoryRequest](docs/HistoryRequest.md)
 - [MouseRequest](docs/MouseRequest.md)
 - [NavigateBrowserRequest](docs/NavigateBrowserRequest.md)
 - [NetworkLogsRequest](docs/NetworkLogsRequest.md)
 - [PerformanceRequest](docs/PerformanceRequest.md)
 - [PoolScaled](docs/PoolScaled.md)
 - [PressKeysRequest](docs/PressKeysRequest.md)
 - [ProfileInfo](docs/ProfileInfo.md)
 - [ProfileListData](docs/ProfileListData.md)
 - [ProfileListResponse](docs/ProfileListResponse.md)
 - [ProfileResponse](docs/ProfileResponse.md)
 - [ResizeRequest](docs/ResizeRequest.md)
 - [ScaleData](docs/ScaleData.md)
 - [ScalePool](docs/ScalePool.md)
 - [ScrollRequest](docs/ScrollRequest.md)
 - [SelectRequest](docs/SelectRequest.md)
 - [SnapshotRequest](docs/SnapshotRequest.md)
 - [TabsRequest](docs/TabsRequest.md)
 - [TakeScreenshotRequest](docs/TakeScreenshotRequest.md)
 - [TypeTextRequest](docs/TypeTextRequest.md)
 - [UploadFileRequest](docs/UploadFileRequest.md)
 - [WaitElementRequest](docs/WaitElementRequest.md)


<a id="documentation-for-authorization"></a>
## Documentation For Authorization

Endpoints do not require authorization.


## Author




