Documentation

REST API, MCP tools, and client libraries for Airbrowser

v1.13.0

🔌 REST API

All endpoints are prefixed with /api/v1. Base URL: http://localhost:18080/api/v1

browser

POST /browser/browsers Admin: list all, get info, or close all browsers
POST /browser/create_browser Create browser instance with optional persistent profile
GET /browser/{browser_id}/check_element Check if element exists or is visible
POST /browser/{browser_id}/click Click element
DELETE /browser/{browser_id}/close_browser Close browser instance
POST /browser/{browser_id}/console_logs Console logs: get or clear
POST /browser/{browser_id}/cookies Manage browser cookies
POST /browser/{browser_id}/detect_coordinates Detect element coordinates using vision
POST /browser/{browser_id}/dialog Dialogs: get, accept, dismiss
POST /browser/{browser_id}/emulate Emulation: set, clear, list_devices
POST /browser/{browser_id}/execute_cdp Execute a Chrome DevTools Protocol command
POST /browser/{browser_id}/execute_script Execute JavaScript
POST /browser/{browser_id}/fill_form Fill multiple form fields
GET /browser/{browser_id}/get_cdp_endpoint Get Chrome DevTools Protocol WebSocket URL for direct CDP access
GET /browser/{browser_id}/get_content Get page HTML
GET /browser/{browser_id}/get_element_data Get element text, attribute, or property
GET /browser/{browser_id}/get_url Get current URL
POST /browser/{browser_id}/gui_click GUI click by selector or coordinates
POST /browser/{browser_id}/gui_hover_xy GUI hover at coordinates
POST /browser/{browser_id}/gui_press_keys_xy Press keys at coordinates (click to focus, then send keys)
POST /browser/{browser_id}/gui_type_xy GUI type at coordinates - clicks then types text
POST /browser/{browser_id}/history History: back, forward, or refresh
POST /browser/{browser_id}/mouse Mouse: hover or drag
POST /browser/{browser_id}/navigate Navigate to URL
POST /browser/{browser_id}/network_logs Network logs: get or clear
POST /browser/{browser_id}/performance Performance: start_trace, stop_trace, metrics, analyze
POST /browser/{browser_id}/press_keys Press keyboard keys
POST /browser/{browser_id}/resize Resize viewport
POST /browser/{browser_id}/screenshot Take screenshot
POST /browser/{browser_id}/scroll Scroll to element/coords or by delta
POST /browser/{browser_id}/select Select dropdown: select option or get options
POST /browser/{browser_id}/snapshot DOM or accessibility snapshot
POST /browser/{browser_id}/tabs Tabs: list, new, switch, close, current
POST /browser/{browser_id}/type Type text into element
POST /browser/{browser_id}/upload_file Upload file to input
POST /browser/{browser_id}/wait_element Wait for element to be visible or hidden
POST /browser/{browser_id}/what_is_visible AI page analysis - what's visible

health

GET /health/ Check the health status of the browser pool
GET /health/metrics Get Prometheus-style metrics for monitoring

pool

POST /pool/scale Scale the browser pool to a new maximum size
POST /pool/shutdown Gracefully shutdown the browser pool server

profiles

POST /profiles/ Create a new browser profile
GET /profiles/ List all browser profiles
DELETE /profiles/{profile_name} Delete a browser profile
GET /profiles/{profile_name} Get profile information

🤖 MCP Tools

Model Context Protocol tools for AI agents. Connect via http://localhost:18080/mcp

MCP Tools Reference
39 tools
All Tools 39
Lifecycle 3
Navigation 3
Elements 8
Forms 3
GUI/Vision 3
Page 5
Debug 2
Tabs/Dialogs 2
Emulation 2
Pool 2
No tools match your search
Try a different keyword

📦 Client Libraries

Auto-generated from OpenAPI spec. Install and start automating in minutes.

# Install
pip install airbrowser-client

# Usage
from airbrowser_client import ApiClient, Configuration, BrowserApi

config = Configuration(host="http://localhost:18080/api/v1")
with ApiClient(config) as client:
    api = BrowserApi(client)

    # Create browser
    response = api.create_browser()
    browser_id = response.data.browser_id

    # Navigate
    api.navigate_browser(browser_id, {"url": "https://example.com"})

    # Screenshot
    screenshot = api.take_screenshot(browser_id)

    # Cleanup
    api.close_browser(browser_id)