{"openapi":"3.1.0","info":{"title":"Buddy Works (BYOK) API","version":"0.1.0","description":"Buddy Works (BYOK) lets an AI assistant read your own Buddy Works data through the Buddy Works API with a key you supply (Buddy personal access token). Read-only: 9 tools (list_workspaces, get_workspace, list_projects, get_project, list_pipelines, get_pipeline, list_executions, get_execution, list_repository_tags). The BYOK key travels with each request, is used for that one call only and is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-buddy-works.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-buddy-works/docs"},"termsOfService":"https://connectorbay.com/byok-buddy-works/terms"},"servers":[{"url":"https://byok-buddy-works.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-buddy-works/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/list_workspaces":{"post":{"operationId":"list_workspaces","summary":"List the Buddy.Works workspaces the token can access with ID, name and domain. Use for \"Which Buddy.Works workspaces can","description":"List the Buddy.Works workspaces the token can access with ID, name and domain. Use for \"Which Buddy.Works workspaces can my token access\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_workspacesArguments","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":{"post":{"operationId":"get_workspace","summary":"Get a Buddy.Works workspace: name, domain, owner ID, frozen flag, creation date, default pipeline resources and SSO flag","description":"Get a Buddy.Works workspace: name, domain, owner ID, frozen flag, creation date, default pipeline resources and SSO flag. Use for \"Show my Buddy.Works workspace settings\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace domain (the human-readable workspace ID), for example 'my-company'.","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_projects":{"post":{"operationId":"list_projects","summary":"List the projects of a Buddy.Works workspace with display name, status, access level and creation date, filterable by st","description":"List the projects of a Buddy.Works workspace with display name, status, access level and creation date, filterable by status. Use for \"What projects are in my Buddy.Works workspace\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace domain (the human-readable workspace ID), for example 'my-company'.","maxLength":200,"title":"Workspace","type":"string"},"status":{"anyOf":[{"enum":["ACTIVE","CLOSED"],"type":"string"},{"type":"null"}],"default":null,"description":"Only projects with this status.","title":"Status"},"sort_by":{"anyOf":[{"enum":["name","create_date","repository_size"],"type":"string"},{"type":"null"}],"default":null,"description":"Order by name, create_date or repository_size.","title":"Sort By"},"sort_direction":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"ASC or DESC.","title":"Sort Direction"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page (default 20).","title":"Per Page"}},"required":["workspace"],"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 Buddy.Works project: display name, status, access, creation date, default branch and repository URLs. Use for \"S","description":"Get one Buddy.Works project: display name, status, access, creation date, default branch and repository URLs. Use for \"Show the details of Buddy.Works project my-project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace domain (the human-readable workspace ID), for example 'my-company'.","maxLength":200,"title":"Workspace","type":"string"},"project_name":{"description":"Project name (the human-readable project ID), for example 'my-project'.","maxLength":200,"title":"Project Name","type":"string"}},"required":["workspace","project_name"],"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_pipelines":{"post":{"operationId":"list_pipelines","summary":"List the pipelines of a Buddy.Works project with name, trigger refs and events, priority, disabled flag and the status o","description":"List the pipelines of a Buddy.Works project with name, trigger refs and events, priority, disabled flag and the status of the last run. Use for \"Which pipelines does my Buddy.Works project have and did the last runs pass\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace domain (the human-readable workspace ID), for example 'my-company'.","maxLength":200,"title":"Workspace","type":"string"},"project_name":{"description":"Project name (the human-readable project ID), for example 'my-project'.","maxLength":200,"title":"Project Name","type":"string"},"sort_by":{"anyOf":[{"enum":["name","id"],"type":"string"},{"type":"null"}],"default":null,"description":"Order by name or id.","title":"Sort By"},"sort_direction":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"ASC or DESC.","title":"Sort Direction"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page (default 20).","title":"Per Page"}},"required":["workspace","project_name"],"title":"list_pipelinesArguments","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_pipeline":{"post":{"operationId":"get_pipeline","summary":"Get one pipeline: name, trigger refs, events, priority, disabled reason, last run status and revision, and run settings.","description":"Get one pipeline: name, trigger refs, events, priority, disabled reason, last run status and revision, and run settings. Use for \"Show the settings and last run of Buddy.Works pipeline 123\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace domain (the human-readable workspace ID), for example 'my-company'.","maxLength":200,"title":"Workspace","type":"string"},"project_name":{"description":"Project name (the human-readable project ID), for example 'my-project'.","maxLength":200,"title":"Project Name","type":"string"},"pipeline_id":{"description":"Numeric pipeline ID; list_pipelines returns it.","title":"Pipeline Id","type":"integer"}},"required":["workspace","project_name","pipeline_id"],"title":"get_pipelineArguments","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_executions":{"post":{"operationId":"list_executions","summary":"List runs (executions) of a pipeline with status, trigger, start and finish times, branch and commit; newest first with ","description":"List runs (executions) of a pipeline with status, trigger, start and finish times, branch and commit; newest first with paging totals. Use for \"Show the recent runs of my Buddy.Works pipeline\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace domain (the human-readable workspace ID), for example 'my-company'.","maxLength":200,"title":"Workspace","type":"string"},"project_name":{"description":"Project name (the human-readable project ID), for example 'my-project'.","maxLength":200,"title":"Project Name","type":"string"},"pipeline_id":{"description":"Numeric pipeline ID; list_pipelines returns it.","title":"Pipeline Id","type":"integer"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page (default 20).","title":"Per Page"}},"required":["workspace","project_name","pipeline_id"],"title":"list_executionsArguments","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_execution":{"post":{"operationId":"get_execution","summary":"Get one pipeline run: status, trigger, priority, start and finish times, comment, branch and commit. Use for \"Why did Bu","description":"Get one pipeline run: status, trigger, priority, start and finish times, comment, branch and commit. Use for \"Why did Buddy.Works run 456 of my pipeline fail\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace domain (the human-readable workspace ID), for example 'my-company'.","maxLength":200,"title":"Workspace","type":"string"},"project_name":{"description":"Project name (the human-readable project ID), for example 'my-project'.","maxLength":200,"title":"Project Name","type":"string"},"pipeline_id":{"description":"Numeric pipeline ID; list_pipelines returns it.","title":"Pipeline Id","type":"integer"},"execution_id":{"description":"Numeric execution ID; list_executions returns it.","title":"Execution Id","type":"integer"}},"required":["workspace","project_name","pipeline_id","execution_id"],"title":"get_executionArguments","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_tags":{"post":{"operationId":"list_repository_tags","summary":"List the git tags of a Buddy.Works project's repository. Use for \"What tags does my Buddy.Works project repository have\"","description":"List the git tags of a Buddy.Works project's repository. Use for \"What tags does my Buddy.Works project repository have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace domain (the human-readable workspace ID), for example 'my-company'.","maxLength":200,"title":"Workspace","type":"string"},"project_name":{"description":"Project name (the human-readable project ID), for example 'my-project'.","maxLength":200,"title":"Project Name","type":"string"}},"required":["workspace","project_name"],"title":"list_repository_tagsArguments","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}}}}