{"openapi":"3.1.0","info":{"title":"Unleash Governance (BYOK) API","version":"0.1.0","description":"Unleash Governance (BYOK) lets an AI assistant read your own Unleash Governance data through the Unleash Governance API with a key you supply (personal access token or service account token). Read-only: 9 tools (list_change_requests, get_change_request, search_change_requests, get_change_request_counts, get_change_request_settings, list_release_plan_templates, list_roles, list_groups,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-unleash-governance.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-unleash-governance/docs"},"termsOfService":"https://connectorbay.com/byok-unleash-governance/terms"},"servers":[{"url":"https://byok-unleash-governance.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-unleash-governance/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_change_requests":{"post":{"operationId":"list_change_requests","summary":"List a project's change requests (any status, the last 300 by creation date) with title, environment, state and creation","description":"List a project's change requests (any status, the last 300 by creation date) with title, environment, state and creation time. The creator and change details are left out. Enterprise feature. Use for \"Which change requests are open in the default Unleash project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"instance":{"description":"Your hosted Unleash instance name, the part before .app.unleash-hosted.com (for example 'acme').","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Instance","type":"string"},"project_id":{"description":"Project id, for example 'default'.","maxLength":100,"title":"Project Id","type":"string"}},"required":["instance","project_id"],"title":"list_change_requestsArguments","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_change_request":{"post":{"operationId":"get_change_request","summary":"Get one change request with title, environment, state, creation time and the flag and segment changes it contains. Enter","description":"Get one change request with title, environment, state, creation time and the flag and segment changes it contains. Enterprise feature. Use for \"What does Unleash change request 12 change\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"instance":{"description":"Your hosted Unleash instance name, the part before .app.unleash-hosted.com (for example 'acme').","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Instance","type":"string"},"project_id":{"description":"Project id, for example 'default'.","maxLength":100,"title":"Project Id","type":"string"},"change_request_id":{"description":"Change request id (an integer) from list_change_requests.","maximum":2147483647,"minimum":1,"title":"Change Request Id","type":"integer"}},"required":["instance","project_id","change_request_id"],"title":"get_change_requestArguments","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/search_change_requests":{"post":{"operationId":"search_change_requests","summary":"Search change requests across projects by open or closed state with paging; returns title, environment, project, state a","description":"Search change requests across projects by open or closed state with paging; returns title, environment, project, state and creation time plus the total. Use for \"Which Unleash change requests are still open across all projects\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"instance":{"description":"Your hosted Unleash instance name, the part before .app.unleash-hosted.com (for example 'acme').","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Instance","type":"string"},"state":{"anyOf":[{"enum":["IS:open","IS:closed"],"type":"string"},{"type":"null"}],"default":null,"description":"Filter by state: IS:open (draft, in review, approved or scheduled) or IS:closed.","title":"State"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many change requests to return (1 to 1000, API default 50).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many change requests to skip, for paging.","title":"Offset"}},"required":["instance"],"title":"search_change_requestsArguments","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_change_request_counts":{"post":{"operationId":"get_change_request_counts","summary":"Count a project's change requests by status: total, applied, rejected, awaiting review, approved and scheduled. Enterpri","description":"Count a project's change requests by status: total, applied, rejected, awaiting review, approved and scheduled. Enterprise feature. Use for \"How many Unleash change requests are waiting for review in the default project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"instance":{"description":"Your hosted Unleash instance name, the part before .app.unleash-hosted.com (for example 'acme').","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Instance","type":"string"},"project_id":{"description":"Project id, for example 'default'.","maxLength":100,"title":"Project Id","type":"string"}},"required":["instance","project_id"],"title":"get_change_request_countsArguments","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_change_request_settings":{"post":{"operationId":"get_change_request_settings","summary":"Show, per environment, whether change requests are required in a project and how many approvals they need. Enterprise fe","description":"Show, per environment, whether change requests are required in a project and how many approvals they need. Enterprise feature. Use for \"Which Unleash environments require change request approval in the default project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"instance":{"description":"Your hosted Unleash instance name, the part before .app.unleash-hosted.com (for example 'acme').","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Instance","type":"string"},"project_id":{"description":"Project id, for example 'default'.","maxLength":100,"title":"Project Id","type":"string"}},"required":["instance","project_id"],"title":"get_change_request_settingsArguments","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_release_plan_templates":{"post":{"operationId":"list_release_plan_templates","summary":"List the global release plan templates (reusable milestone-based rollout plans) with name, description, project, milesto","description":"List the global release plan templates (reusable milestone-based rollout plans) with name, description, project, milestones and archive state. Enterprise feature. Use for \"Which release plan templates does our Unleash instance have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"instance":{"description":"Your hosted Unleash instance name, the part before .app.unleash-hosted.com (for example 'acme').","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Instance","type":"string"}},"required":["instance"],"title":"list_release_plan_templatesArguments","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_roles":{"post":{"operationId":"list_roles","summary":"List the root, project and custom roles used for access control with id, type, name, description and project. Enterprise","description":"List the root, project and custom roles used for access control with id, type, name, description and project. Enterprise feature. Use for \"Which roles are defined in Unleash\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"instance":{"description":"Your hosted Unleash instance name, the part before .app.unleash-hosted.com (for example 'acme').","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Instance","type":"string"}},"required":["instance"],"title":"list_rolesArguments","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_groups":{"post":{"operationId":"list_groups","summary":"List the user groups used for access control with name, description, root role, creation time and member count. Member l","description":"List the user groups used for access control with name, description, root role, creation time and member count. Member lists are left out. Enterprise feature. Use for \"Which user groups exist in Unleash\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"instance":{"description":"Your hosted Unleash instance name, the part before .app.unleash-hosted.com (for example 'acme').","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Instance","type":"string"}},"required":["instance"],"title":"list_groupsArguments","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_integrations":{"post":{"operationId":"list_integrations","summary":"List the configured integrations (addons such as Slack or webhooks) with provider, enabled state, subscribed events, pro","description":"List the configured integrations (addons such as Slack or webhooks) with provider, enabled state, subscribed events, projects and environments. Their parameters and secrets are left out. Use for \"Which integrations are configured in Unleash\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"instance":{"description":"Your hosted Unleash instance name, the part before .app.unleash-hosted.com (for example 'acme').","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Instance","type":"string"},"project":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only integrations that send events to this project and no other.","title":"Project"}},"required":["instance"],"title":"list_integrationsArguments","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}}}}