dotCMS Experiment API

The Experiment API from dotCMS — 15 operation(s) for experiment.

Business capability
A/B Test Execution BC-4280.50

Operations 18

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

POST /api/v1/experiments/{experimentId}/variants Add a variant to an A/B experiment · Add variant #
Ask an LLM
“How do I add another variant to an experiment I'm setting up?”
“Can I describe what a new experiment variant changes?”
Tell an agent
Add a variant to experiment {experimentId}.
Add variant {description} to experiment {experimentId}.
PUT /api/v1/experiments/{experimentId}/_archive Archive an experiment · Archive #
Ask an LLM
“How do I archive an experiment that's finished?”
“Can old A/B tests be archived rather than deleted?”
Tell an agent
Archive experiment {experimentId}.
Move experiment {experimentId} to the archive.
POST /api/v1/experiments/scheduled/{experimentId}/_cancel Cancel a scheduled experiment · Cancel #
Ask an LLM
“Can I cancel an experiment that is scheduled but hasn't started yet?”
“How do I call off a scheduled A/B test?”
Tell an agent destructive · confirm first
Cancel scheduled experiment {experimentId}.
Call off the scheduled run of experiment {experimentId}.
GET /api/v1/experiments List experiments · List #
Ask an LLM
“Which A/B experiments are set up in dotCMS?”
“Can I list the experiments running on one particular page?”
Tell an agent
List all experiments.
List experiments on page {pageId}.
POST /api/v1/experiments Create an A/B experiment · Create 2 #
Ask an LLM
“How do I set up a new A/B test on a page in dotCMS?”
“Can I set traffic allocation and goals when creating an experiment?”
Tell an agent
Create experiment {name} on page {pageId}.
Create experiment {name} for page {pageId} sending {trafficAllocation} percent of traffic.
DELETE /api/v1/experiments/{experimentId} Delete an experiment · Delete 6 #
Ask an LLM
“How do I permanently delete an experiment?”
“Can I remove an A/B test I created by mistake?”
Tell an agent destructive · confirm first
Delete experiment {experimentId}.
Remove experiment {experimentId} entirely.
PATCH /api/v1/experiments/{experimentId} Update an experiment's settings · Update 2 #
Ask an LLM
“Can I change the traffic split or goals of an existing experiment?”
“How do I rename or reschedule an experiment?”
Tell an agent
Rename experiment {experimentId} to {name}.
Change experiment {experimentId} traffic allocation to {trafficAllocation}.
DELETE /api/v1/experiments/{experimentId}/goals/primary Remove an experiment's primary goal · Delete goal #
Ask an LLM
“How do I clear the primary goal of an experiment?”
“Can I remove the goal I set on an A/B test?”
Tell an agent destructive · confirm first
Delete the primary goal of experiment {experimentId}.
Clear the goal on experiment {experimentId}.
DELETE /api/v1/experiments/{experimentId}/targetingConditions/{id} Remove a targeting condition from an experiment · Delete targeting condition #
Ask an LLM
“How do I drop one audience targeting condition from an experiment?”
“Can I delete a single targeting rule on an A/B test?”
Tell an agent destructive · confirm first
Delete targeting condition {id} from experiment {experimentId}.
Remove rule {id} from the targeting of experiment {experimentId}.
PUT /api/v1/experiments/{experimentId}/variants/{name} Update an experiment variant's description · Update variant #
Ask an LLM
“Can I edit the description of an existing experiment variant?”
“How do I relabel a variant in my A/B test?”
Tell an agent
Update variant {name} of experiment {experimentId} with description {description}.
Relabel variant {name} in experiment {experimentId}.
DELETE /api/v1/experiments/{experimentId}/variants/{name} Delete a variant from an experiment · Delete variant #
Ask an LLM
“How do I remove a variant from an experiment?”
“Can I delete one arm of an A/B test before it starts?”
Tell an agent destructive · confirm first
Delete variant {name} from experiment {experimentId}.
Remove the {name} variant of experiment {experimentId}.
POST /api/v1/experiments/{experimentId}/_end End a running experiment · End #
Ask an LLM
“How do I stop an experiment that's currently running?”
“Can I end an A/B test early?”
Tell an agent destructive · confirm first
End experiment {experimentId}.
Stop running experiment {experimentId} now.
GET /api/v1/experiments/{id} Get an experiment's details · Get 3 #
Ask an LLM
“What are the settings of a specific experiment?”
“Can I look up one experiment's variants and goals?”
Tell an agent
Get experiment {id}.
Show the configuration of experiment {id}.
GET /api/v1/experiments/{id}/results Get an experiment's results · Get result #
Ask an LLM
“Which variant is winning my A/B test?”
“Where do I see the results and conversion numbers for an experiment?”
Tell an agent
Get the results of experiment {id}.
Show how the variants of experiment {id} are performing.
GET /api/v1/experiments/health Check the experiments feature health · Healthcheck #
Ask an LLM
“Is the experiments service healthy and configured?”
“Can I verify the A/B testing feature is working before creating a test?”
Tell an agent
Run the experiments health check.
Check whether experiments are available on this instance.
POST /api/v1/experiments/isUserIncluded Check if the visitor is in running experiments · Is user included #
Ask an LLM
“Is the current visitor included in any running experiment?”
“Can I check experiment inclusion while excluding certain experiments?”
Tell an agent
Check whether the current user is included in any running experiment.
Check experiment inclusion for this user, excluding {exclude}.
PUT /api/v1/experiments/{experimentId}/variants/{name}/_promote Promote a winning variant · Promote variant #
Ask an LLM
“How do I make a winning variant the page's real content?”
“Can I promote one experiment variant to production?”
Tell an agent
Promote variant {name} of experiment {experimentId}.
Make variant {name} from experiment {experimentId} the live version.
POST /api/v1/experiments/{experimentId}/_start Start an experiment · Start #
Ask an LLM
“How do I launch an experiment once it's configured?”
“Can I start an A/B test right away?”
Tell an agent
Start experiment {experimentId}.
Launch experiment {experimentId} now.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/dotcms:dotcms-experiment-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

dotcms-experiment-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: dotCMS REST Experiment API
  version: '3'
servers:
- url: /
  description: dotCMS Server
tags:
- name: Experiment
paths:
  /api/v1/experiments/{experimentId}/variants:
    post:
      tags:
      - Experiment
      operationId: addVariant
      parameters:
      - name: experimentId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddVariantForm'
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
            application/javascript:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
      summary: Add variant
      x-summary-source: derived
  /api/v1/experiments/{experimentId}/_archive:
    put:
      tags:
      - Experiment
      operationId: archive
      parameters:
      - name: experimentId
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityExperimentView'
            application/javascript:
              schema:
                $ref: '#/components/schemas/ResponseEntityExperimentView'
      summary: Archive
      x-summary-source: derived
  /api/v1/experiments/scheduled/{experimentId}/_cancel:
    post:
      tags:
      - Experiment
      operationId: cancel
      parameters:
      - name: experimentId
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
            application/javascript:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
      summary: Cancel
      x-summary-source: derived
  /api/v1/experiments:
    get:
      tags:
      - Experiment
      operationId: list
      parameters:
      - name: pageId
        in: query
        schema:
          type: string
      - name: name
        in: query
        schema:
          type: string
      - name: status
        in: query
        schema:
          uniqueItems: true
          type: array
          items:
            type: string
            enum:
            - RUNNING
            - SCHEDULED
            - ENDED
            - DRAFT
            - ARCHIVED
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityExperimentView'
            application/javascript:
              schema:
                $ref: '#/components/schemas/ResponseEntityExperimentView'
      summary: List
      x-summary-source: derived
    post:
      tags:
      - Experiment
      operationId: create_2
      requestBody:
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/ExperimentForm'
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
            application/javascript:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
      summary: Create 2
      x-summary-source: derived
  /api/v1/experiments/{experimentId}:
    delete:
      tags:
      - Experiment
      operationId: delete_6
      parameters:
      - name: experimentId
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityViewString'
            application/javascript:
              schema:
                $ref: '#/components/schemas/ResponseEntityViewString'
      summary: Delete 6
      x-summary-source: derived
    patch:
      tags:
      - Experiment
      operationId: update_2
      parameters:
      - name: experimentId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/ExperimentForm'
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
            application/javascript:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
      summary: Update 2
      x-summary-source: derived
  /api/v1/experiments/{experimentId}/goals/primary:
    delete:
      tags:
      - Experiment
      operationId: deleteGoal
      parameters:
      - name: experimentId
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
            application/javascript:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
      summary: Delete goal
      x-summary-source: derived
  /api/v1/experiments/{experimentId}/targetingConditions/{id}:
    delete:
      tags:
      - Experiment
      operationId: deleteTargetingCondition
      parameters:
      - name: experimentId
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
            application/javascript:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
      summary: Delete targeting condition
      x-summary-source: derived
  /api/v1/experiments/{experimentId}/variants/{name}:
    put:
      tags:
      - Experiment
      operationId: updateVariant
      parameters:
      - name: experimentId
        in: path
        required: true
        schema:
          type: string
      - name: name
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExperimentVariantForm'
          application/javascript:
            schema:
              $ref: '#/components/schemas/ExperimentVariantForm'
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
            application/javascript:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
      summary: Update variant
      x-summary-source: derived
    delete:
      tags:
      - Experiment
      operationId: deleteVariant
      parameters:
      - name: experimentId
        in: path
        required: true
        schema:
          type: string
      - name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
            application/javascript:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
      summary: Delete variant
      x-summary-source: derived
  /api/v1/experiments/{experimentId}/_end:
    post:
      tags:
      - Experiment
      operationId: end
      parameters:
      - name: experimentId
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
            application/javascript:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
      summary: End
      x-summary-source: derived
  /api/v1/experiments/{id}:
    get:
      tags:
      - Experiment
      operationId: get_3
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
            application/javascript:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
      summary: Get 3
      x-summary-source: derived
  /api/v1/experiments/{id}/results:
    get:
      tags:
      - Experiment
      operationId: getResult
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityExperimentResults'
            application/javascript:
              schema:
                $ref: '#/components/schemas/ResponseEntityExperimentResults'
      summary: Get result
      x-summary-source: derived
  /api/v1/experiments/health:
    get:
      tags:
      - Experiment
      operationId: healthcheck
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityView'
            application/javascript:
              schema:
                $ref: '#/components/schemas/ResponseEntityView'
      summary: Healthcheck
      x-summary-source: derived
  /api/v1/experiments/isUserIncluded:
    post:
      tags:
      - Experiment
      operationId: isUserIncluded
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExcludedExperimentListForm'
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityExperimentSelectedView'
      summary: Is user included
      x-summary-source: derived
  /api/v1/experiments/{experimentId}/variants/{name}/_promote:
    put:
      tags:
      - Experiment
      operationId: promoteVariant
      parameters:
      - name: experimentId
        in: path
        required: true
        schema:
          type: string
      - name: name
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExperimentVariantForm'
          application/javascript:
            schema:
              $ref: '#/components/schemas/ExperimentVariantForm'
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
            application/javascript:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
      summary: Promote variant
      x-summary-source: derived
  /api/v1/experiments/{experimentId}/_start:
    post:
      tags:
      - Experiment
      operationId: start
      parameters:
      - name: experimentId
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
            application/javascript:
              schema:
                $ref: '#/components/schemas/ResponseEntitySingleExperimentView'
      summary: Start
      x-summary-source: derived
components:
  schemas:
    ResponseEntityView:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorEntity'
        entity:
          type: object
        messages:
          type: array
          items:
            $ref: '#/components/schemas/MessageEntity'
        i18nMessagesMap:
          type: object
          additionalProperties:
            type: string
        permissions:
          type: array
          items:
            type: string
        pagination:
          $ref: '#/components/schemas/Pagination'
    DifferenceData:
      type: object
      properties:
        controlData:
          type: array
          items:
            type: number
            format: double
        testData:
          type: array
          items:
            type: number
            format: double
        differences:
          type: array
          items:
            type: number
            format: double
        relativeDifference:
          type: number
          format: double
    VariantResult:
      type: object
      properties:
        variant:
          type: string
        conversionRate:
          type: number
          format: double
        probability:
          type: number
          format: double
        expectedLoss:
          type: number
          format: double
        risk:
          type: number
          format: double
        medianGrowth:
          type: number
          format: double
        credibilityInterval:
          $ref: '#/components/schemas/CredibilityInterval'
        isControl:
          type: boolean
    Pagination:
      type: object
      properties:
        currentPage:
          type: integer
          format: int32
        perPage:
          type: integer
          format: int32
        totalEntries:
          type: integer
          format: int64
    ResponseEntityExperimentResults:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorEntity'
        entity:
          $ref: '#/components/schemas/ExperimentResults'
        messages:
          type: array
          items:
            $ref: '#/components/schemas/MessageEntity'
        i18nMessagesMap:
          type: object
          additionalProperties:
            type: string
        permissions:
          type: array
          items:
            type: string
        pagination:
          $ref: '#/components/schemas/Pagination'
    Goal:
      type: object
      properties:
        metric:
          $ref: '#/components/schemas/Metric'
        type:
          type: string
          writeOnly: true
          enum:
          - MINIMIZE
          - MAXIMIZE
    Goals:
      type: object
      properties:
        primary:
          $ref: '#/components/schemas/Goal'
    ErrorEntity:
      type: object
      properties:
        errorCode:
          type: string
        message:
          type: string
        fieldName:
          type: string
    RunningIds:
      type: object
      properties:
        ids:
          type: array
          items:
            $ref: '#/components/schemas/RunningId'
    SelectedExperiment:
      type: object
      properties:
        name:
          type: string
        id:
          type: string
        runningId:
          type: string
        pageUrl:
          type: string
        variant:
          $ref: '#/components/schemas/SelectedVariant'
        lookBackWindow:
          $ref: '#/components/schemas/LookBackWindow'
        regexs:
          type: object
          additionalProperties:
            type: string
    SampleData:
      type: object
      properties:
        x:
          type: number
          format: double
        y:
          type: number
          format: double
    VariantResults:
      type: object
      properties:
        weight:
          type: number
          format: float
        variantName:
          type: string
        variantDescription:
          type: string
        uniqueBySession:
          $ref: '#/components/schemas/UniqueBySessionResume'
        details:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ResultResumeItem'
    QuantilePair:
      type: object
      properties:
        quantile:
          type: number
          format: double
        formatted:
          type: number
          format: double
    ExperimentForm:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        pageId:
          type: string
        trafficAllocation:
          type: number
          format: float
        trafficProportion:
          $ref: '#/components/schemas/TrafficProportion'
        scheduling:
          $ref: '#/components/schemas/Scheduling'
        goals:
          $ref: '#/components/schemas/Goals'
        targetingConditions:
          type: array
          items:
            $ref: '#/components/schemas/TargetingCondition'
        lookbackWindow:
          type: integer
          format: int32
    Experiment:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        id:
          type: string
        status:
          type: string
          enum:
          - RUNNING
          - SCHEDULED
          - ENDED
          - DRAFT
          - ARCHIVED
        trafficProportion:
          $ref: '#/components/schemas/TrafficProportion'
        scheduling:
          $ref: '#/components/schemas/Scheduling'
        trafficAllocation:
          type: number
          format: float
        creationDate:
          type: string
          format: date-time
        modDate:
          type: string
          format: date-time
        pageId:
          type: string
        createdBy:
          type: string
        lastModifiedBy:
          type: string
        goals:
          $ref: '#/components/schemas/Goals'
        targetingConditions:
          type: array
          items:
            $ref: '#/components/schemas/TargetingCondition'
        lookBackWindowExpireTime:
          type: integer
          format: int64
        runningIds:
          $ref: '#/components/schemas/RunningIds'
    Metric:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        category:
          type: string
          enum:
          - DIFFERENTIATING_FEATURES
          - PAID_FEATURES
          - PLATFORM_SPECIFIC_CUSTOMIZATION
          - SOPHISTICATED_CONTENT_ARCHITECTURE
          - POSITIVE_USER_EXPERIENCE
          - PLATFORM_SPECIFIC_DEVELOPMENT
          - RECENT_ACTIVITY
          - HISTORY_LEGACY_DEPRECATED_FEATURES
        feature:
          type: string
          enum:
          - CONTENTLETS
          - LANGUAGES
          - CONTENT_TYPES
          - SITES
          - URL_MAPS
          - WORKFLOW
          - USERS
          - SITE_SEARCH
          - IMAGE_API
          - LAYOUT
          - CONTENT_TYPE_FIELDS
          - AI
          - EXPERIMENTS
    RunningId:
      type: object
      properties:
        id:
          type: string
        startDate:
          type: string
          format: date-time
        endDate:
          type: string
          format: date-time
    SelectedVariant:
      type: object
      properties:
        name:
          type: string
        url:
          type: string
    ResponseEntityExperimentSelectedView:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorEntity'
        entity:
          $ref: '#/components/schemas/SelectedExperiments'
        messages:
          type: array
          items:
            $ref: '#/components/schemas/MessageEntity'
        i18nMessagesMap:
          type: object
          additionalProperties:
            type: string
        permissions:
          type: array
          items:
            type: string
        pagination:
          $ref: '#/components/schemas/Pagination'
    BayesianResult:
      type: object
      properties:
        value:
          type: number
          format: double
        results:
          type: array
          properties:
            empty:
              type: boolean
            first:
              $ref: '#/components/schemas/VariantResult'
            last:
              $ref: '#/components/schemas/VariantResult'
          items:
            $ref: '#/components/schemas/VariantResult'
        distributionPdfs:
          $ref: '#/components/schemas/SampleGroup'
        differenceData:
          $ref: '#/components/schemas/DifferenceData'
        quantiles:
          type: object
          properties:
            empty:
              type: boolean
          additionalProperties:
            $ref: '#/components/schemas/QuantilePair'
        suggestedWinner:
          type: string
    ResultResumeItem:
      type: object
      properties:
        uniqueBySession:
          type: integer
          format: int64
        totalSessions:
          type: integer
          format: int64
        conversionRate:
          type: number
          format: float
    ResponseEntitySingleExperimentView:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorEntity'
        entity:
          $ref: '#/components/schemas/Experiment'
        messages:
          type: array
          items:
            $ref: '#/components/schemas/MessageEntity'
        i18nMessagesMap:
          type: object
          additionalProperties:
            type: string
        permissions:
          type: array
          items:
            type: string
        pagination:
          $ref: '#/components/schemas/Pagination'
    MessageEntity:
      type: object
      properties:
        message:
          type: string
    AddVariantForm:
      type: object
      properties:
        description:
          type: string
    GoalResults:
      type: object
      properties:
        goal:
          $ref: '#/components/schemas/Goal'
        variants:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/VariantResults'
    SampleGroup:
      type: object
      properties:
        samples:
          type: object
          properties:
            empty:
              type: boolean
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/SampleData'
    ExperimentVariant:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        weight:
          type: number
          format: float
        url:
          type: string
        promoted:
          type: boolean
    SelectedExperiments:
      type: object
      properties:
        experiments:
          type: array
          items:
            $ref: '#/components/schemas/SelectedExperiment'
        includedExperimentIds:
          type: array
          items:
            type: string
        excludedExperimentIds:
          type: array
          items:
            type: string
        excludedExperimentIdsEnded:
          type: array
          items:
            type: string
    ResponseEntityExperimentView:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorEntity'
        entity:
          type: array
          items:
            $ref: '#/components/schemas/Experiment'
        messages:
          type: array
          items:
            $ref: '#/components/schemas/MessageEntity'
        i18nMessagesMap:
          type: object
          additionalProperties:
            type: string
        permissions:
          type: array
          items:
            type: string
        pagination:
          $ref: '#/components/schemas/Pagination'
    CredibilityInterval:
      type: object
      properties:
        lower:
          type: number
          format: double
        upper:
          type: number
          format: double
    UniqueBySessionResume:
      type: object
      properties:
        count:
          type: integer
          format: int64
        conversionRate:
          type: number
          format: float
    TrafficProportion:
      type: object
      properties:
        type:
          type: string
          enum:
          - SPLIT_EVENLY
          - CUSTOM_PERCENTAGES
        variants:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/ExperimentVariant'
    LookBackWindow:
      type: object
      properties:
        value:
          type: string
        expireMillis:
          type: integer
          format: int64
    TotalSession:
      type: object
      properties:
        total:
          type: integer
          format: int64
        variants:
          type: object
          additionalProperties:
            type: integer
            format: int64
    ResponseEntityViewString:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorEntity'
        entity:
          type: string
        messages:
          type: array
          items:
            $ref: '#/components/schemas/MessageEntity'
        i18nMessagesMap:
          type: object
          additionalProperties:
            type: string
        permissions:
          type: array
          items:
            type: string
        pagination:
          $ref: '#/components/schemas/Pagination'
    ExperimentResults:
      type: object
      properties:
        sessions:
          $ref: '#/components/schemas/TotalSession'
        goals:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/GoalResults'
        bayesianResult:
          $ref: '#/components/schemas/BayesianResult'
    ExcludedExperimentListForm:
      type: object
      properties:
        exclude:
          type: array
          items:
            type: string
    TargetingCondition:
      type: object
      properties:
        id:
          type: string
        conditionKey:
          type: string
        values:
          type: object
          properties:
            empty:
              type: boolean
          additionalProperties:
            type: string
        operator:
          type: string
          enum:
          - AND
          - OR
    Scheduling:
      type: object
      properties:
        startDate:
          type: string
          format: date-time
        endDate:
          type: string
          format: date-time
    ExperimentVariantForm:
      type: object
      properties:
        description:
          type: string