HTTP API Reference

Full programmatic control over a real browser

Default port 8765, configurable in Tandem Settings. Accessible locally and remotely over Tailscale/private overlay networks. Authenticate with Authorization: Bearer <token>.

280+Endpoints
19Domains
257MCP tools

Browser 16 Tabs 10 Snapshots 8 Content 17 DevTools 16 Network 11 Agents 16 Sessions 13 Workspaces 8 Pinboards 11 Sidebar 6 Data 36 Extensions 18 Clipboard 4 Awareness 2 Media 24 Previews 7 Sync 4 Misc 60+

Browserbrowser.ts
Core browsing actions — navigate, click, type, scroll, screenshot, execute JavaScript.
POST/navigate Navigate to URL
GET/page-content Get page content as markdown
GET/page-html Get raw page HTML
POST/click Click element
POST/type Type text into element
POST/execute-js Execute JavaScript in page
GET/screenshot Take screenshot
GET/cookies Get cookies for current page
POST/cookies/clear Clear cookies
POST/scroll Scroll page
POST/press-key Press keyboard key
POST/press-key-combo Press key combination
POST/wingman-alert Show alert dialog
POST/wait Wait for element or page load
GET/links Get all links on page
GET/forms Get all forms on page

Tabstabs.ts
Tab lifecycle — open, close, focus, group, and manage tabs.
POST/tabs/open Open new tab
POST/tabs/close Close tab
GET/tabs/list List all open tabs
POST/tabs/focus Focus/switch to tab
POST/tabs/group Group tabs together
POST/tabs/source Set tab source (agent owner)
POST/tabs/reconcile Reconcile tabs with renderer
POST/tabs/cleanup Cleanup zombie tabs
POST/tabs/:id/emoji Set or flash emoji badge on tab
DELETE/tabs/:id/emoji Remove emoji badge from tab

Snapshotssnapshots.ts
Accessibility tree snapshots — the universal API for AI to read and interact with any website.
GET/snapshot Get accessibility tree with @ref IDs
POST/snapshot/click Click element by @ref
POST/snapshot/fill Fill input by @ref
GET/snapshot/text Get text content by @ref
POST/find Find element by label/text/role
POST/find/click Find and click element
POST/find/fill Find and fill element
POST/find/all Find all matching elements

Contentcontent.ts
Page content extraction, context search, user scripts and styles.
POST/content/extract Extract page as markdown
POST/content/extract/url Extract content from URL
GET/context/recent Get recently visited pages
GET/context/search Search browsing context
GET/context/page Get page details
GET/context/summary Get context summary
POST/context/note Add note to page
GET/scripts List user scripts
POST/scripts/add Add user script
DELETE/scripts/remove Remove script
POST/scripts/enable Enable script
POST/scripts/disable Disable script
GET/styles List user styles
POST/styles/add Add CSS style
DELETE/styles/remove Remove style
POST/styles/enable Enable style
POST/styles/disable Disable style

DevToolsdevtools.ts
Chrome DevTools Protocol bridge — console, network, DOM, storage, performance.
GET/devtools/status Get DevTools status
GET/devtools/console Get console entries
GET/devtools/console/errors Get console errors only
POST/devtools/console/clear Clear console
GET/devtools/network Get network entries
GET/devtools/network/:requestId/body Get response body
POST/devtools/network/clear Clear network log
POST/devtools/dom/query Query DOM with CSS selector
POST/devtools/dom/xpath Query DOM with XPath
GET/devtools/storage Get storage data
GET/devtools/performance Get performance metrics
POST/devtools/evaluate Evaluate JavaScript via CDP
POST/devtools/cdp Send raw CDP command
POST/devtools/screenshot/element Screenshot specific element
POST/devtools/shell Toggle shell DevTools
POST/devtools/toggle Toggle page DevTools

Networknetwork.ts
Network inspection, HAR export, request mocking.
GET/network/log Get network log
GET/network/apis List detected API endpoints
GET/network/domains List contacted domains
GET/network/har Export as HAR file
DELETE/network/clear Clear network log
POST/network/mock Add mock rule
POST/network/route Add route (alias for mock)
GET/network/mocks List active mocks
POST/network/unmock Remove mock rule
POST/network/unroute Remove route (alias)
POST/network/mock-clear Clear all mocks

Agentsagents.ts
Multi-agent coordination — tasks, tab locks, autonomy, emergency stop.
GET/tasks List all tasks
GET/tasks/:id Get task by ID
POST/tasks Create new task
POST/tasks/:id/approve Approve task step
POST/tasks/:id/reject Reject task step
POST/tasks/:id/status Update task status
POST/emergency-stop Stop all agent tasks
POST/execute-js/confirm Execute JS with approval
GET/tasks/check-approval Check if approval needed
GET/autonomy Get autonomy settings
PATCH/autonomy Update autonomy level
GET/activity-log/agent Get agent activity log
GET/tab-locks List all tab locks
POST/tab-locks/acquire Acquire tab lock
POST/tab-locks/release Release tab lock
GET/tab-locks/:tabId Get lock status for tab

Sessionssessions.ts
Isolated browser sessions, device emulation, session state persistence.
GET/sessions/list List all sessions
POST/sessions/create Create new session
POST/sessions/switch Switch active session
POST/sessions/destroy Destroy session
POST/sessions/state/save Save session state
POST/sessions/state/load Load session state
GET/sessions/state/list List saved states
POST/sessions/fetch Fetch URL in session context
GET/sessions/auth-headers Get auth headers
GET/device/profiles List device profiles
GET/device/status Get emulation status
POST/device/emulate Start device emulation
POST/device/reset Reset to desktop

Workspacesworkspaces.ts
Named tab groups with icons and persistence — one workspace per agent.
GET/workspaces List all workspaces
POST/workspaces Create workspace
DELETE/workspaces/:id Delete workspace
POST/workspaces/:id/activate Activate workspace
PUT/workspaces/:id Update workspace
POST/workspaces/:id/tabs Move tab to workspace

Pinboardspinboards.ts
Visual boards for saving and organizing content — links, notes, images.
GET/pinboards List all pinboards
POST/pinboards Create pinboard
GET/pinboards/:id Get pinboard with items
PUT/pinboards/:id Update pinboard
PUT/pinboards/:id/settings Update board appearance
DELETE/pinboards/:id Delete pinboard
GET/pinboards/:id/items Get board items
POST/pinboards/:id/items Add item to board
PUT/pinboards/:id/items/:itemId Update item
DELETE/pinboards/:id/items/:itemId Delete item
POST/pinboards/:id/items/reorder Reorder items


Datadata.ts
Bookmarks, history, downloads, configuration, Chrome import, data export.
GET/bookmarks List all bookmarks
POST/bookmarks/add Create bookmark
DELETE/bookmarks/remove Remove bookmark
PUT/bookmarks/update Update bookmark
POST/bookmarks/add-folder Create folder
POST/bookmarks/move Move bookmark
GET/bookmarks/search Search bookmarks
GET/bookmarks/check Check if URL bookmarked
GET/history List history entries
GET/history/search Search history
DELETE/history/clear Clear all history
GET/downloads List downloads
GET/downloads/active List active downloads
GET/config Get app configuration
PATCH/config Update configuration
GET/data/export Export all user data
POST/data/import Import user data
GET/import/chrome/status Chrome import status
POST/import/chrome/bookmarks Import Chrome bookmarks
POST/import/chrome/history Import Chrome history
POST/import/chrome/cookies Import Chrome cookies
GET/import/chrome/profiles List Chrome profiles
POST/import/chrome/sync/start Start Chrome sync
POST/import/chrome/sync/stop Stop Chrome sync
GET/import/chrome/sync/status Chrome sync status

Extensionsextensions.ts
Chrome extension management — install, load, import from Chrome, update.
GET/extensions/list List installed extensions
POST/extensions/load Load from path
POST/extensions/install Install from Chrome Web Store
DELETE/extensions/uninstall/:id Uninstall extension
GET/extensions/chrome/list List Chrome extensions
POST/extensions/chrome/import Import from Chrome
GET/extensions/gallery Get extension gallery
GET/extensions/native-messaging/status Native messaging status
GET/extensions/updates/check Check for updates
GET/extensions/updates/status Get update status
POST/extensions/updates/apply Apply updates
GET/extensions/disk-usage Get disk usage
GET/extensions/conflicts Get conflicts

Clipboardclipboard.ts
Read and write the system clipboard.
GET/clipboard Read clipboard contents
POST/clipboard/text Write text to clipboard
POST/clipboard/image Write image to clipboard
POST/clipboard/save Save clipboard as file

Awarenessawareness.ts
AI awareness of human browsing activity.
GET/awareness/digest Get activity digest
GET/awareness/focus Get current focus activity

Mediamedia.ts
Voice, audio, video, screenshots, annotations, Wingman panel, chat.
POST/panel/toggle Toggle Wingman panel
GET/chat Get chat messages
POST/chat Send chat message
POST/voice/start Start voice recognition
POST/voice/stop Stop voice recognition
GET/voice/status Get voice status
POST/audio/start Start audio recording
POST/audio/stop Stop audio recording
GET/audio/status Recording status
GET/audio/recordings List recordings
GET/screenshot/annotated Get annotated screenshot
POST/screenshot/annotated Capture annotated screenshot
POST/draw/toggle Toggle draw mode
GET/screenshots List all screenshots
POST/wingman-stream/toggle Toggle activity stream
GET/wingman-stream/status Stream status

Previewspreviews.ts
Live HTML previews created by agents — auto-refreshing in browser tabs.
GET/previews List all previews
POST/preview Create preview
PUT/preview/:id Update preview
GET/preview/:id/meta Get preview metadata
GET/preview/:id Serve preview HTML
DELETE/preview/:id Delete preview
GET/previews/index Preview index page

Syncsync.ts
Local sync and data export across devices.
GET/sync/status Get sync status
GET/sync/devices List remote devices
POST/sync/config Configure sync
POST/sync/trigger Trigger sync

Miscmisc.ts
Status, events, passwords, memory, watches, headless, workflows, auth, forms, and more.
GET/status Get browser status
GET/active-tab/context Get active tab context for agents
GET/events/stream SSE event stream
GET/events/recent Get recent events
GET/activity-log Get activity log
GET/live/status Live mode status
POST/live/toggle Toggle live mode
POST/security/injection-override Override injection scanner
GET/passwords/status Password vault status
POST/passwords/unlock Unlock vault
POST/passwords/lock Lock vault
GET/passwords/suggest Get saved passwords
POST/passwords/save Save password
GET/passwords/generate Generate password
GET/memory/sites List sites with memory
GET/memory/site/:domain Get site memory
GET/memory/site/:domain/diff Get memory diffs
GET/memory/search Search memory
POST/watch/add Add page watch
GET/watch/list List watches
DELETE/watch/remove Remove watch
POST/watch/check Trigger watch check
POST/headless/open Open headless browser
GET/headless/content Get headless page content
GET/headless/status Headless browser status
POST/headless/show Show headless window
POST/headless/hide Hide headless window
POST/headless/close Close headless browser
GET/forms/memory List form memory
GET/forms/memory/:domain Get form data for domain
POST/forms/fill Get auto-fill data
DELETE/forms/memory/:domain Delete form memory
GET/behavior/stats Get behavior stats
POST/behavior/clear Clear behavior data
GET/workflows List workflows
POST/workflows Create workflow
DELETE/workflows/:id Delete workflow
POST/workflow/run Run workflow
GET/workflow/status/:executionId Get execution status
POST/workflow/stop Stop workflow
GET/workflow/running Get running workflows
GET/auth/states Get all auth states
GET/auth/state/:domain Get auth state for domain
POST/auth/check Check current page auth
GET/auth/is-login-page Check if login page
POST/auth/update Update auth state
DELETE/auth/state/:domain Delete auth state

Base URL: http://127.0.0.1:<configured-port> (local) or http://<tailscale-ip>:<configured-port> (remote over Tailscale/private networks)

Auth: Authorization: Bearer <token> — local token from ~/.tandem/api-token or binding token from pairing.

Discovery: GET /agent/manifest returns the full endpoint list as structured JSON. GET /agent returns a human-readable bootstrap page.

Tab targeting: Use the X-Tab-Id header to target a specific background tab without focusing it.

MCP alternative: Every HTTP endpoint has a corresponding MCP tool (same-machine agents only). See skill/SKILL.md for the MCP tool reference.