{"openapi":"3.1.0","info":{"title":"Sentry Organization (BYOK) API","version":"0.1.0","description":"Sentry Organization (BYOK) lets an AI assistant read your own Sentry Organization data through the Sentry Organization API with a key you supply (auth token (org:read, team:read and project:read scopes)). Read-only: 9 tools (list_teams, get_team, list_team_projects, list_repositories, list_repository_commits, list_integrations, list_environments, get_stats_summary, get_event_stats). The BYOK key...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-sentry-organization.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-sentry-organization/docs"},"termsOfService":"https://connectorbay.com/byok-sentry-organization/terms"},"servers":[{"url":"https://byok-sentry-organization.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-sentry-organization/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_teams":{"post":{"operationId":"list_teams","summary":"List an organization's teams with member counts and your role in each. Up to 100 per page. Use for \"Which teams does acm","description":"List an organization's teams with member counts and your role in each. Up to 100 per page. Use for \"Which teams does acme have in Sentry\".","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"},"query":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Filter teams by name or slug.","title":"Query"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many teams to return (1 to 100).","title":"Per Page"}},"required":["organization"],"title":"list_teamsArguments","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_team":{"post":{"operationId":"get_team","summary":"Get one team: name, creation date, member count and whether you are a member. Use for \"Show the backend-team team in acm","description":"Get one team: name, creation date, member count and whether you are a member. Use for \"Show the backend-team team 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"},"team":{"description":"Team slug or numeric ID, for example 'backend-team'.","maxLength":200,"title":"Team","type":"string"}},"required":["organization","team"],"title":"get_teamArguments","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_team_projects":{"post":{"operationId":"list_team_projects","summary":"List the projects a team is assigned to, with platform, creation date and first event time. Use for \"Which projects does","description":"List the projects a team is assigned to, with platform, creation date and first event time. Use for \"Which projects does backend-team own 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"},"team":{"description":"Team slug or numeric ID, for example 'backend-team'.","maxLength":200,"title":"Team","type":"string"}},"required":["organization","team"],"title":"list_team_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/list_repositories":{"post":{"operationId":"list_repositories","summary":"List repositories linked to an organization's Sentry account with provider and status. Use for \"Which repositories are c","description":"List repositories linked to an organization's Sentry account with provider and status. Use for \"Which repositories are connected to Sentry for 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"},"query":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Filter repositories by name.","title":"Query"},"status":{"anyOf":[{"enum":["active","deleted"],"type":"string"},{"type":"null"}],"default":"active","description":"Repository status.","title":"Status"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many repositories to return (1 to 100).","title":"Per Page"}},"required":["organization"],"title":"list_repositoriesArguments","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_commits":{"post":{"operationId":"list_repository_commits","summary":"List the commits Sentry has recorded for one linked repository: SHA, message and date. Use for \"What commits does Sentry","description":"List the commits Sentry has recorded for one linked repository: SHA, message and date. Use for \"What commits does Sentry know for repository 7 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"},"repo_id":{"description":"Numeric repository ID (from list_repositories).","maxLength":200,"title":"Repo Id","type":"string"}},"required":["organization","repo_id"],"title":"list_repository_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_integrations":{"post":{"operationId":"list_integrations","summary":"List the integrations (Slack, GitHub, Jira and so on) installed for an organization with provider and status. Configurat","description":"List the integrations (Slack, GitHub, Jira and so on) installed for an organization with provider and status. Configuration data is not requested. Use for \"Which integrations does acme use in Sentry\".","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"},"provider_key":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only integrations of this provider key, for example 'slack' or 'github'.","title":"Provider Key"}},"required":["organization"],"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}},"/v1/tools/list_environments":{"post":{"operationId":"list_environments","summary":"List the environment names (production, staging and so on) seen across an organization's projects. Use for \"Which enviro","description":"List the environment names (production, staging and so on) seen across an organization's projects. Use for \"Which environments report to Sentry 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"},"visibility":{"anyOf":[{"enum":["all","hidden","visible"],"type":"string"},{"type":"null"}],"default":"visible","description":"Which environments: visible (default), hidden or all.","title":"Visibility"}},"required":["organization"],"title":"list_environmentsArguments","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_stats_summary":{"post":{"operationId":"get_stats_summary","summary":"Event counts per project for an organization over a period (accepted, filtered, dropped), for one statistic and optional","description":"Event counts per project for an organization over a period (accepted, filtered, dropped), for one statistic and optional category. Use for \"How many errors did each acme project receive 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":"Statistic: sum(quantity) (events, or bytes for attachments) or sum(times_seen).","enum":["sum(quantity)","sum(times_seen)"],"title":"Field","type":"string"},"stats_period":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":"24h","description":"Relative period such as 24h, 7d, 14d or 30d.","title":"Stats Period"},"category":{"anyOf":[{"enum":["error","transaction","attachment","replay","profile","monitor"],"type":"string"},{"type":"null"}],"default":null,"description":"Data category to count.","title":"Category"},"outcome":{"anyOf":[{"enum":["accepted","filtered","rate_limited","invalid","abuse","client_discard","cardinality_limited"],"type":"string"},{"type":"null"}],"default":null,"description":"Only events with this outcome.","title":"Outcome"},"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"}},"required":["organization","field"],"title":"get_stats_summaryArguments","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_event_stats":{"post":{"operationId":"get_event_stats","summary":"Event counts for an organization grouped by one property (project, outcome, category, reason or key_id), with an optiona","description":"Event counts for an organization grouped by one property (project, outcome, category, reason or key_id), with an optional time series. Use for \"Break down acme's accepted events by project for the last 7 days\".","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":"Statistic: sum(quantity) or sum(times_seen).","enum":["sum(quantity)","sum(times_seen)"],"title":"Field","type":"string"},"group_by":{"description":"Property to group by.","enum":["project","outcome","category","reason","key_id"],"title":"Group By","type":"string"},"interval":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Series resolution such as 1h or 1d; leave empty for totals with the default interval.","title":"Interval"},"stats_period":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":"24h","description":"Relative period such as 24h, 7d, 14d or 30d.","title":"Stats Period"},"category":{"anyOf":[{"enum":["error","transaction","attachment","replay","profile","monitor"],"type":"string"},{"type":"null"}],"default":null,"description":"Data category to count.","title":"Category"},"outcome":{"anyOf":[{"enum":["accepted","filtered","rate_limited","invalid","abuse","client_discard","cardinality_limited"],"type":"string"},{"type":"null"}],"default":null,"description":"Only events with this outcome.","title":"Outcome"},"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"}},"required":["organization","field","group_by"],"title":"get_event_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}}}}