# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Bugsnag Projects API version: 1.0.0 extends: openapi/bugsnag-projects-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-26' generator: build-phrasing.py label: Generated by API Evangelist operations: 47 - target: $.paths['/organizations/{organization_id}/projects'].get update: x-apievangelist-phrasing: intent: List an organization's projects effect: read questions: - What projects are in my BugSnag organization? - Can I sort my organization's projects by name or creation date? instructions: - text: List projects in organization {organization_id}. slots: organization_id: path.organization_id - text: List organization {organization_id}'s projects sorted by {sort} {direction}. slots: organization_id: path.organization_id sort: query.sort direction: query.direction method: generated generated: '2026-09-26' - target: $.paths['/organizations/{organization_id}/projects'].post update: x-apievangelist-phrasing: intent: Create a project effect: write questions: - How do I create a new project and get its API key? - What project type do I pick when creating a project for my app's platform? instructions: - text: Create a {type} project called {name} in organization {organization_id}. slots: type: requestBody.type name: requestBody.name organization_id: path.organization_id - text: Set up project {name} of type {type} under organization {organization_id} and return its API key. slots: name: requestBody.name type: requestBody.type organization_id: path.organization_id method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}'].get update: x-apievangelist-phrasing: intent: Get a project's settings effect: read questions: - What is the notifier API key for my project? - How do I see a project's type and configuration? instructions: - text: Show project {project_id}. slots: project_id: path.project_id - text: Get the API key and settings for project {project_id}. slots: project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}'].delete update: x-apievangelist-phrasing: intent: Delete a project effect: destructive questions: - Can I delete a project and everything in it? - What data is lost when a project is deleted? instructions: - text: Delete project {project_id}. slots: project_id: path.project_id - text: Permanently remove project {project_id} with all its errors and events. slots: project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}'].patch update: x-apievangelist-phrasing: intent: Update a project's settings effect: write questions: - How do I rename a project? - Can I discard errors from old app versions I no longer support? - Is there a way to change how errors are grouped in a project? instructions: - text: Rename project {project_id} to {name}. slots: project_id: path.project_id name: requestBody.name - text: Discard events from app versions {discarded_app_versions} in project {project_id}. slots: discarded_app_versions: requestBody.discarded_app_versions project_id: path.project_id - text: Set global grouping rules {global_grouping} on project {project_id}. slots: global_grouping: requestBody.global_grouping project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/api_key'].delete update: x-apievangelist-phrasing: intent: Regenerate a project's notifier API key effect: destructive questions: - How do I rotate my project's API key after it was exposed? - Does the old project API key stop working immediately when regenerated? instructions: - text: Regenerate the API key for project {project_id}. slots: project_id: path.project_id - text: Rotate project {project_id}'s notifier API key. slots: project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/upload_api_key'].delete update: x-apievangelist-phrasing: intent: Regenerate a project's upload API key effect: destructive questions: - How do I rotate the key used for uploading source maps and ProGuard files? - Can I regenerate only the symbol upload key without touching the notifier key? instructions: - text: Rotate the source map and symbol upload key on project {project_id}. slots: project_id: path.project_id - text: Issue a new symbol upload key for project {project_id}. slots: project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/event_fields'].post update: x-apievangelist-phrasing: intent: Create a custom event field effect: write questions: - How do I make a custom metadata value filterable in my project? - Can a new custom event field be reindexed against existing events? instructions: - text: Create a custom event field for path {path} in project {project_id} with filter options {filter_options}. slots: path: requestBody.path project_id: path.project_id filter_options: requestBody.filter_options - text: Add a pivotable custom field at {path} to project {project_id} using filter options {filter_options} and pivot options {pivot_options}. slots: path: requestBody.path project_id: path.project_id filter_options: requestBody.filter_options pivot_options: requestBody.pivot_options method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/event_fields/{display_id}'].delete update: x-apievangelist-phrasing: intent: Delete a custom event field effect: destructive questions: - Can I remove a custom event field I no longer filter on? - How do I delete a custom field from a project? instructions: - text: Delete custom event field {display_id} from project {project_id}. slots: display_id: path.display_id project_id: path.project_id - text: Remove the custom field {display_id} in project {project_id}. slots: display_id: path.display_id project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/event_fields/{display_id}'].patch update: x-apievangelist-phrasing: intent: Update a custom event field effect: write questions: - How do I change the filter options on an existing custom event field? - Can I point an existing custom field at a different metadata path? instructions: - text: Update custom field {display_id} in project {project_id} to path {path} with filter options {filter_options}. slots: display_id: path.display_id project_id: path.project_id path: requestBody.path filter_options: requestBody.filter_options - text: Change custom field {display_id} in project {project_id} to path {path}, filter options {filter_options}, and reindex {reindex}. slots: display_id: path.display_id project_id: path.project_id path: requestBody.path filter_options: requestBody.filter_options reindex: requestBody.reindex method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/release_groups'].get update: x-apievangelist-phrasing: intent: List a project's release groups effect: read questions: - What release groups does my project have in production? - Can I list only the top or visible release groups for a stage? instructions: - text: List release groups for project {project_id} in stage {release_stage_name}. slots: project_id: path.project_id release_stage_name: query.release_stage_name - text: 'Show only top release groups for project {project_id} in {release_stage_name}: {top_only}.' slots: project_id: path.project_id release_stage_name: query.release_stage_name top_only: query.top_only method: generated generated: '2026-09-26' - target: $.paths['/release_groups/{id}'].get update: x-apievangelist-phrasing: intent: Get a release group effect: read questions: - What is in a specific release group? - How do I look up one release group by ID? instructions: - text: Show release group {id}. slots: id: path.id - text: Get the details of release group {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/release_groups/{id}'].patch update: x-apievangelist-phrasing: intent: Show or hide a release group effect: write questions: - Can I hide a release group from my releases dashboard? - How do I make a hidden release group visible again? instructions: - text: Set release group {id} visible to {visible}. slots: id: path.id visible: requestBody.visible - text: Hide release group {id} by setting visible {visible}. slots: id: path.id visible: requestBody.visible method: generated generated: '2026-09-26' - target: $.paths['/release_groups/{release_group_id}/releases'].get update: x-apievangelist-phrasing: intent: List releases in a release group effect: read questions: - Which individual releases belong to a release group? - Can I page through the builds inside one release group? instructions: - text: List releases in release group {release_group_id}. slots: release_group_id: path.release_group_id - text: Show {per_page} releases per page from release group {release_group_id}. slots: per_page: query.per_page release_group_id: path.release_group_id method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/event_data_requests'].post update: x-apievangelist-phrasing: intent: Request a project event data export effect: write questions: - How do I export all event data for one project? - Can I export a single project's events matching a filter for a data access request? instructions: - text: Start an event data export for project {project_id} with filters {filters}. slots: project_id: path.project_id filters: requestBody.filters - text: Request a {report_type} export of project {project_id} events matching {filters}. slots: report_type: requestBody.report_type project_id: path.project_id filters: requestBody.filters method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/event_data_requests/{id}'].get update: x-apievangelist-phrasing: intent: Check a project export's status effect: read questions: - Is my project's event data export ready yet? - How do I get the download link for a finished project export? instructions: - text: Check export request {id} for project {project_id}. slots: id: path.id project_id: path.project_id - text: Get the status of project {project_id} data request {id}. slots: project_id: path.project_id id: path.id method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/event_data_deletions'].post update: x-apievangelist-phrasing: intent: Request deletion of a project's events effect: destructive questions: - How do I delete a specific user's events from one project? - Do name and email filters in a project deletion use substring matching? instructions: - text: Request deletion of events matching {filters} in project {project_id}. slots: filters: requestBody.filters project_id: path.project_id - text: Delete project {project_id} events matching {filters} with skip confirmation {skip_confirmation}. slots: project_id: path.project_id filters: requestBody.filters skip_confirmation: requestBody.skip_confirmation method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/event_data_deletions/{id}/confirm'].post update: x-apievangelist-phrasing: intent: Confirm a project event deletion effect: destructive questions: - How do I confirm a pending event deletion in a project? - Does a project event deletion run before I confirm it? instructions: - text: Confirm deletion request {id} in project {project_id}. slots: id: path.id project_id: path.project_id - text: Go ahead with project {project_id} event deletion {id}. slots: project_id: path.project_id id: path.id method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/event_data_deletions/{id}'].get update: x-apievangelist-phrasing: intent: Check a project deletion's status effect: read questions: - Has my project event deletion completed? - How do I track progress of a deletion request in a project? instructions: - text: Check deletion request {id} in project {project_id}. slots: id: path.id project_id: path.project_id - text: Show the status of project {project_id} event deletion {id}. slots: project_id: path.project_id id: path.id method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/feature_flags'].get update: x-apievangelist-phrasing: intent: List a project's feature flags effect: read questions: - Which feature flags have been seen in my production release stage? - Can I list feature flags first seen after a certain date? - Is there a way to include inactive flags in the feature flag list? instructions: - text: List feature flags in project {project_id} for stage {release_stage_name}. slots: project_id: path.project_id release_stage_name: query.release_stage_name - text: Search feature flags in project {project_id} stage {release_stage_name} for {q}. slots: project_id: path.project_id release_stage_name: query.release_stage_name q: query.q method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/feature_flag_summaries'].get update: x-apievangelist-phrasing: intent: List feature flag summaries effect: read questions: - Can I get a lightweight list of feature flag names for a project? - How do I search feature flag summaries by name? instructions: - text: List feature flag summaries for project {project_id}. slots: project_id: path.project_id - text: Find feature flag summaries in project {project_id} matching {q}. slots: project_id: path.project_id q: query.q method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/feature_flags/{id}'].get update: x-apievangelist-phrasing: intent: Get a feature flag effect: read questions: - What do we know about a single feature flag in production? - Can I include a variant summary when fetching one feature flag? instructions: - text: Show feature flag {id} in project {project_id} for stage {release_stage_name}. slots: id: path.id project_id: path.project_id release_stage_name: query.release_stage_name - text: Get flag {id} in project {project_id} stage {release_stage_name} with variant summary {include_variant_summary}. slots: id: path.id project_id: path.project_id release_stage_name: query.release_stage_name include_variant_summary: query.include_variant_summary method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/feature_flags/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a feature flag effect: destructive questions: - Can I remove a retired feature flag from a project? - How do I delete a feature flag record? instructions: - text: Delete feature flag {id} from project {project_id}. slots: id: path.id project_id: path.project_id - text: Remove the retired flag {id} in project {project_id}. slots: id: path.id project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/feature_flags/{id}/error_overview'].get update: x-apievangelist-phrasing: intent: Get errors linked to a feature flag effect: read questions: - Is a feature flag causing new errors in production? - How many errors occur while a particular flag is on? instructions: - text: Show the error overview for feature flag {id} in project {project_id} stage {release_stage_name}. slots: id: path.id project_id: path.project_id release_stage_name: query.release_stage_name - text: Check whether flag {id} in project {project_id} is driving errors in {release_stage_name}. slots: id: path.id project_id: path.project_id release_stage_name: query.release_stage_name method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/feature_flags/{id}/variants/error_overview'].get update: x-apievangelist-phrasing: intent: Compare errors across flag variants effect: read questions: - Which variant of an experiment produces more errors? - Can I compare error rates for specific feature flag variants? instructions: - text: Compare errors for variants {variant_ids} of flag {id} in project {project_id} stage {release_stage_name}. slots: variant_ids: query.variant_ids id: path.id project_id: path.project_id release_stage_name: query.release_stage_name - text: Show the variant error overview for flag {id} in project {project_id}, variants {variant_ids}, stage {release_stage_name}. slots: id: path.id project_id: path.project_id variant_ids: query.variant_ids release_stage_name: query.release_stage_name method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/feature_flags/{id}/variants'].get update: x-apievangelist-phrasing: intent: List a flag's variants by flag ID effect: read questions: - What variants exist for a feature flag when I have its ID? - Can I search a flag's variants by value? instructions: - text: List variants of feature flag {id} in project {project_id}. slots: id: path.id project_id: path.project_id - text: Search variants of flag ID {id} in project {project_id} for {q}. slots: id: path.id project_id: path.project_id q: query.q method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/feature_flags/by_name/{name}/variants'].get update: x-apievangelist-phrasing: intent: List a flag's variants by flag name effect: read questions: - Can I look up a feature flag's variants using its name instead of an ID? - Which variants of a named flag appeared in production? instructions: - text: List variants of the flag named {name} in project {project_id}. slots: name: path.name project_id: path.project_id - text: Show variants for flag {name} in project {project_id} in stage {release_stage_name}. slots: name: path.name project_id: path.project_id release_stage_name: query.release_stage_name method: generated generated: '2026-09-26' - target: $.paths['/user/projects/{project_id}/starred_feature_flags'].post update: x-apievangelist-phrasing: intent: Star a feature flag effect: write questions: - How do I pin a feature flag to the top of my list? - Can I star flags I want to keep an eye on? instructions: - text: Star feature flag {feature_flag_id} in project {project_id}. slots: feature_flag_id: requestBody.feature_flag_id project_id: path.project_id - text: Add flag {feature_flag_id} to my starred flags for project {project_id}. slots: feature_flag_id: requestBody.feature_flag_id project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/user/projects/{project_id}/starred_feature_flags/{id}'].delete update: x-apievangelist-phrasing: intent: Unstar a feature flag effect: destructive questions: - How do I unstar a feature flag? - Can I remove a flag from my starred list? instructions: - text: Unstar feature flag {id} in project {project_id}. slots: id: path.id project_id: path.project_id - text: Take flag {id} off my starred list in project {project_id}. slots: id: path.id project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/error_assignment_rules'].put update: x-apievangelist-phrasing: intent: Replace a project's error assignment rules effect: write questions: - How do I automatically assign new errors to the right person? - What happens to existing assignment rules if I send an empty list? instructions: - text: Replace project {project_id}'s error assignment rules with {assignment_rules}. slots: project_id: path.project_id assignment_rules: requestBody.assignment_rules - text: Clear all error assignment rules on project {project_id}. slots: project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/span_groups'].get update: x-apievangelist-phrasing: intent: List a project's span groups effect: read questions: - Which operations are being tracked for performance in my project? - Can I list only my starred span groups sorted by duration? instructions: - text: List span groups in project {project_id}. slots: project_id: path.project_id - text: List span groups in project {project_id} sorted by {sort}, starred only {starred_only}. slots: project_id: path.project_id sort: query.sort starred_only: query.starred_only method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/span_groups/{id}'].get update: x-apievangelist-phrasing: intent: Show a span group's statistics effect: read questions: - What are the performance statistics for one span group? - Why would a span group come back with empty statistics? instructions: - text: Show span group {id} in project {project_id}. slots: id: path.id project_id: path.project_id - text: Get stats for span group {id} in project {project_id} filtered by {filters}. slots: id: path.id project_id: path.project_id filters: query.filters method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/span_groups/{id}'].patch update: x-apievangelist-phrasing: intent: Star or unstar a span group effect: write questions: - How do I star a span group so I can find it quickly? - Can I unstar a span group I no longer watch? instructions: - text: Set span group {id} in project {project_id} starred to {is_starred}. slots: id: path.id project_id: path.project_id is_starred: requestBody.is_starred - text: Star span group {id} in project {project_id} (is_starred {is_starred}). slots: id: path.id project_id: path.project_id is_starred: requestBody.is_starred method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/span_group_summaries'].get update: x-apievangelist-phrasing: intent: List span group summaries effect: read questions: - Can I get a compact summary of every span group in a project? - How do I page through span group summaries with a filter? instructions: - text: List span group summaries for project {project_id}. slots: project_id: path.project_id - text: Summarize span groups in project {project_id} matching {filters}. slots: project_id: path.project_id filters: query.filters method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/span_groups/{id}/timeline'].get update: x-apievangelist-phrasing: intent: Get a span group's performance over time effect: read questions: - How has a span group's duration changed over time? - Can I chart the timeline of one span group? instructions: - text: Show the timeline for span group {id} in project {project_id}. slots: id: path.id project_id: path.project_id - text: Chart span group {id} over time in project {project_id} filtered by {filters}. slots: id: path.id project_id: path.project_id filters: query.filters method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/span_groups/{id}/distribution'].get update: x-apievangelist-phrasing: intent: Get a span group's duration distribution effect: read questions: - What does the duration distribution look like for a span group? - How spread out are the timings of one operation? instructions: - text: Show the duration distribution of span group {id} in project {project_id}. slots: id: path.id project_id: path.project_id - text: Get the histogram of timings for span group {id} in project {project_id} matching {filters}. slots: id: path.id project_id: path.project_id filters: query.filters method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/starred_span_groups'].get update: x-apievangelist-phrasing: intent: List my starred span groups effect: read questions: - Which span groups have I starred in a project? - Can I filter my starred span groups by performance category? instructions: - text: List my starred span groups in project {project_id}. slots: project_id: path.project_id - text: Show my starred span groups in project {project_id} for categories {categories}. slots: project_id: path.project_id categories: query.categories method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/span_groups/{id}/performance_targets'].get update: x-apievangelist-phrasing: intent: List a span group's performance targets effect: read questions: - What performance targets are set for a span group? - Is a span group meeting its configured target thresholds? instructions: - text: List performance targets for span group {id} in project {project_id}. slots: id: path.id project_id: path.project_id - text: Show the target thresholds on span group {id} in project {project_id}. slots: id: path.id project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/span_group_categories/{category}/span_groups/{name}/spans'].get update: x-apievangelist-phrasing: intent: Get spans by span group category and name effect: read questions: - How do I get spans for a span group when I know its category and name but not its ID? - Can I fetch spans for a named network request group? instructions: - text: Get spans for span group {name} in category {category} of project {project_id}. slots: name: path.name category: path.category project_id: path.project_id - text: Show the {category} spans named {name} in project {project_id}. slots: category: path.category name: path.name project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/span_groups/{id}/spans'].get update: x-apievangelist-phrasing: intent: List spans in a span group by ID effect: read questions: - Can I see the individual spans recorded for a span group ID? - How do I sort the spans in a span group by duration? instructions: - text: List spans in span group {id} of project {project_id}. slots: id: path.id project_id: path.project_id - text: List spans for span group ID {id} in project {project_id} sorted by {sort} {direction}. slots: id: path.id project_id: path.project_id sort: query.sort direction: query.direction method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/traces/{trace_id}/spans'].get update: x-apievangelist-phrasing: intent: List a trace's spans in a project effect: read questions: - How do I see every span in one trace within a project? - What time window do I need to give to fetch a trace's spans? instructions: - text: List spans for trace {trace_id} in project {project_id} between {from} and {to}. slots: trace_id: path.trace_id project_id: path.project_id from: query.from to: query.to - text: Show project {project_id} trace {trace_id} focused on span {target_span_id} from {from} to {to}. slots: project_id: path.project_id trace_id: path.trace_id target_span_id: query.target_span_id from: query.from to: query.to method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/page_load_span_groups'].get update: x-apievangelist-phrasing: intent: List page load span groups effect: read questions: - Which pages in my web app load slowest? - Can I list only starred page load span groups? instructions: - text: List page load span groups in project {project_id}. slots: project_id: path.project_id - text: List page loads in project {project_id} sorted by {sort}, starred only {starred_only}. slots: project_id: path.project_id sort: query.sort starred_only: query.starred_only method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/page_load_span_groups/{id}'].get update: x-apievangelist-phrasing: intent: Show a page load span group effect: read questions: - How fast does one particular page load for my users? - Can I filter one page load group's metrics? instructions: - text: Show page load span group {id} in project {project_id}. slots: id: path.id project_id: path.project_id - text: Get page load metrics for group {id} in project {project_id} filtered by {filters}. slots: id: path.id project_id: path.project_id filters: query.filters method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/trace_fields'].get update: x-apievangelist-phrasing: intent: List a project's trace fields effect: read questions: - Which fields can I filter spans and span groups by? - What trace fields are available on my project? instructions: - text: List trace fields for project {project_id}. slots: project_id: path.project_id - text: Show the span filter fields available in project {project_id}. slots: project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/network_endpoint_grouping'].get update: x-apievangelist-phrasing: intent: Get network request grouping rules effect: read questions: - How are my network requests grouped into endpoints for performance? - What URL grouping rules does my project use? instructions: - text: Show the network grouping ruleset for project {project_id}. slots: project_id: path.project_id - text: Get project {project_id}'s endpoint grouping rules. slots: project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/network_endpoint_grouping'].put update: x-apievangelist-phrasing: intent: Set network request grouping rules effect: write questions: - Can I group network requests with IDs in the URL into one endpoint? - How do I change the endpoint patterns used to group network spans? instructions: - text: Set project {project_id}'s network grouping endpoints to {endpoints}. slots: project_id: path.project_id endpoints: requestBody.endpoints - text: Replace the endpoint grouping rules on project {project_id} with {endpoints}. slots: project_id: path.project_id endpoints: requestBody.endpoints method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/performance_overview'].get update: x-apievangelist-phrasing: intent: Get a project's performance score effect: read questions: - What is my project's overall performance score? - Can I see the performance score for production only? instructions: - text: Show the performance score for project {project_id}. slots: project_id: path.project_id - text: Get project {project_id}'s performance overview in stage {release_stage_name}. slots: project_id: path.project_id release_stage_name: query.release_stage_name method: generated generated: '2026-09-26'