Skip to main content
The BrowserWire server exposes a REST API that lets you list discovered sites, read their manifests, and execute actions through the Chrome extension — all over plain HTTP.

Base URL

http://127.0.0.1:8787
The host and port are configurable via the --host and --port CLI flags, or with the BROWSERWIRE_HOST / BROWSERWIRE_PORT environment variables.

Request format

All POST endpoints expect a JSON request body. Set the Content-Type header accordingly:
Content-Type: application/json

Response format

All endpoints return JSON (except /api/docs and /api/sites/:slug/docs, which return HTML). Every JSON response includes an "ok" field indicating success or failure. Success
{ "ok": true, ... }
Error
{ "ok": false, "error": "<human-readable message>" }
HTTP status codes follow standard conventions: 200 for success, 400 for bad request bodies, 404 for unknown slugs or operation names, and 500 for execution errors.

CORS

All endpoints include permissive CORS headers, so you can call the API from any browser origin:
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Headers: Content-Type

Endpoints

MethodEndpointDescription
GET/api/healthHealth check
GET/api/sitesList all discovered sites
GET/api/docsHTML landing page with site index
GET/api/sites/:slug/manifestRaw manifest JSON for a site
GET/api/sites/:slug/openapi.jsonOpenAPI 3.0 spec for a site
GET/api/sites/:slug/docsSwagger UI for a site
GET/api/sites/:slug/views/:nameRead structured view data
POST/api/sites/:slug/actions/:nameExecute a UI action
POST/api/sites/:slug/workflows/:nameExecute a multi-step workflow
The :slug path parameter identifies a discovered site. It is derived from the site’s origin — for example, https://example.com becomes example-com.