openapi: 3.2.0 info: title: Optimizely Groups API x-refined-note: - x-logo differs across the merged source definitions and was not carried version: '1.0' description: 'Operations tagged Groups across 2 of this provider''s published API definitions: optimizely-feature-experimentation-optimizely-feature-experimentation-api-openapi.json, optimizely-web-experimentation-optimizely-api-openapi.json. Each path carries the servers of the definition it was published in.' servers: - url: https://api.optimizely.com/flags/v1/ - url: https://api.optimizely.com/v2 security: - apiKey: [] - OAuth2: - read - write tags: - description: APIs to interact with mutual exclusion groups name: Groups paths: /projects/{project_id}/groups: get: description: 'Get a list of exclusion groups within a project You can use query parameters to filter/sort the response. ' operationId: list_groups parameters: - $ref: '#/components/parameters/projectId' - $ref: '#/components/parameters/perPage' - $ref: '#/components/parameters/pageToken' - $ref: '#/components/parameters/pageWindow' - allowReserved: true description: 'Sort the Groups based on the attributes from left to right. ' in: query name: sort required: false schema: items: enum: - name:asc - name:desc - created_time:asc - created_time:desc - updated_time:asc - updated_time:desc type: string type: array - description: 'Filter the Groups by archived. A Group can be either archived (archived=true) or unarchived (archived=false) ' in: query name: archived required: false schema: type: boolean - description: 'Filter the Groups by enabled. A Group can be either enabled (enabled=true) or disabled (enabled=false) ' in: query name: enabled required: false schema: type: boolean - description: 'Filter the Groups by the environment ' in: query name: environment required: false schema: items: example: production type: string type: array - description: 'Filter the Groups by name or description substring ' in: query name: query required: false schema: type: string - description: 'Ensure that the group id listed is returned first ' explode: false in: query name: include required: false schema: items: type: string type: array responses: '200': content: application/json: schema: $ref: '#/components/schemas/Groups' description: 'Successful retrieval of a page of Groups. The response includes RESTful JSON (https://restfuljson.org/) styled links and pagination metadata. Objects in this API MAY include a url property for a link to itself and MAY append _url to properties for related links. If a link is not present in the response, it indicates a user is not authorized to access the related resource. ' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenResponse' summary: List Exclusion Groups tags: - Groups patch: description: 'Update one or more Groups in a project using a json patch structure. Properties that are readOnly that are present in the request body will be ignored as well as unknown properties. ' operationId: update_groups parameters: - $ref: '#/components/parameters/projectId' requestBody: content: application/json-patch+json: example: - op: replace path: /123/rules/456/traffic_allocation value: 8000 schema: items: $ref: '#/components/schemas/PatchRequestBody' type: array required: true responses: '200': content: application/json: example: '987': archive_url: /projects/12345/groups/archived archived: false created_time: '2019-05-08T00:00:00.000Z' delete_url: /projects/12345/groups/456 description: Updated description for group environment_key: production id: 987 name: Promo Group project_id: 12345 rules: '456': created_time: '2022-01-08T00:00:00.000Z' flag_key: recurring_revenue flag_name: Recurring Revenue flag_status: unarchived rule_key: experiment_one rule_name: Experiment One traffic_allocation: 2000 updated_time: '2022-01-08T00:00:00.000Z' unarchive_url: /projects/12345/groups/unarchived update_url: /projects/12345/groups updated_time: '2019-05-08T00:00:00.000Z' url: /projects/12345/groups/456 urn: groups.flag.optimizely.com::987 schema: $ref: '#/components/schemas/GroupMap' description: 'Successful update, archive or unarchive of Groups. The response includes RESTful JSON (https://restfuljson.org/) styled links. If a link is not present in the response, it indicates a user is not authorized to access the related resource. ' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenResponse' '404': $ref: '#/components/responses/NotFoundResponse' '409': $ref: '#/components/responses/ConflictResponse' summary: Update Exclusion Groups tags: - Groups post: description: 'Creates a new exclusion group in a project. This operation corresponds to the `create_url` in a Groups response. Required properties must be present in the request body. Note that key for each object in "rules" (if provided), must be a stringified rule ID. ' operationId: create_group parameters: - $ref: '#/components/parameters/projectId' requestBody: $ref: '#/components/requestBodies/GroupRequest' responses: '201': $ref: '#/components/responses/GroupSuccessResponse' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenResponse' summary: Create an Exclusion Group tags: - Groups servers: - url: https://api.optimizely.com/flags/v1/ /projects/{project_id}/groups/archived: post: description: 'Archive one or more exclusion groups in a project. This operation corresponds to the `archive_url` in a Groups response. ' operationId: archive_groups parameters: - $ref: '#/components/parameters/projectId' requestBody: content: application/json: example: keys: - 1, 2 schema: $ref: '#/components/schemas/BulkOperationsRequestBody' required: true responses: '200': content: application/json: example: '987': archive_url: /projects/12345/groups/archived archived: true created_time: '2019-05-08T00:00:00.000Z' description: Promo group description environment_key: production id: 987 name: Promo group project_id: 12345 revision: 1 rules: '321': created_time: '2022-01-08T00:00:00.000Z' flag_key: recurring_revenue flag_name: Recurring Revenue flag_status: unarchived rule_key: experiment_one rule_name: Experiment One traffic_allocation: 2000 updated_time: '2022-01-08T00:00:00.000Z' unarchive_url: /projects/12345/groups/unarchived update_url: /projects/12345/groups updated_time: '2019-05-08T00:00:00.000Z' url: /projects/12345/groups/123 urn: groups.flag.optimizely.com::987 schema: $ref: '#/components/schemas/GroupMap' description: 'Successful archive of Groups. The response includes RESTful JSON (https://restfuljson.org/) styled links. If a link is not present in the response, it indicates a user is not authorized to access the related resource. ' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenResponse' '404': $ref: '#/components/responses/NotFoundResponse' '409': $ref: '#/components/responses/ConflictResponse' summary: Archive Exclusion Groups tags: - Groups servers: - url: https://api.optimizely.com/flags/v1/ /projects/{project_id}/groups/unarchived: post: description: 'Unarchive one or more exclusion groups in a project. This operation corresponds to the `unarchive_url` in a Groups response. ' operationId: unarchive_groups parameters: - $ref: '#/components/parameters/projectId' requestBody: content: application/json: example: keys: - 1,2 schema: $ref: '#/components/schemas/BulkOperationsRequestBody' required: true responses: '200': content: application/json: example: '987': archive_url: /projects/12345/groups/archived archived: false created_time: '2019-05-08T00:00:00.000Z' description: Promo group description environment_key: production id: 987 name: Promo group project_id: 12345 revision: 1 rules: '321': created_time: '2022-01-08T00:00:00.000Z' flag_key: recurring_revenue flag_name: Recurring Revenue flag_status: unarchived rule_key: experiment_one rule_name: Experiment One traffic_allocation: 2000 updated_time: '2022-01-08T00:00:00.000Z' unarchive_url: /projects/12345/groups/unarchived update_url: /projects/12345/groups updated_time: '2019-05-08T00:00:00.000Z' url: /projects/12345/groups/123 urn: groups.flag.optimizely.com::987 schema: $ref: '#/components/schemas/GroupMap' description: 'Successful unarchive of Groups. The response includes RESTful JSON (https://restfuljson.org/) styled links. If a link is not present in the response, it indicates a user is not authorized to access the related resource. ' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenResponse' '404': $ref: '#/components/responses/NotFoundResponse' '409': $ref: '#/components/responses/ConflictResponse' summary: Unarchive Exclusion Groups tags: - Groups servers: - url: https://api.optimizely.com/flags/v1/ /projects/{project_id}/groups/{group_id}: delete: description: 'Permanently delete an exclusion group by id. There will be no way to access this data after deleting. If you want to stop seeing a Group without deleting it permanently, archive instead. ' operationId: delete_group parameters: - $ref: '#/components/parameters/projectId' - $ref: '#/components/parameters/groupId' responses: '204': $ref: '#/components/responses/NoContentResponse' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenResponse' '404': $ref: '#/components/responses/NotFoundResponse' summary: Delete an Exclusion Group tags: - Groups get: description: 'Fetch a single exclusion group by its id. This operation corresponds to the `fetch_group_url` in a Groups response. ' operationId: fetch_group parameters: - $ref: '#/components/parameters/projectId' - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/GroupSuccessResponse' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenResponse' '404': $ref: '#/components/responses/NotFoundResponse' summary: Fetch a Single Exclusion Group tags: - Groups servers: - url: https://api.optimizely.com/flags/v1/ /groups: get: description: List Exclusion Groups under a Project operationId: list_groups parameters: - $ref: '#/components/parameters/per_page' - $ref: '#/components/parameters/page' - description: The ID of the Project you would like to list all Exclusion Groups for in: query name: project_id required: true schema: format: int64 type: integer responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/Group_2' type: array description: Return all Exclusion Groups in the specified Project '401': content: application/json: schema: $ref: '#/components/schemas/Error' description: Invalid credentials '403': content: application/json: schema: $ref: '#/components/schemas/Error' description: You do not have permission to access the Exclusion Groups in the specified Project '404': content: application/json: schema: $ref: '#/components/schemas/Error' description: Exclusion Groups not found default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error summary: List Exclusion Groups tags: - Groups post: description: Create a new Exclusion Group in a provided project operationId: create_group requestBody: content: application/json: schema: $ref: '#/components/schemas/Group_2' description: A string in JSON format that includes all the fields to create an Exclusion Group required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Group_2' description: Return the created Exclusion Group '400': content: application/json: schema: $ref: '#/components/schemas/Error' description: Invalid request body content '401': content: application/json: schema: $ref: '#/components/schemas/Error' description: Invalid credentials '403': content: application/json: schema: $ref: '#/components/schemas/Error' description: You do not have permission to create an Exclusion Group under the specified Project default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error summary: Create an Exclusion Group tags: - Groups servers: - url: https://api.optimizely.com/v2 /groups/{group_id}: delete: description: Archive an Exclusion Group by ID operationId: delete_group parameters: - description: The ID of the Exclusion Group you'd like to archive in: path name: group_id required: true schema: format: int64 type: integer responses: '204': description: Successfully archived Exclusion Group '401': content: application/json: schema: $ref: '#/components/schemas/Error' description: Invalid credentials '403': content: application/json: schema: $ref: '#/components/schemas/Error' description: You do not have permission to archive the specified Exclusion Group '404': content: application/json: schema: $ref: '#/components/schemas/Error' description: Exclusion Group not found default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error summary: Archive an Exclusion Group tags: - Groups get: description: Get an Exclusion Group by ID operationId: get_group parameters: - description: The ID of the Exclusion Group you'd like to get in: path name: group_id required: true schema: format: int64 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/Group_2' description: Return Exclusion Group info '400': content: application/json: schema: $ref: '#/components/schemas/Error' description: Invalid ID supplied '401': content: application/json: schema: $ref: '#/components/schemas/Error' description: Invalid credentials '403': content: application/json: schema: $ref: '#/components/schemas/Error' description: You do not have permission to access the specified Exclusion Group '404': content: application/json: schema: $ref: '#/components/schemas/Error' description: Exclusion Group not found default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error summary: Get an Exclusion Group tags: - Groups patch: description: Update an exclusion group by ID. operationId: update_group parameters: - description: The group ID of the Exclusion Group you want to change in: path name: group_id required: true schema: format: int64 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/GroupUpdate' description: A string in JSON format that includes all the fields you'd like to change for an Exclusion Group required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Group_2' description: Return the updated Exclusion Group '400': content: application/json: schema: $ref: '#/components/schemas/Error' description: Invalid ID or request body supplied '401': content: application/json: schema: $ref: '#/components/schemas/Error' description: Invalid credentials '403': content: application/json: schema: $ref: '#/components/schemas/Error' description: You do not have permission to edit the specified Exclusion Group '404': content: application/json: schema: $ref: '#/components/schemas/Error' description: Experimentation Group not found default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error summary: Update an Exclusion Group tags: - Groups servers: - url: https://api.optimizely.com/v2 components: schemas: AudienceConditionsString: description: A valid AudienceConditionsArray represented as a JSON string example: "[\n \"or\",\n {\n \"audience_id\": 1038980040\n },\n {\n \"audience_id\": 1033280055\n },\n [\n \"not\",\n {\n \"audience_id\": 1120870079\n }\n ]\n]" type: string PatchRequestBody: description: A JSONPatch document as defined by RFC 6902 properties: from: description: A JSON Pointer to the resource attribute type: string op: description: The operation to be performed enum: - add - remove - replace - move - copy - test type: string path: description: A JSON-Pointer to the resource or the resource attribute type: string value: anyOf: - type: object - items: type: string type: array - $ref: '#/components/schemas/AudienceConditions' - type: string - type: integer - type: boolean - items: $ref: '#/components/schemas/SubMetric' type: array description: The value to be used within the operations. required: - op - path type: object AudienceConditionsArray: example: - or - audience_id: 123 - - and - audience_id: 456 - audience_id: 789 items: anyOf: - description: The logical operator to use (e.g. "and", "or", or "not"). This must be the first item in the audience_conditions array. The "not" operator may only be used in conjunction with a single condition or list. type: string - description: An invidual conditional, consisting of a JSON object with an "audience_id" value. properties: audience_id: type: integer required: - audience_id type: object - $ref: '#/components/schemas/AudienceConditionsArray' description: A nested AudienceConditionsArray example: - - and - audience_id: 456 - audience_id: 789 type: array SubMetric: properties: aggregator: type: string event_id: type: integer event_type: type: string field: type: - string - 'null' role: enum: - numerator - denominator type: string scope: type: string type: object GroupRule: example: traffic_allocation: 5000 properties: flag_key: description: The Key of the Flag this GroupRule is related example: flag_key readOnly: true type: string flag_name: description: The name of the Flag this GroupRule is related to. example: A Feature Flag readOnly: true type: string flag_status: description: Status of the Flag thie GroupRule is related enum: - archived - unarchived example: archived readOnly: true type: string rule_enabled: description: If the underlying Rule and Ruleset are both enabled example: true readOnly: true type: boolean rule_key: description: The Key of the Rule this GroupRule belongs to example: paid_users readOnly: true type: string rule_name: description: The Name of the Rule this GroupRule belongs to example: Paid Users readOnly: true type: string rule_status: description: The status of the rule example: draft readOnly: true type: string traffic_allocation: description: The traffic allocation for the Rule example: 2000 maximum: 10000 minimum: 0 type: integer required: - traffic_allocation type: object GroupRuleMap: additionalProperties: $ref: '#/components/schemas/GroupRule' description: Map of group rules that include rule id as key and group rule as value. type: object BulkOperationsRequestBody: properties: keys: description: The list of resource keys to perform the desired operation items: type: string type: array type: object Group: example: archive_url: /projects/12345/groups/archived archived: false created_time: '2019-05-08T00:00:00.000Z' description: Promo group description environment_key: production id: 1 name: Promo group project_id: 12345 revision: 1 role: viewer rules: '321': created_time: '2022-01-08T00:00:00.000Z' flag_key: recurring_revenue flag_name: Recurring Revenue flag_status: unarchived rule_key: experiment_one rule_name: Experiment One traffic_allocation: 2000 updated_time: '2022-01-08T00:00:00.000Z' unarchive_url: /projects/12345/groups/unarchived update_url: /projects/12345/groups updated_time: '2019-05-08T00:00:00.000Z' url: /projects/12345/groups/123 urn: groups.flag.optimizely.com::1 properties: archive_url: allOf: - $ref: '#/components/schemas/UrlValue' example: '...' readOnly: true archived: example: false type: boolean created_time: example: '2019-05-08T00:00:00.000Z' format: date-time readOnly: true type: string delete_url: allOf: - $ref: '#/components/schemas/UrlValue' readOnly: true description: example: promotion group type: string environment_key: example: production minLength: 1 type: string id: example: 1 readOnly: true type: integer name: example: PromoGroup type: string project_id: description: The ID of the Project this Group belongs to format: int64 type: integer revision: description: Revision number for tracking changes readOnly: true type: integer role: description: Granular permission role example: admin readOnly: true type: string rules: allOf: - $ref: '#/components/schemas/GroupRuleMap' unarchive_url: allOf: - $ref: '#/components/schemas/UrlValue' example: '...' readOnly: true update_url: allOf: - $ref: '#/components/schemas/UrlValue' example: '...' readOnly: true updated_time: example: '2019-05-08T00:00:00.000Z' format: date-time readOnly: true type: string url: allOf: - $ref: '#/components/schemas/UrlValue' description: Link to self example: '...' readOnly: true urn: description: The URN for the Group example: groups.flag.optimizely.com::1 readOnly: true type: string required: - id - urn - name - environment_key - created_time - updated_time type: object Groups: properties: count: description: Number of Groups on the current page. example: 2 type: integer create_url: allOf: - $ref: '#/components/schemas/UrlValue' filter_url: allOf: - $ref: '#/components/schemas/UrlValue' description: Url template like '.../{?filter}' first_url: allOf: - $ref: '#/components/schemas/UrlValue' description: Link to first page of Groups in a series. example: /projects/123/groups?page_token=gASVCQAAAAAAAACMBTF8MnwylC4%3D#1 items: items: $ref: '#/components/schemas/Group' type: array last_url: allOf: - $ref: '#/components/schemas/UrlValue' description: Link to the last page of Groups in a series. example: /projects/123/groups?page_token=gASVCQAAAAAAAACMBTF8MnwylC4%3D#10 next_url: allOf: - $ref: '#/components/schemas/UrlList' description: "List of links to next pages of Groups in a series.\n\n The first element in the array is the exact next page after the current record, etc.\n" example: - /projects/123/groups?page_token=gASVCQAAAAAAAACMBTF8MnwylC4%3D#6 - /projects/123/groups?page_token=gASVCQAAAAAAAACMBTF8MnwylC4%3D#7 page: description: Number of the current page. 1-index based. example: 5 type: integer prev_url: allOf: - $ref: '#/components/schemas/UrlList' description: 'List of links to previous pages of Groups in a series. The first element in the array is the exact previous page before the current record, etc. ' example: - /projects/123/groups?page_token=gASVCQAAAAAAAACMBTF8MnwylC4%3D#4 - /projects/123/groups?page_token=gASVCQAAAAAAAACMBTF8MnwylC4%3D#3 reset_url: allOf: - $ref: '#/components/schemas/UrlValue' description: Link to the default pages of Groups example: '...' sort_url: allOf: - $ref: '#/components/schemas/UrlValue' description: Url template like '.../{?sort}' total_count: description: Total number of Groups for this series. example: 20 type: integer total_pages: description: Total number of pages for this series. example: 10 type: integer url: allOf: - $ref: '#/components/schemas/UrlValue' description: Link to self required: - url - first_url - last_url - count - page - total_count - total_pages - items type: object AudienceConditions: description: An Audience Combination composed of other audiences. Each audience is a rule like 'User likes salads', and an Audience Combination is a Boolean combination of these rules, like 'User likes pizza NOT (User likes salads AND User likes soup)'. oneOf: - $ref: '#/components/schemas/AudienceConditionsArray' - $ref: '#/components/schemas/AudienceConditionsString' GroupMap: additionalProperties: $ref: '#/components/schemas/Group' description: Map of groups that include group id as key and group payload as value. type: object UrlValue: description: A single url. type: string ProblemDetail: additionalProperties: true description: https://tools.ietf.org/html/rfc7807#section-3.1 properties: detail: description: A human-readable explanation specific to this occurrence of the problem. type: string status: description: The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem. type: integer title: description: A short, human-readable summary of the problem type. type: string type: description: A URI reference [RFC3986] that identifies the problem type. Contains 'about:blank' if unspecified. type: string uuid: description: Error reference for customer support type: string required: - detail - status - title - type type: object UrlList: description: A list of urls. items: type: string type: array GroupRequestBody: properties: description: example: promotion group type: string environment_key: example: production type: string name: example: PromoGroup maxLength: 255 minLength: 1 type: string rules: allOf: - $ref: '#/components/schemas/GroupRuleMap' required: - name - environment_key type: object Error: properties: code: type: string message: type: string messages: type: object uuid: format: uuid type: string type: object GroupEntity: properties: id: description: The unique identifier for the Group Entity example: 3000 type: integer kind: description: The kind of the Group Entity enum: - Campaign - Experiment type: string weight: description: The weight of the Group Entity. The weight is a value between 0 and 10000. An entity with weight 5000 will receive 50% of this group's traffic example: 1000 type: integer required: - id - kind - weight type: object Group_2: properties: archived: description: Whether the group is archived type: boolean created: description: The time when the Exclusion Group was initially created format: date-time readOnly: true type: string description: description: The description for an Exclusion Group type: string entities: description: Array of Group Entities in the Exclusion Group example: - id: 1234 kind: Experiment weight: 5000 items: $ref: '#/components/schemas/GroupEntity' type: array id: description: The unique identifier for the Exclusion Group example: 3000 format: int64 readOnly: true type: integer last_modified: description: The last time the Exclusion Group was modified format: date-time readOnly: true type: string name: description: Name of the Exclusion Group example: Homepage Group type: string project_id: description: The Project the Exclusion Group is in example: 1000 format: int64 type: integer required: - project_id - name type: object GroupUpdate: properties: archived: default: false description: Whether the Exclusion Group has been archived type: boolean description: description: The updated description of the Exclusion Group example: The Exclusion Group is updated! type: string entities: description: Array of experiments or campaigns in the Exclusion Group, represented as a GroupEntity object example: - id: 1234 kind: Experiment weight: 5000 items: $ref: '#/components/schemas/GroupEntity' type: array name: description: The updated name of the Exclusion Group example: Updated Exclusion Group type: string type: object responses: GroupSuccessResponse: content: application/json: schema: $ref: '#/components/schemas/Group' description: 'Successful retrieval, creation or update of a Group. The response includes RESTful JSON (https://restfuljson.org/) styled links. If a link is not present in the response, it indicates a user is not authorized to access the related resource. ' NoContentResponse: description: No content in the response ConflictResponse: content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetail' description: Conflicting resource state with requested action NotFoundResponse: description: Not found. No content BadRequestResponse: content: application/problem+json: example: detail: Another entity already exists with this same key status: 400 title: Key example_entity already exists" uuid: 42c4c855-42f2-4c9a-8544-37b3dff706d2 schema: $ref: '#/components/schemas/ProblemDetail' description: Malformed requests and invalid parameter names and types ForbiddenResponse: content: application/problem+json: example: detail: Permission denied status: 403 title: Forbidden schema: $ref: '#/components/schemas/ProblemDetail' description: Do not have permission to perform the operation UnauthorizedResponse: content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetail' description: Invalid credentials parameters: projectId: description: The project identifier example: 12345 in: path name: project_id required: true schema: type: integer pageWindow: description: Number of previous and next page links to supply for the request (defaults to 1). in: query name: page_window schema: type: integer groupId: description: The group identifier example: 54321 in: path name: group_id required: true schema: type: integer pageToken: description: Pagination page token. Implements prev, next, last, first in: query name: page_token schema: type: string perPage: description: The max number of items to include per page or results. in: query name: per_page schema: format: int64 type: integer page: description: 'Optional pagination argument that specifies the page to return. If you have 140 objects and you choose to return 100 objects per page you will be able to access the last 40 objects on page 2. The default value is 1. ' in: query name: page required: false schema: default: 1 type: integer per_page: description: Optional pagination argument that specifies the maximum number of objects to return per request in: query name: per_page required: false schema: default: 25 maximum: 100 type: integer requestBodies: GroupRequest: content: application/json: example: description: Promo Group description environment_key: production name: Promo Group rules: '123': traffic_allocation: 2500 schema: $ref: '#/components/schemas/GroupRequestBody' required: true securitySchemes: BearerAuth: description: To get a personal token, see https://docs.developers.optimizely.com/web/docs/personal-token scheme: bearer type: http OAuth2: description: Write applications that authenticate with the REST API via OAuth 2.0. flows: authorizationCode: authorizationUrl: https://app.optimizely.com/oauth2/authorize scopes: all: Grants all access tokenUrl: https://app.optimizely.com/oauth2/token type: oauth2 apiKey: scheme: bearer type: http x-refined-from: - optimizely-feature-experimentation-optimizely-feature-experimentation-api-openapi.json - optimizely-web-experimentation-optimizely-api-openapi.json