Optimizely · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Optimizely Groups API
13 actions
13 updates
phrasing
extends
openapi/optimizely-groups-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Optimizely's API. It is a proposal applied on top of the contract, not a document Optimizely publishes.
What the actions change
x-apievangelist-phrasing
Targets 13
$.info
$.paths['/projects/{project_id}/groups'].get
$.paths['/projects/{project_id}/groups'].post
$.paths['/projects/{project_id}/groups'].patch
$.paths['/projects/{project_id}/groups/archived'].post
$.paths['/projects/{project_id}/groups/unarchived'].post
$.paths['/projects/{project_id}/groups/{group_id}'].get
$.paths['/projects/{project_id}/groups/{group_id}'].delete
$.paths['/groups'].get
$.paths['/groups'].post
$.paths['/groups/{group_id}'].get
$.paths['/groups/{group_id}'].delete
$.paths['/groups/{group_id}'].patch
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Optimizely Groups API
version: 1.0.0
extends: openapi/optimizely-groups-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: 12
- target: $.paths['/projects/{project_id}/groups'].get
update:
x-apievangelist-phrasing:
intent: List a project's exclusion groups by environment
effect: read
questions:
- Which exclusion groups exist in my Feature Experimentation project for a given environment?
- Can I search exclusion groups by name and show only enabled ones?
- Is there a way to page through exclusion groups with next and previous tokens?
instructions:
- text: List exclusion groups in project {project_id} for environment {environment}.
slots:
project_id: path.project_id
environment: query.environment
- text: Find exclusion groups in project {project_id} whose name or description contains {query}.
slots:
project_id: path.project_id
query: query.query
- text: Show archived exclusion groups in project {project_id}, sorted by {sort}.
slots:
project_id: path.project_id
sort: query.sort
method: generated
generated: '2026-09-26'
- target: $.paths['/projects/{project_id}/groups'].post
update:
x-apievangelist-phrasing:
intent: Create an exclusion group in an environment
effect: write
questions:
- How do I create a mutually exclusive group of flag rules in one environment?
- Can I add rules to an exclusion group when I create it under a project path?
instructions:
- text: Create exclusion group {name} in project {project_id} for environment {environment_key}.
slots:
name: requestBody.name
project_id: path.project_id
environment_key: requestBody.environment_key
- text: Create exclusion group {name} in project {project_id}, environment {environment_key}, containing rules {rules}.
slots:
name: requestBody.name
project_id: path.project_id
environment_key: requestBody.environment_key
rules: requestBody.rules
method: generated
generated: '2026-09-26'
- target: $.paths['/projects/{project_id}/groups'].patch
update:
x-apievangelist-phrasing:
intent: Patch several exclusion groups at once
effect: write
questions:
- Can I update multiple exclusion groups in a project with one JSON patch request?
- What happens to read-only properties I include when patching groups in bulk?
instructions:
- text: Apply a JSON patch to several exclusion groups in project {project_id}.
slots:
project_id: path.project_id
- text: Bulk update the exclusion groups of project {project_id}.
slots:
project_id: path.project_id
method: generated
generated: '2026-09-26'
- target: $.paths['/projects/{project_id}/groups/archived'].post
update:
x-apievangelist-phrasing:
intent: Archive exclusion groups
effect: write
questions:
- How do I hide exclusion groups I no longer use without deleting them?
- Can I archive several exclusion groups by their keys in one go?
instructions:
- text: Archive exclusion groups {keys} in project {project_id}.
slots:
keys: requestBody.keys
project_id: path.project_id
- text: Move the exclusion groups with keys {keys} in project {project_id} to the archive.
slots:
keys: requestBody.keys
project_id: path.project_id
method: generated
generated: '2026-09-26'
- target: $.paths['/projects/{project_id}/groups/unarchived'].post
update:
x-apievangelist-phrasing:
intent: Restore archived exclusion groups
effect: write
questions:
- How do I bring back exclusion groups I archived earlier?
- Can I unarchive several exclusion groups at once by key?
instructions:
- text: Unarchive exclusion groups {keys} in project {project_id}.
slots:
keys: requestBody.keys
project_id: path.project_id
- text: Restore archived groups {keys} in project {project_id}.
slots:
keys: requestBody.keys
project_id: path.project_id
method: generated
generated: '2026-09-26'
- target: $.paths['/projects/{project_id}/groups/{group_id}'].get
update:
x-apievangelist-phrasing:
intent: Fetch an exclusion group within a project
effect: read
questions:
- What rules and settings does one exclusion group in my project have?
- Can I fetch a single exclusion group using both its project and group id?
instructions:
- text: Fetch exclusion group {group_id} in project {project_id}.
slots:
group_id: path.group_id
project_id: path.project_id
- text: Show the details of group {group_id} under project {project_id}.
slots:
group_id: path.group_id
project_id: path.project_id
method: generated
generated: '2026-09-26'
- target: $.paths['/projects/{project_id}/groups/{group_id}'].delete
update:
x-apievangelist-phrasing:
intent: Permanently delete an exclusion group
effect: destructive
questions:
- How do I permanently delete an exclusion group so its data is gone?
- Can a permanently deleted exclusion group ever be recovered?
instructions:
- text: Permanently delete exclusion group {group_id} from project {project_id}.
slots:
group_id: path.group_id
project_id: path.project_id
- text: Erase group {group_id} in project {project_id} for good, not just archive it.
slots:
group_id: path.group_id
project_id: path.project_id
method: generated
generated: '2026-09-26'
- target: $.paths['/groups'].get
update:
x-apievangelist-phrasing:
intent: List exclusion groups (Web Experimentation v2)
effect: read
questions:
- Which exclusion groups exist in my Web Experimentation project?
- Can I page through a project's exclusion groups by page number in the v2 API?
instructions:
- text: List exclusion groups for project {project_id} using the top-level groups endpoint.
slots:
project_id: query.project_id
- text: Get page {page} of exclusion groups for project {project_id}, {per_page} per page.
slots:
page: query.page
project_id: query.project_id
per_page: query.per_page
method: generated
generated: '2026-09-26'
- target: $.paths['/groups'].post
update:
x-apievangelist-phrasing:
intent: Create an exclusion group of experiments or campaigns
effect: write
questions:
- How do I make experiments mutually exclusive in Web Experimentation?
- Can I put campaigns and experiments into a new exclusion group when I create it?
instructions:
- text: Create exclusion group {name} in project {project_id} with entities {entities}.
slots:
name: requestBody.name
project_id: requestBody.project_id
entities: requestBody.entities
- text: Create a Web Experimentation exclusion group {name} for project {project_id} described as {description}.
slots:
name: requestBody.name
project_id: requestBody.project_id
description: requestBody.description
method: generated
generated: '2026-09-26'
- target: $.paths['/groups/{group_id}'].get
update:
x-apievangelist-phrasing:
intent: Get an exclusion group by id
effect: read
questions:
- Which experiments are in a given exclusion group?
- Can I look up an exclusion group with only its group id?
instructions:
- text: Get exclusion group {group_id}.
slots:
group_id: path.group_id
- text: Show which experiments and campaigns are in group {group_id}.
slots:
group_id: path.group_id
method: generated
generated: '2026-09-26'
- target: $.paths['/groups/{group_id}'].delete
update:
x-apievangelist-phrasing:
intent: Archive an exclusion group by id
effect: destructive
questions:
- Does calling DELETE on a Web Experimentation exclusion group archive it rather than erase it?
- How do I retire a single exclusion group by its group id alone?
instructions:
- text: Archive exclusion group {group_id} via the delete endpoint.
slots:
group_id: path.group_id
- text: Retire Web Experimentation group {group_id}.
slots:
group_id: path.group_id
method: generated
generated: '2026-09-26'
- target: $.paths['/groups/{group_id}'].patch
update:
x-apievangelist-phrasing:
intent: Update an exclusion group's name or members
effect: write
questions:
- How do I add or remove experiments from an existing exclusion group?
- Can I rename an exclusion group or mark it archived through an update?
instructions:
- text: Rename exclusion group {group_id} to {name}.
slots:
group_id: path.group_id
name: requestBody.name
- text: Set the members of group {group_id} to {entities}.
slots:
group_id: path.group_id
entities: requestBody.entities
- text: Update the description of group {group_id} to {description}.
slots:
group_id: path.group_id
description: requestBody.description
method: generated
generated: '2026-09-26'