# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Flagsmith Features API version: 1.0.0 extends: openapi/flagsmith-features-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: 41 - target: $.paths['/projects/{project_id}/features/'].get update: x-apievangelist-phrasing: intent: List a project's feature flags effect: read questions: - What feature flags are defined in my Flagsmith project? - Can I see each flag's type, description and default value across a project? instructions: - text: List all feature flags in project {project_id}. slots: project_id: path.project_id - text: Show the names and default values of every flag in project {project_id}. slots: project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/features/'].post update: x-apievangelist-phrasing: intent: Create a feature flag effect: write questions: - How do I add a new feature flag that shows up in every environment? - Can a new flag start enabled with an initial value? - Is it possible to tag a feature when I create it? instructions: - text: Create a feature flag named {name} in project {project_id}. slots: name: requestBody.name project_id: path.project_id - text: Add flag {name} to project {project_id}, enabled by default {default_enabled}, with initial value {initial_value}. slots: name: requestBody.name project_id: path.project_id default_enabled: requestBody.default_enabled initial_value: requestBody.initial_value method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/features/{feature_id}/'].get update: x-apievangelist-phrasing: intent: Get a feature flag's details effect: read questions: - How is a specific feature flag configured, including its multivariate options? - Can I look up one flag in a project by its ID? instructions: - text: Get feature {feature_id} in project {project_id}. slots: feature_id: path.feature_id project_id: path.project_id - text: Show the configuration and variants of flag {feature_id} from project {project_id}. slots: feature_id: path.feature_id project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/features/{feature_id}/'].put update: x-apievangelist-phrasing: intent: Replace a feature flag (unversioned path) effect: write questions: - How do I rename a feature flag or change its type with a full update? - Can I archive a flag by sending the whole feature on the unversioned PUT? instructions: - text: Fully update feature {feature_id} in project {project_id} with name {name}. slots: feature_id: path.feature_id project_id: path.project_id name: requestBody.name - text: Replace flag {feature_id} in {project_id} as {name}, archived {is_archived}. slots: feature_id: path.feature_id project_id: path.project_id name: requestBody.name is_archived: requestBody.is_archived method: generated generated: '2026-09-26' - target: $.paths['/projects/{project_id}/features/{feature_id}/'].delete update: x-apievangelist-phrasing: intent: Delete a feature flag (unversioned path) effect: destructive questions: - How do I permanently remove a feature flag from all environments using the unversioned route? - Can deleting a flag be undone? instructions: - text: Permanently delete feature {feature_id} from project {project_id} via the unversioned endpoint. slots: feature_id: path.feature_id project_id: path.project_id - text: Remove flag {feature_id} from every environment in project {project_id}, non-v1 route. slots: feature_id: path.feature_id project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/environments/{environment_api_key}/featurestates/'].get update: x-apievangelist-phrasing: intent: List feature states in an environment effect: read questions: - Which flags are on or off in my production environment and with what values? - Can I see every feature state for one environment? instructions: - text: List feature states for environment {environment_api_key}. slots: environment_api_key: path.environment_api_key - text: Show which features are enabled in {environment_api_key} and their values. slots: environment_api_key: path.environment_api_key method: generated generated: '2026-09-26' - target: $.paths['/environments/{environment_api_key}/featurestates/{feature_state_id}/'].patch update: x-apievangelist-phrasing: intent: Toggle a flag or change its value in an environment effect: write questions: - How do I turn a flag on in just one environment? - Can I change a feature's value in staging without touching production? instructions: - text: Set feature state {feature_state_id} in {environment_api_key} to enabled {enabled}. slots: feature_state_id: path.feature_state_id environment_api_key: path.environment_api_key enabled: requestBody.enabled - text: Change the value of feature state {feature_state_id} in environment {environment_api_key} to {feature_state_value}. slots: feature_state_id: path.feature_state_id environment_api_key: path.environment_api_key feature_state_value: requestBody.feature_state_value method: generated generated: '2026-09-26' - target: $.paths['/api/v1/environments/{environment_pk}/features/{feature_pk}/versions/{id}/'].delete update: x-apievangelist-phrasing: intent: Delete a feature version in an environment effect: destructive questions: - Can I delete a specific version of a feature's state in an environment? - How do I discard a feature version I no longer want? instructions: - text: Delete version {id} of feature {feature_pk} in environment {environment_pk}. slots: id: path.id feature_pk: path.feature_pk environment_pk: path.environment_pk - text: Discard feature {feature_pk}'s version {id} from environment {environment_pk}. slots: id: path.id feature_pk: path.feature_pk environment_pk: path.environment_pk method: generated generated: '2026-09-26' - target: $.paths['/api/v1/features/create-feature-export/'].post update: x-apievangelist-phrasing: intent: Export features by tag effect: write questions: - How do I export an environment's features so I can import them elsewhere? - Can I limit a feature export to certain tags? instructions: - text: Export features from environment {environment_id} tagged {tag_ids}. slots: environment_id: requestBody.environment_id tag_ids: requestBody.tag_ids - text: Start a feature export for environment {environment_id} covering tags {tag_ids}. slots: environment_id: requestBody.environment_id tag_ids: requestBody.tag_ids method: generated generated: '2026-09-26' - target: $.paths['/api/v1/features/download-feature-export/{feature_export_id}/'].get update: x-apievangelist-phrasing: intent: Download a feature export file effect: read questions: - Where do I download the file from a feature export I created? - Can I fetch a finished feature export by its ID? instructions: - text: Download feature export {feature_export_id}. slots: feature_export_id: path.feature_export_id - text: Get the export file for feature export {feature_export_id}. slots: feature_export_id: path.feature_export_id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/features/download-flagsmith-on-flagsmith/'].get update: x-apievangelist-phrasing: intent: Download the Flagsmith-on-Flagsmith export effect: read questions: - How do I get the feature export that enables Flagsmith on Flagsmith? - Is there a ready-made export for running Flagsmith's own flags? instructions: - text: Download the Flagsmith on Flagsmith feature export. - text: Fetch the export file used to set up Flagsmith on Flagsmith. method: generated generated: '2026-09-26' - target: $.paths['/api/v1/features/feature-import/{environment_id}'].post update: x-apievangelist-phrasing: intent: Import features into an environment effect: write questions: - How do I load an exported features file into another environment? - Can an import skip existing features, or does it overwrite them? instructions: - text: Import feature file {file} into environment {environment_id} using strategy {strategy}. slots: file: requestBody.file environment_id: path.environment_id strategy: requestBody.strategy - text: Upload {file} to environment {environment_id} and skip features that already exist, strategy {strategy}. slots: file: requestBody.file environment_id: path.environment_id strategy: requestBody.strategy method: generated generated: '2026-09-26' - target: $.paths['/api/v1/features/feature-segments/'].post update: x-apievangelist-phrasing: intent: Add a segment override to a feature effect: write questions: - How do I target a segment with its own setting for a feature in one environment? - Can I set the priority of a new segment override? instructions: - text: Create a segment override for feature {feature} and segment {segment} in environment {environment}. slots: feature: requestBody.feature segment: requestBody.segment environment: requestBody.environment - text: Link segment {segment} to feature {feature} in {environment} at priority {priority}. slots: segment: requestBody.segment feature: requestBody.feature environment: requestBody.environment priority: requestBody.priority method: generated generated: '2026-09-26' - target: $.paths['/api/v1/features/feature-segments/{id}/'].get update: x-apievangelist-phrasing: intent: Get a feature segment override effect: read questions: - Which feature, segment and priority does a given segment override have? - Can I look up a feature segment by its numeric ID? instructions: - text: Get feature segment {id}. slots: id: path.id - text: Show the feature, segment and priority for feature segment {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/features/feature-segments/{id}/'].put update: x-apievangelist-phrasing: intent: Replace a feature segment override effect: write questions: - How do I fully replace a feature segment with a new feature, segment and environment? - Does a full feature segment update need all three of feature, segment and environment? instructions: - text: Replace feature segment {id} with feature {feature}, segment {segment}, environment {environment}. slots: id: path.id feature: requestBody.feature segment: requestBody.segment environment: requestBody.environment - text: Overwrite feature segment {id} so it targets segment {segment} for feature {feature} in {environment}. slots: id: path.id segment: requestBody.segment feature: requestBody.feature environment: requestBody.environment method: generated generated: '2026-09-26' - target: $.paths['/api/v1/features/feature-segments/{id}/'].patch update: x-apievangelist-phrasing: intent: Change a single feature segment's priority effect: write questions: - Can I move one segment override up in priority without resending everything? - How do I tweak just one field of a feature segment? instructions: - text: Set feature segment {id} to priority {priority}. slots: id: path.id priority: requestBody.priority - text: Partially update feature segment {id}, pointing it at segment {segment}. slots: id: path.id segment: requestBody.segment method: generated generated: '2026-09-26' - target: $.paths['/api/v1/features/feature-segments/get-by-uuid/{uuid}/'].get update: x-apievangelist-phrasing: intent: Look up a feature segment by UUID effect: read questions: - Can I find a feature segment override if I only have its UUID? - What endpoint resolves a feature segment UUID? instructions: - text: Get the feature segment with UUID {uuid}. slots: uuid: path.uuid - text: Resolve feature segment UUID {uuid} to its override details. slots: uuid: path.uuid method: generated generated: '2026-09-26' - target: $.paths['/api/v1/features/feature-segments/update-priorities/'].post update: x-apievangelist-phrasing: intent: Reorder segment override priorities effect: write questions: - How do I reorder several segment overrides at once? - Can I bulk update the priorities of feature segments? instructions: - text: Update the priorities of these feature segments in one call. - text: Reorder segment overrides so the new priority order applies. method: generated generated: '2026-09-26' - target: $.paths['/api/v1/features/get-by-uuid/{uuid}/'].get update: x-apievangelist-phrasing: intent: Look up a feature by UUID effect: read questions: - Can I find a feature flag when I only know its UUID? - Which endpoint resolves a feature UUID to the feature? instructions: - text: Get the feature with UUID {uuid}. slots: uuid: path.uuid - text: Resolve feature UUID {uuid} to its flag details. slots: uuid: path.uuid method: generated generated: '2026-09-26' - target: $.paths['/api/v1/features/workflows/change-requests/{id}/'].get update: x-apievangelist-phrasing: intent: Get a change request effect: read questions: - What flag changes and approvals are in a specific change request? - Can I check whether a change request has been committed yet? instructions: - text: Get change request {id}. slots: id: path.id - text: Show the approvals and feature states in change request {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/features/workflows/change-requests/{id}/'].put update: x-apievangelist-phrasing: intent: Replace a change request effect: write questions: - How do I rewrite a change request's title and proposed feature states entirely? - Does a full change request update require the feature states list? instructions: - text: Replace change request {id} with title {title} and feature states {feature_states}. slots: id: path.id title: requestBody.title feature_states: requestBody.feature_states - text: Overwrite change request {id} as {title}, ignoring conflicts {ignore_conflicts}, with states {feature_states}. slots: id: path.id title: requestBody.title ignore_conflicts: requestBody.ignore_conflicts feature_states: requestBody.feature_states method: generated generated: '2026-09-26' - target: $.paths['/api/v1/features/workflows/change-requests/{id}/'].delete update: x-apievangelist-phrasing: intent: Delete a change request effect: destructive questions: - How do I throw away a change request that's no longer needed? - Can I delete a pending change request? instructions: - text: Delete change request {id}. slots: id: path.id - text: Discard pending change request {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/features/workflows/change-requests/{id}/'].patch update: x-apievangelist-phrasing: intent: Edit a change request's details effect: write questions: - Can I just fix the title or description of a change request? - Is there a way to update only a change request's description? instructions: - text: Rename change request {id} to {title}. slots: id: path.id title: requestBody.title - text: Set the description of change request {id} to {description}. slots: id: path.id description: requestBody.description method: generated generated: '2026-09-26' - target: $.paths['/api/v1/features/workflows/change-requests/{id}/approve/'].post update: x-apievangelist-phrasing: intent: Approve a change request effect: write questions: - How do I sign off on a flag change request as a reviewer? - Can I approve someone else's change request through the API? instructions: - text: Approve change request {id}. slots: id: path.id - text: Add my approval to change request {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/features/workflows/change-requests/{id}/commit/'].post update: x-apievangelist-phrasing: intent: Commit a change request effect: write questions: - How do I apply an approved change request so the flag changes go live? - What makes a change request's feature states take effect? instructions: - text: Commit change request {id}. slots: id: path.id - text: Apply the approved changes in change request {id} now. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/flags/{feature_id}/multivariate-options/'].get update: x-apievangelist-phrasing: intent: List a feature's multivariate options effect: read questions: - What variants does a multivariate flag have? - Can I see all the variant values and allocations for a feature? instructions: - text: List multivariate options for feature {feature_id}. slots: feature_id: path.feature_id - text: Show every variant of flag {feature_id} with its percentage allocation. slots: feature_id: path.feature_id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/multivariate/options/get-by-uuid/{uuid}/'].get update: x-apievangelist-phrasing: intent: Look up a multivariate option by UUID effect: read questions: - Can I find a flag variant if I only have its UUID? - Which endpoint resolves a multivariate option UUID? instructions: - text: Get the multivariate option with UUID {uuid}. slots: uuid: path.uuid - text: Resolve variant UUID {uuid} to its value. slots: uuid: path.uuid method: generated generated: '2026-09-26' - target: $.paths['/api/v1/projects/{project_pk}/features/{feature_pk}/feature-external-resources/'].post update: x-apievangelist-phrasing: intent: Link an external resource to a feature effect: write questions: - How do I attach an issue or pull request link to a feature flag? - Can a feature flag track external resources like tickets? instructions: - text: Link {url} of type {type} to feature {feature_pk} in project {project_pk}. slots: url: requestBody.url type: requestBody.type feature_pk: path.feature_pk project_pk: path.project_pk - text: Attach external resource {url} to flag {feature} under feature {feature_pk}, project {project_pk}, as {type}. slots: url: requestBody.url feature: requestBody.feature feature_pk: path.feature_pk project_pk: path.project_pk type: requestBody.type method: generated generated: '2026-09-26' - target: $.paths['/api/v1/projects/{project_pk}/features/{feature_pk}/feature-external-resources/{id}/'].get update: x-apievangelist-phrasing: intent: Get a feature's external resource link effect: read questions: - What URL and type is stored on a specific external resource of a feature? - Can I look up one linked issue on a feature by its ID? instructions: - text: Get external resource {id} on feature {feature_pk} in project {project_pk}. slots: id: path.id feature_pk: path.feature_pk project_pk: path.project_pk - text: Show linked resource {id} for flag {feature_pk}, project {project_pk}. slots: id: path.id feature_pk: path.feature_pk project_pk: path.project_pk method: generated generated: '2026-09-26' - target: $.paths['/api/v1/projects/{project_pk}/features/{feature_pk}/feature-external-resources/{id}/'].put update: x-apievangelist-phrasing: intent: Replace a feature's external resource link effect: write questions: - How do I fully replace an external resource linked to a feature? - Does replacing a linked resource need its URL, type and feature again? instructions: - text: Replace external resource {id} on feature {feature_pk} in {project_pk} with {url} of type {type} for flag {feature}. slots: id: path.id feature_pk: path.feature_pk project_pk: path.project_pk url: requestBody.url type: requestBody.type feature: requestBody.feature - text: Overwrite linked resource {id} of flag {feature_pk}, project {project_pk}, with URL {url}. slots: id: path.id feature_pk: path.feature_pk project_pk: path.project_pk url: requestBody.url method: generated generated: '2026-09-26' - target: $.paths['/api/v1/projects/{project_pk}/features/{feature_pk}/feature-external-resources/{id}/'].delete update: x-apievangelist-phrasing: intent: Unlink an external resource from a feature effect: destructive questions: - How do I remove an issue link from a feature flag? - Can I delete an external resource attached to a feature? instructions: - text: Delete external resource {id} from feature {feature_pk} in project {project_pk}. slots: id: path.id feature_pk: path.feature_pk project_pk: path.project_pk - text: Unlink resource {id} from flag {feature_pk}, project {project_pk}. slots: id: path.id feature_pk: path.feature_pk project_pk: path.project_pk method: generated generated: '2026-09-26' - target: $.paths['/api/v1/projects/{project_pk}/features/{feature_pk}/feature-external-resources/{id}/'].patch update: x-apievangelist-phrasing: intent: Edit a feature's external resource link effect: write questions: - Can I change only the metadata on a feature's linked resource? - Is there a way to update just the URL of an external resource on a flag? instructions: - text: Set the metadata of external resource {id} on feature {feature_pk}, project {project_pk}, to {metadata}. slots: id: path.id feature_pk: path.feature_pk project_pk: path.project_pk metadata: requestBody.metadata - text: Change only the URL of linked resource {id} on flag {feature_pk} in {project_pk} to {url}. slots: id: path.id feature_pk: path.feature_pk project_pk: path.project_pk url: requestBody.url method: generated generated: '2026-09-26' - target: $.paths['/api/v1/projects/{project_pk}/features/{feature_pk}/mv-options/{id}/'].get update: x-apievangelist-phrasing: intent: Get one multivariate option of a feature effect: read questions: - What value and default allocation does a specific variant of my flag have? - Can I fetch one multivariate option by ID within a project feature? instructions: - text: Get multivariate option {id} of feature {feature_pk} in project {project_pk}. slots: id: path.id feature_pk: path.feature_pk project_pk: path.project_pk - text: Show variant {id} for flag {feature_pk}, project {project_pk}. slots: id: path.id feature_pk: path.feature_pk project_pk: path.project_pk method: generated generated: '2026-09-26' - target: $.paths['/api/v1/projects/{project_pk}/features/{feature_pk}/mv-options/{id}/'].patch update: x-apievangelist-phrasing: intent: Edit a multivariate option effect: write questions: - How do I change a variant's default percentage allocation? - Can I update the string value of one flag variant? instructions: - text: Set variant {id} of feature {feature_pk} in {project_pk} to {default_percentage_allocation} percent. slots: id: path.id feature_pk: path.feature_pk project_pk: path.project_pk default_percentage_allocation: requestBody.default_percentage_allocation - text: Change multivariate option {id} on flag {feature_pk}, project {project_pk}, to string value {string_value}. slots: id: path.id feature_pk: path.feature_pk project_pk: path.project_pk string_value: requestBody.string_value method: generated generated: '2026-09-26' - target: $.paths['/api/v1/projects/{project_pk}/features/{id}/'].delete update: x-apievangelist-phrasing: intent: Delete a feature flag (v1) effect: destructive questions: - How do I delete a feature from a project using the v1 API? - Which v1 endpoint removes a project feature by ID? instructions: - text: Delete feature {id} from project {project_pk} with the v1 API. slots: id: path.id project_pk: path.project_pk - text: Remove v1 project feature {id} in {project_pk}. slots: id: path.id project_pk: path.project_pk method: generated generated: '2026-09-26' - target: $.paths['/api/v1/projects/{project_pk}/features/{id}/'].patch update: x-apievangelist-phrasing: intent: Edit a feature flag's fields (v1) effect: write questions: - Can I change just a flag's description or lifecycle stage without resending the whole feature? - How do I mark a feature as server-key-only? instructions: - text: Update the description of feature {id} in project {project_pk} to {description}. slots: id: path.id project_pk: path.project_pk description: requestBody.description - text: Set is_server_key_only to {is_server_key_only} on feature {id}, project {project_pk}. slots: is_server_key_only: requestBody.is_server_key_only id: path.id project_pk: path.project_pk method: generated generated: '2026-09-26' - target: $.paths['/api/v1/projects/{project_pk}/features/{id}/add-group-owners/'].post update: x-apievangelist-phrasing: intent: Add group owners to a feature effect: write questions: - How do I make a team group an owner of a feature flag? - Can I assign several groups as owners of a flag at once? instructions: - text: Add groups {group_ids} as owners of feature {id} in project {project_pk}. slots: group_ids: requestBody.group_ids id: path.id project_pk: path.project_pk - text: Make groups {group_ids} own flag {id}, project {project_pk}. slots: group_ids: requestBody.group_ids id: path.id project_pk: path.project_pk method: generated generated: '2026-09-26' - target: $.paths['/api/v1/projects/{project_pk}/features/{id}/add-owners/'].post update: x-apievangelist-phrasing: intent: Add user owners to a feature effect: write questions: - How do I set individual people as owners of a feature flag? - Can I add multiple users as flag owners in one request? instructions: - text: Add users {user_ids} as owners of feature {id} in project {project_pk}. slots: user_ids: requestBody.user_ids id: path.id project_pk: path.project_pk - text: Make users {user_ids} owners of flag {id}, project {project_pk}. slots: user_ids: requestBody.user_ids id: path.id project_pk: path.project_pk method: generated generated: '2026-09-26' - target: $.paths['/api/v1/projects/{project_pk}/features/{id}/influx-data/'].get update: x-apievangelist-phrasing: intent: Get a feature's evaluation data (deprecated) effect: read questions: - How often was a flag evaluated in an environment over a period, via the older influx-data endpoint? - Can I aggregate a feature's evaluation counts by time bucket? instructions: - text: Get influx evaluation data for feature {id} in project {project_pk} for environment {environment_id}. slots: id: path.id project_pk: path.project_pk environment_id: query.environment_id - text: Show flag {id} evaluations in env {environment_id}, project {project_pk}, over {period} aggregated every {aggregate_every}. slots: id: path.id environment_id: query.environment_id project_pk: path.project_pk period: query.period aggregate_every: query.aggregate_every method: generated generated: '2026-09-26' - target: $.paths['/api/v1/projects/{project_pk}/features/{id}/remove-group-owners/'].post update: x-apievangelist-phrasing: intent: Remove group owners from a feature effect: write questions: - How do I take a group off a feature flag's owners? - Can I remove several owning groups from a flag at once? instructions: - text: Remove groups {group_ids} as owners of feature {id} in project {project_pk}. slots: group_ids: requestBody.group_ids id: path.id project_pk: path.project_pk - text: Stop groups {group_ids} owning flag {id}, project {project_pk}. slots: group_ids: requestBody.group_ids id: path.id project_pk: path.project_pk method: generated generated: '2026-09-26' - target: $.paths['/api/v1/projects/{project_pk}/features/{id}/remove-owners/'].post update: x-apievangelist-phrasing: intent: Remove user owners from a feature effect: write questions: - How do I remove a person as an owner of a feature flag? - Can I drop multiple users from a flag's owners together? instructions: - text: Remove users {user_ids} as owners of feature {id} in project {project_pk}. slots: user_ids: requestBody.user_ids id: path.id project_pk: path.project_pk - text: Take users {user_ids} off the owners of flag {id}, project {project_pk}. slots: user_ids: requestBody.user_ids id: path.id project_pk: path.project_pk method: generated generated: '2026-09-26'