{"openapi":"3.1.0","info":{"title":"Sentry Releases (BYOK) API","version":"0.1.0","description":"Sentry Releases (BYOK) lets an AI assistant read your own Sentry Releases data through the Sentry Releases API with a key you supply (auth token (project:releases or org:read scope)). Read-only: 5 tools (list_project_releases, get_release, list_release_commits, list_release_deploys, get_release_session_stats). The BYOK key travels with each request, is used for that one call only and is never...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-sentry-releases.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-sentry-releases/docs"},"termsOfService":"https://connectorbay.com/byok-sentry-releases/terms"},"servers":[{"url":"https://byok-sentry-releases.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-sentry-releases/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_project_releases":{"post":{"operationId":"list_project_releases","summary":"List the releases of one Sentry project, newest first, with commit and deploy counts, new issue count and last deploy. U","description":"List the releases of one Sentry project, newest first, with commit and deploy counts, new issue count and last deploy. Use for \"What are the latest releases of the backend project in acme\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization":{"description":"Organization slug (the short name in your Sentry URL) or numeric ID, for example 'acme'.","maxLength":200,"title":"Organization","type":"string"},"project":{"description":"Project slug or numeric ID, for example 'backend'.","maxLength":200,"title":"Project","type":"string"},"query":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Case-insensitive substring to match against the release version.","title":"Query"},"environment":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only releases deployed to this environment name, for example 'production'.","title":"Environment"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many releases to return (1 to 100).","title":"Per Page"}},"required":["organization","project"],"title":"list_project_releasesArguments","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_release":{"post":{"operationId":"get_release","summary":"Get one release of an organization by version, optionally with release-health data for the project given. Use for \"Show ","description":"Get one release of an organization by version, optionally with release-health data for the project given. Use for \"Show release backend@2.4.1 in acme\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization":{"description":"Organization slug (the short name in your Sentry URL) or numeric ID, for example 'acme'.","maxLength":200,"title":"Organization","type":"string"},"version":{"description":"Release version string exactly as created, for example '2.4.1' or 'backend@2.4.1+abc123' (slashes are encoded for you).","maxLength":200,"title":"Version","type":"string"},"project":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Project slug or ID to scope the release to.","title":"Project"},"health":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include release health (sessions, crash-free rates) for the project.","title":"Health"},"summary_stats_period":{"anyOf":[{"enum":["1h","24h","1d","2d","48h","7d","14d","30d","90d"],"type":"string"},{"type":"null"}],"default":"14d","description":"Period for summary statistics.","title":"Summary Stats Period"}},"required":["organization","version"],"title":"get_releaseArguments","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_commits":{"post":{"operationId":"list_release_commits","summary":"List the commits associated with a release: SHA, message, date, repository and linked pull request. Use for \"Which commi","description":"List the commits associated with a release: SHA, message, date, repository and linked pull request. Use for \"Which commits are in release backend@2.4.1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization":{"description":"Organization slug (the short name in your Sentry URL) or numeric ID, for example 'acme'.","maxLength":200,"title":"Organization","type":"string"},"version":{"description":"Release version string exactly as created, for example '2.4.1' or 'backend@2.4.1+abc123' (slashes are encoded for you).","maxLength":200,"title":"Version","type":"string"}},"required":["organization","version"],"title":"list_release_commitsArguments","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_deploys":{"post":{"operationId":"list_release_deploys","summary":"List the deploys of a release: environment, name, start and finish time. Use for \"Where and when was release backend@2.4","description":"List the deploys of a release: environment, name, start and finish time. Use for \"Where and when was release backend@2.4.1 deployed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization":{"description":"Organization slug (the short name in your Sentry URL) or numeric ID, for example 'acme'.","maxLength":200,"title":"Organization","type":"string"},"version":{"description":"Release version string exactly as created, for example '2.4.1' or 'backend@2.4.1+abc123' (slashes are encoded for you).","maxLength":200,"title":"Version","type":"string"}},"required":["organization","version"],"title":"list_release_deploysArguments","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_release_session_stats":{"post":{"operationId":"get_release_session_stats","summary":"Query release-health session statistics for an organization (for example sum(session) or count_unique(user)), grouped by","description":"Query release-health session statistics for an organization (for example sum(session) or count_unique(user)), grouped by release, project or environment. Use for \"How many sessions did each release in acme have in the last 24 hours\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization":{"description":"Organization slug (the short name in your Sentry URL) or numeric ID, for example 'acme'.","maxLength":200,"title":"Organization","type":"string"},"field":{"description":"Single statistic to compute.","enum":["sum(session)","count_unique(user)","crash_free_rate(session)","crash_free_rate(user)","crash_rate(session)","crash_rate(user)"],"title":"Field","type":"string"},"group_by":{"anyOf":[{"enum":["project","release","environment","session.status"],"type":"string"},{"type":"null"}],"default":null,"description":"Group results by this property.","title":"Group By"},"stats_period":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":"24h","description":"Relative period such as 24h, 7d or 14d.","title":"Stats Period"},"project":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Project ID to filter by (numeric ID, or -1 for all accessible projects).","title":"Project"},"environment":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Environment name to filter by.","title":"Environment"},"interval":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Resolution of the series such as 1h or 1d (the minimum is 10m).","title":"Interval"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Number of groups to return.","title":"Per Page"},"include_series":{"anyOf":[{"enum":[0,1],"type":"integer"},{"type":"null"}],"default":0,"description":"0 to leave out the time series and return totals only (default), 1 to include it.","title":"Include Series"}},"required":["organization","field"],"title":"get_release_session_statsArguments","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}}}}