Base URL
--host and --port CLI flags, or with the BROWSERWIRE_HOST / BROWSERWIRE_PORT environment variables.
Request format
AllPOST endpoints expect a JSON request body. Set the Content-Type header accordingly:
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
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:Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /api/health | Health check |
GET | /api/sites | List all discovered sites |
GET | /api/docs | HTML landing page with site index |
GET | /api/sites/:slug/manifest | Raw manifest JSON for a site |
GET | /api/sites/:slug/openapi.json | OpenAPI 3.0 spec for a site |
GET | /api/sites/:slug/docs | Swagger UI for a site |
GET | /api/sites/:slug/views/:name | Read structured view data |
POST | /api/sites/:slug/actions/:name | Execute a UI action |
POST | /api/sites/:slug/workflows/:name | Execute a multi-step workflow |
:slug path parameter identifies a discovered site. It is derived from the site’s origin — for example, https://example.com becomes example-com.