{"openapi":"3.1.0","info":{"title":"BrowserStack (BYOK) API","version":"0.1.0","description":"BrowserStack (BYOK) lets an AI assistant read your own BrowserStack data through the BrowserStack API with a key you supply (username). Read-only: 6 tools (get_plan, list_projects, get_project, list_builds, list_build_sessions, get_session). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to api.browserstack.com....\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-browserstack.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-browserstack/docs"},"termsOfService":"https://connectorbay.com/byok-browserstack/terms"},"servers":[{"url":"https://byok-browserstack.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-browserstack/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_plan":{"post":{"operationId":"get_plan","summary":"Show the BrowserStack Automate plan: plan name, parallel sessions running and allowed, queued sessions and queue limit. ","description":"Show the BrowserStack Automate plan: plan name, parallel sessions running and allowed, queued sessions and queue limit. Use for \"How many parallel BrowserStack sessions are running and how many are allowed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_planArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_projects":{"post":{"operationId":"list_projects","summary":"List BrowserStack Automate projects with id, name, group and dates. Use for \"Which Automate projects do I have on Browse","description":"List BrowserStack Automate projects with id, name, group and dates. Use for \"Which Automate projects do I have on BrowserStack\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_projectsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_project":{"post":{"operationId":"get_project","summary":"Get one BrowserStack Automate project with its builds (id, name, duration, status, framework). Use for \"Show the builds ","description":"Get one BrowserStack Automate project with its builds (id, name, duration, status, framework). Use for \"Show the builds of a BrowserStack Automate project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Numeric project id, as returned by list_projects.","minimum":1,"title":"Project Id","type":"integer"}},"required":["project_id"],"title":"get_projectArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_builds":{"post":{"operationId":"list_builds","summary":"List recent BrowserStack Automate builds (10 by default, up to 100) with name, status, duration and hashed id, optionall","description":"List recent BrowserStack Automate builds (10 by default, up to 100) with name, status, duration and hashed id, optionally filtered by status or project. Use for \"Which BrowserStack builds failed recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["running","done","timeout","failed"],"type":"string"},{"type":"null"}],"default":null,"description":"Only builds with this status: running, done, timeout or failed.","title":"Status"},"project_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only builds of this project id.","title":"Project Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results to return (1 to 100, default 10).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Retrieve results starting from this position, for paging.","title":"Offset"}},"title":"list_buildsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_build_sessions":{"post":{"operationId":"list_build_sessions","summary":"List the test sessions of a BrowserStack Automate build with name, status, OS, browser or device, duration and reason. S","description":"List the test sessions of a BrowserStack Automate build with name, status, OS, browser or device, duration and reason. Signed log and video links are not returned. Use for \"Which sessions of this BrowserStack build failed and on which browsers\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"build_id":{"description":"BrowserStack Automate build hashed id, as returned by list_builds (hashed_id).","maxLength":80,"title":"Build Id","type":"string"},"status":{"anyOf":[{"enum":["running","done","timeout","failed"],"type":"string"},{"type":"null"}],"default":null,"description":"Only sessions with this status: running, done, timeout or failed.","title":"Status"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results to return (1 to 100, default 10).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Retrieve results starting from this position, for paging.","title":"Offset"}},"required":["build_id"],"title":"list_build_sessionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_session":{"post":{"operationId":"get_session","summary":"Get one BrowserStack Automate session by id: name, status, reason, OS, browser or device, duration, build and project. U","description":"Get one BrowserStack Automate session by id: name, status, reason, OS, browser or device, duration, build and project. Use for \"What happened in this BrowserStack test session\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"session_id":{"description":"Session hashed id, as returned by list_build_sessions.","maxLength":80,"title":"Session Id","type":"string"}},"required":["session_id"],"title":"get_sessionArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}