openapi: 3.2.0 info: title: Optimizely Agent Batch API description: Optimizely Agent is a stand-alone, open-source microservice that provides major benefits over using Optimizely SDKs in certain use cases. Its REST API offers consolidated and simplified endpoints for accessing all the functionality of Optimizely Feature Experimentation SDKs. Use this API the control experiments (such as a feature tests). For more info, see https://docs.developers.optimizely.com/experimentation/v4.0.0-full-stack/docs/optimizely-agent termsOfService: https://www.optimizely.com/legal/terms/ license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html version: 0.12.0 security: - SdkKeyAuth: [] - TokenAuth: [] tags: - name: Batch paths: /v1/batch: post: summary: Batch multiple API endpoints into one request. description: "You can use the Batch endpoint to do things like \n1. Make activate decisions for a batch of users in a short timeframe for testing purposes\n2. Gather responses from a bunch of activate calls into one response for comparison or analysis\n" operationId: BatchmultipleAPIendpointsintoonerequest. requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/BatchContext' required: true responses: '200': description: responses for each endpoint called in the batch request content: application/json: schema: $ref: '#/components/schemas/BatchResponse' '400': description: Bad request, invalid parameters. content: application/json: {} '422': description: Unprocessable Entity, too many operations content: application/json: {} deprecated: false tags: - Batch components: schemas: Method1: title: Method1 enum: - GET - POST type: string Method: title: Method enum: - GET - POST type: string description: The REST request method BatchContext: title: BatchContext required: - operations type: object properties: operations: type: array items: $ref: '#/components/schemas/BatchOperation' description: Array of requests to Agent endpoints, batched into one request BatchOperation: title: BatchOperation type: object properties: method: allOf: - $ref: '#/components/schemas/Method' - description: The REST request method url: type: string description: The base and endpoint components of the API request's path operationID: type: string description: Index of the request in the batch body: type: object description: The body for the request as JSON parameters: type: object description: The parameters for the request as JSON headers: type: object description: The headers for the request as JSON examples: - method: POST url: /v1/activate operationID: '1' body: userId: user1 parameters: type: feature experimentKey: ab_test_experiment headers: X-Optimizely-SDK-Key: Content-Type: application/json Status: title: Status enum: - 200 - 400 type: integer BatchResponseItem: title: BatchResponseItem type: object properties: status: $ref: '#/components/schemas/Status' requestID: type: string operationID: type: string method: $ref: '#/components/schemas/Method1' url: type: string body: oneOf: - type: array items: type: object - type: object startedAt: type: string endedAt: type: string examples: - status: 200 requestID: abee6bdf-6d14-4fac-8357-769f5fd07e7c operationID: '1' method: POST url: /v1/activate body: - enabled: true experimentKey: new_feature_test featureKey: new_feature type: feature userId: user1 variables: bool_var: true double_var: 5.6 int_var: 1 variationKey: variation_2 - enabled: false experimentKey: flag_test_2 featureKey: test_feature type: feature userId: user1 variables: double: 0 json_key: {} variationKey: '' startedAt: '2020-09-10T10:50:37.466121-07:00' endedAt: '2020-09-10T10:50:37.466192-07:00' BatchResponse: title: BatchResponse type: object properties: startedAt: type: string endedAt: type: string errorCount: type: integer contentEncoding: int32 response: type: array items: $ref: '#/components/schemas/BatchResponseItem' description: '' securitySchemes: SdkKeyAuth: type: apiKey name: X-Optimizely-SDK-Key in: header TokenAuth: type: http scheme: bearer bearerFormat: jwt x-readme: explorer-enabled: true proxy-enabled: true