Sentry · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Sentry System Projects API

9 actions 9 updates phrasing extends openapi/sentry-system-projects-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Sentry's API. It is a proposal applied on top of the contract, not a document Sentry publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 9

$.info
$.paths['/organizations/{organization_id_or_slug}/projects/'].get
$.paths['/projects/{organization_id_or_slug}/{project_id_or_slug}/'].get
$.paths['/projects/{organization_id_or_slug}/{project_id_or_slug}/'].put
$.paths['/projects/{organization_id_or_slug}/{project_id_or_slug}/'].delete
$.paths['/teams/{organization_id_or_slug}/{team_id_or_slug}/projects/'].post
$.paths['/projects/{organization_id_or_slug}/{project_id_or_slug}/users/'].get
$.paths['/projects/{organization_id_or_slug}/{project_id_or_slug}/teams/{team_id_or_slug}/'].post
$.paths['/projects/{organization_id_or_slug}/{project_id_or_slug}/teams/{team_id_or_slug}/'].delete

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Sentry System Projects API
  version: 1.0.0
extends: openapi/sentry-system-projects-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-01'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 8
- target: $.paths['/organizations/{organization_id_or_slug}/projects/'].get
  update:
    x-apievangelist-phrasing:
      intent: List an organization's projects
      effect: read
      questions:
      - Which projects exist in my Sentry organization?
      - Can I page through all of an org's projects?
      instructions:
      - text: List projects in organization {org}.
        slots:
          org: path.organization_id_or_slug
      - text: Show the next page of projects in {org} from cursor {cursor}.
        slots:
          org: path.organization_id_or_slug
          cursor: query.cursor
      method: generated
      generated: '2026-10-01'
- target: $.paths['/projects/{organization_id_or_slug}/{project_id_or_slug}/'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a project's details
      effect: read
      questions:
      - What platform and settings does a project have?
      - How can I look up one project by its slug?
      instructions:
      - text: Show project {project} in {org}.
        slots:
          project: path.project_id_or_slug
          org: path.organization_id_or_slug
      - text: Fetch settings for project {project}.
        slots:
          project: path.project_id_or_slug
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{organization_id_or_slug}/{project_id_or_slug}/'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a project's settings
      effect: write
      questions:
      - How do I rename a project or change its platform?
      - Can I adjust how long alert digests wait before sending?
      instructions:
      - text: Rename project {project} in {org} to {name}.
        slots:
          project: path.project_id_or_slug
          org: path.organization_id_or_slug
          name: requestBody.name
      - text: Set project {project} platform to {platform}.
        slots:
          project: path.project_id_or_slug
          platform: requestBody.platform
      - text: Set digest delays on project {project} to min {digestsMinDelay} and max {digestsMaxDelay} seconds.
        slots:
          project: path.project_id_or_slug
          digestsMinDelay: requestBody.digestsMinDelay
          digestsMaxDelay: requestBody.digestsMaxDelay
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{organization_id_or_slug}/{project_id_or_slug}/'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a project
      effect: destructive
      questions:
      - Is deleting a project reversible?
      - How do I schedule a project for deletion?
      instructions:
      - text: Delete project {project} from organization {org}.
        slots:
          project: path.project_id_or_slug
          org: path.organization_id_or_slug
      - text: Schedule project {project} for deletion.
        slots:
          project: path.project_id_or_slug
      method: generated
      generated: '2026-09-26'
- target: $.paths['/teams/{organization_id_or_slug}/{team_id_or_slug}/projects/'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a project for a team
      effect: write
      questions:
      - How do I create a new project owned by a team?
      - Can I pick the platform when creating a project?
      instructions:
      - text: Create project {name} for team {team} in {org}.
        slots:
          name: requestBody.name
          team: path.team_id_or_slug
          org: path.organization_id_or_slug
      - text: Create a {platform} project named {name} with slug {slug} under team {team}.
        slots:
          platform: requestBody.platform
          name: requestBody.name
          slug: requestBody.slug
          team: path.team_id_or_slug
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{organization_id_or_slug}/{project_id_or_slug}/users/'].get
  update:
    x-apievangelist-phrasing:
      intent: List users seen in a project
      effect: read
      questions:
      - Which end users have been seen in my app's project?
      - Can I search a project's users by email or ID?
      instructions:
      - text: List users seen in project {project} of {org}.
        slots:
          project: path.project_id_or_slug
          org: path.organization_id_or_slug
      - text: Find users in project {project} matching {query}.
        slots:
          project: path.project_id_or_slug
          query: query.query
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{organization_id_or_slug}/{project_id_or_slug}/teams/{team_id_or_slug}/'].post
  update:
    x-apievangelist-phrasing:
      intent: Give a team access to a project
      effect: write
      questions:
      - How do I grant another team access to a project?
      - Can a project be shared with more than one team?
      instructions:
      - text: Give team {team} access to project {project} in {org}.
        slots:
          team: path.team_id_or_slug
          project: path.project_id_or_slug
          org: path.organization_id_or_slug
      - text: Add team {team} to project {project}.
        slots:
          team: path.team_id_or_slug
          project: path.project_id_or_slug
      method: generated
      generated: '2026-09-26'
- target: $.paths['/projects/{organization_id_or_slug}/{project_id_or_slug}/teams/{team_id_or_slug}/'].delete
  update:
    x-apievangelist-phrasing:
      intent: Revoke a team's project access
      effect: destructive
      questions:
      - How do I take a team's access away from a project?
      - Can I remove one team from a project without deleting it?
      instructions:
      - text: Revoke team {team}'s access to project {project} in {org}.
        slots:
          team: path.team_id_or_slug
          project: path.project_id_or_slug
          org: path.organization_id_or_slug
      - text: Remove team {team} from project {project}.
        slots:
          team: path.team_id_or_slug
          project: path.project_id_or_slug
      method: generated
      generated: '2026-09-26'