{"openapi":"3.1.0","info":{"title":"Bitbucket Workspaces (BYOK) API","version":"0.1.0","description":"Bitbucket Workspaces (BYOK) lets an AI assistant read your own Bitbucket Workspaces data through the Bitbucket Workspaces API with a key you supply (Atlassian API token with Bitbucket read scopes (account, workspace membership and project)). Read-only: 10 tools (get_workspace, list_workspace_members, list_workspace_permissions, list_repository_permissions, get_my_workspace_permission,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-bitbucket-workspaces.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-bitbucket-workspaces/docs"},"termsOfService":"https://connectorbay.com/byok-bitbucket-workspaces/terms"},"servers":[{"url":"https://byok-bitbucket-workspaces.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-bitbucket-workspaces/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_workspace":{"post":{"operationId":"get_workspace","summary":"Get one workspace: name, slug, UUID, privacy flags, forking mode and creation date. Use for \"Tell me about the Bitbucket","description":"Get one workspace: name, slug, UUID, privacy flags, forking mode and creation date. Use for \"Tell me about the Bitbucket workspace myteam\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace slug (the first part of repository URLs on bitbucket.org), for example 'myteam'.","maxLength":200,"title":"Workspace","type":"string"}},"required":["workspace"],"title":"get_workspaceArguments","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_workspace_members":{"post":{"operationId":"list_workspace_members","summary":"List the people in a workspace with display name and UUID. Use for \"Who is in the Bitbucket workspace myteam\".","description":"List the people in a workspace with display name and UUID. Use for \"Who is in the Bitbucket workspace myteam\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace slug (the first part of repository URLs on bitbucket.org), for example 'myteam'.","maxLength":200,"title":"Workspace","type":"string"},"pagelen":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (1 to 100, default 25).","title":"Pagelen"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. The answer's next field holds the link to the following page when there is one.","title":"Page"}},"required":["workspace"],"title":"list_workspace_membersArguments","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_workspace_permissions":{"post":{"operationId":"list_workspace_permissions","summary":"List workspace members with their workspace permission level (owner, collaborator or member); optionally filtered. Use f","description":"List workspace members with their workspace permission level (owner, collaborator or member); optionally filtered. Use for \"Who are the owners of the Bitbucket workspace myteam\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace slug (the first part of repository URLs on bitbucket.org), for example 'myteam'.","maxLength":200,"title":"Workspace","type":"string"},"q":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional Bitbucket filter expression, for example 'user.display_name ~ \"jane\"'.","title":"Q"},"pagelen":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (1 to 100, default 25).","title":"Pagelen"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. The answer's next field holds the link to the following page when there is one.","title":"Page"}},"required":["workspace"],"title":"list_workspace_permissionsArguments","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_repository_permissions":{"post":{"operationId":"list_repository_permissions","summary":"List members' permissions (admin, write, read) on every repository of a workspace; filter or sort with a Bitbucket query","description":"List members' permissions (admin, write, read) on every repository of a workspace; filter or sort with a Bitbucket query. Use for \"Who has admin permission on repositories in myteam\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace slug (the first part of repository URLs on bitbucket.org), for example 'myteam'.","maxLength":200,"title":"Workspace","type":"string"},"q":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional Bitbucket filter expression, for example 'user.display_name ~ \"jane\"'.","title":"Q"},"sort":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Property to sort by, for example 'permission' or '-user.display_name'.","title":"Sort"},"pagelen":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (1 to 100, default 25).","title":"Pagelen"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. The answer's next field holds the link to the following page when there is one.","title":"Page"}},"required":["workspace"],"title":"list_repository_permissionsArguments","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_my_workspace_permission":{"post":{"operationId":"get_my_workspace_permission","summary":"Show the key owner's own permission level in one workspace. Use for \"What is my permission level in the Bitbucket worksp","description":"Show the key owner's own permission level in one workspace. Use for \"What is my permission level in the Bitbucket workspace myteam\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace slug (the first part of repository URLs on bitbucket.org), for example 'myteam'.","maxLength":200,"title":"Workspace","type":"string"}},"required":["workspace"],"title":"get_my_workspace_permissionArguments","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_workspace_projects":{"post":{"operationId":"list_workspace_projects","summary":"List a workspace's projects with key, name, description and privacy. Use for \"Which projects does the Bitbucket workspac","description":"List a workspace's projects with key, name, description and privacy. Use for \"Which projects does the Bitbucket workspace myteam have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace slug (the first part of repository URLs on bitbucket.org), for example 'myteam'.","maxLength":200,"title":"Workspace","type":"string"},"pagelen":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (1 to 100, default 25).","title":"Pagelen"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. The answer's next field holds the link to the following page when there is one.","title":"Page"}},"required":["workspace"],"title":"list_workspace_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_workspace_project":{"post":{"operationId":"get_workspace_project","summary":"Get one project of a workspace by key: name, description, privacy and dates. Use for \"Describe project PROJ in the Bitbu","description":"Get one project of a workspace by key: name, description, privacy and dates. Use for \"Describe project PROJ in the Bitbucket workspace myteam\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace slug (the first part of repository URLs on bitbucket.org), for example 'myteam'.","maxLength":200,"title":"Workspace","type":"string"},"project_key":{"description":"Project key within the workspace, usually short capitals, for example 'PROJ'.","maxLength":200,"title":"Project Key","type":"string"}},"required":["workspace","project_key"],"title":"get_workspace_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_project_default_reviewers":{"post":{"operationId":"list_project_default_reviewers","summary":"List the default reviewers configured on a project, with display name and reviewer type. Use for \"Who reviews pull reque","description":"List the default reviewers configured on a project, with display name and reviewer type. Use for \"Who reviews pull requests by default in project PROJ of myteam\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace slug (the first part of repository URLs on bitbucket.org), for example 'myteam'.","maxLength":200,"title":"Workspace","type":"string"},"project_key":{"description":"Project key within the workspace, usually short capitals, for example 'PROJ'.","maxLength":200,"title":"Project Key","type":"string"},"pagelen":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (1 to 100, default 25).","title":"Pagelen"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. The answer's next field holds the link to the following page when there is one.","title":"Page"}},"required":["workspace","project_key"],"title":"list_project_default_reviewersArguments","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_workspace_snippets":{"post":{"operationId":"list_workspace_snippets","summary":"List the snippets (shared code or text) in a workspace with title, privacy and dates; the content is left out. Use for \"","description":"List the snippets (shared code or text) in a workspace with title, privacy and dates; the content is left out. Use for \"Which snippets does the Bitbucket workspace myteam have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace slug (the first part of repository URLs on bitbucket.org), for example 'myteam'.","maxLength":200,"title":"Workspace","type":"string"},"role":{"anyOf":[{"enum":["owner","contributor","member"],"type":"string"},{"type":"null"}],"default":null,"description":"Only snippets where you have this role.","title":"Role"},"pagelen":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (1 to 100, default 25).","title":"Pagelen"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. The answer's next field holds the link to the following page when there is one.","title":"Page"}},"required":["workspace"],"title":"list_workspace_snippetsArguments","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_workspace_webhooks":{"post":{"operationId":"list_workspace_webhooks","summary":"List a workspace's webhooks with description, subscribed events and active flag; the target URL and secret are left out.","description":"List a workspace's webhooks with description, subscribed events and active flag; the target URL and secret are left out. Use for \"Which webhooks does the Bitbucket workspace myteam have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace slug (the first part of repository URLs on bitbucket.org), for example 'myteam'.","maxLength":200,"title":"Workspace","type":"string"},"pagelen":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (1 to 100, default 25).","title":"Pagelen"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. The answer's next field holds the link to the following page when there is one.","title":"Page"}},"required":["workspace"],"title":"list_workspace_webhooksArguments","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}}}}