{"openapi":"3.1.0","info":{"title":"Bitrise Config (BYOK) API","version":"0.1.0","description":"Bitrise Config (BYOK) lets an AI assistant read your own Bitrise Config data through the Bitrise Config API with a key you supply (personal access token). Read-only: 7 tools (list_addons, list_app_addons, list_app_secret_names, list_org_secret_names, list_cache_items, search_steps, list_step_inputs). The BYOK key travels with each request, is used for that one call only and is never stored,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-bitrise-config.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-bitrise-config/docs"},"termsOfService":"https://connectorbay.com/byok-bitrise-config/terms"},"servers":[{"url":"https://byok-bitrise-config.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-bitrise-config/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_addons":{"post":{"operationId":"list_addons","summary":"List the Bitrise add-ons available on the platform with title, summary, categories, platforms and whether they are in be","description":"List the Bitrise add-ons available on the platform with title, summary, categories, platforms and whether they are in beta. Use for \"Which add-ons does Bitrise offer\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_addonsArguments","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_app_addons":{"post":{"operationId":"list_app_addons","summary":"List the add-ons of one app with whether each is enabled, its plan name and price. Use for \"Which add-ons are enabled on","description":"List the add-ons of one app with whether each is enabled, its plan name and price. Use for \"Which add-ons are enabled on my Bitrise app\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"app_slug":{"description":"Bitrise app slug (the id in the app's URL), as returned by list_apps in the Bitrise connector.","maxLength":80,"title":"App Slug","type":"string"}},"required":["app_slug"],"title":"list_app_addonsArguments","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_app_secret_names":{"post":{"operationId":"list_app_secret_names","summary":"List an app's Secrets by name with scope and flags (protected, exposed for pull requests, expand in step inputs). Secret","description":"List an app's Secrets by name with scope and flags (protected, exposed for pull requests, expand in step inputs). Secret values are never returned. Use for \"Which secrets are defined for my Bitrise app and are any exposed to pull requests\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"app_slug":{"description":"Bitrise app slug (the id in the app's URL), as returned by list_apps in the Bitrise connector.","maxLength":80,"title":"App Slug","type":"string"}},"required":["app_slug"],"title":"list_app_secret_namesArguments","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_org_secret_names":{"post":{"operationId":"list_org_secret_names","summary":"List an organization's Secrets by name with scope and flags. Secret values are never returned. Use for \"Which organizati","description":"List an organization's Secrets by name with scope and flags. Secret values are never returned. Use for \"Which organization-wide secrets does my Bitrise organization have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_slug":{"description":"Bitrise organization slug, as returned by list_organizations in the Bitrise connector.","maxLength":80,"title":"Org Slug","type":"string"}},"required":["org_slug"],"title":"list_org_secret_namesArguments","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_cache_items":{"post":{"operationId":"list_cache_items","summary":"List an app's key-value cache items with cache key, archive size, creation, expiry and last use time. Page with the 'nex","description":"List an app's key-value cache items with cache key, archive size, creation, expiry and last use time. Page with the 'next' cursor. Use for \"How big is the Bitrise build cache of my app and when was it last used\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"app_slug":{"description":"Bitrise app slug (the id in the app's URL), as returned by list_apps in the Bitrise connector.","maxLength":80,"title":"App Slug","type":"string"},"next":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the 'paging.next' value of the previous answer. Leave out for the first page.","title":"Next"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many items per page (default 100).","title":"Limit"}},"required":["app_slug"],"title":"list_cache_itemsArguments","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_steps":{"post":{"operationId":"search_steps","summary":"Search the Bitrise Step library by phrase, optionally by category or maintainer (bitrise, verified, community), with lat","description":"Search the Bitrise Step library by phrase, optionally by category or maintainer (bitrise, verified, community), with latest version and inputs. Use for \"Find Bitrise steps for deploying to Firebase\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"description":"Phrase to search Steps for, for example 'firebase'.","maxLength":100,"title":"Query","type":"string"},"maintainers":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only Steps of this maintainer: bitrise for official ones, verified or community.","title":"Maintainers"}},"required":["query"],"title":"search_stepsArguments","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_step_inputs":{"post":{"operationId":"list_step_inputs","summary":"List the inputs of one Step version with title, summary, whether required, default value and allowed options. Use for \"W","description":"List the inputs of one Step version with title, summary, whether required, default value and allowed options. Use for \"What inputs does the git-clone Bitrise step take\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"step_ref":{"description":"Step reference in the form step_lib_source::step_id@version, for example 'https://github.com/bitrise-io/bitrise-steplib.git::git-clone@8'.","maxLength":300,"title":"Step Ref","type":"string"}},"required":["step_ref"],"title":"list_step_inputsArguments","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}}}}