> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kameleoon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Simulate widget

> Generate simulation for widget and redirect to simulation page



## OpenAPI

````yaml /automation.api.json post /templates/simulate/{widgetId}
openapi: 3.0.3
info:
  title: OpenAPI definition for automation api
  version: 1.0.0
servers:
  - url: https://api.kameleoon.com
security: []
tags:
  - description: >-
      This is an object representing a Kameleoon account.You can retrieve it to
      view its properties, such as its current e-mail address or locale.With
      proper authorization, your application can read and update an account and
      profile settings.<aside class="notice"> Not all settings are exposed via
      the API. See the API reference for details. </aside>
    name: Account
  - description: >-
      Feature flag is used to  help our clients implement new features, test and
      deploy them viaour SDK. This service allows you to create and configure
      the feature flag which will be used in the source code of your feature.
    name: FeatureFlag
  - description: >
      You can use your account to set up multiple websites.This is helpful if
      you want to test your website and its mobile version or if you want to try
      Kameleoon on your site in a pre-production environment,It allows you to
      create different testing environments.
    name: Site
  - description: >-
      Custom data is an advanced tool that lets you target your customers in a
      unique way using data that is already available,such as user account
      information.
    name: CustomData
  - description: >-
      Experiment is an A/B test which can be targeted to a specific audience or
      any other audience. Kameleoon has several types of experiments: `Classic`,
      `Multivariate test (MVT)`, `Server-side` and the one that suits the best
      can be used to achieve the best results.
    name: Experiment
  - description: >-
      To measure the efficiency of an experiment or a personalization, it must
      be linked to one or several goals. All goals can be managed through
      Kameleoon interface or Automation API. There are variety of different
      goals you can choose from to better measure the results.
    name: Goal
  - description: This is an object representing an image
    name: Image
  - description: >-
      This is an object representing a key moment. Please note that `KeyMoment`
      has now been renamed to `Triggers`.
    name: KeyMoment
  - description: >-
      KeyPage allows you to target visitors that have visited a particular page,
      or multiple pages on your website.
    name: KeyPage
  - description: >
      Web personalization tailors the experience for each visitor to improve
      your conversion rate.

      The personalization object contains all vital information about a
      personalization as well as segments and variations used in it.
    name: Personalization
  - description: This is an object representing a projectThemeConfig
    name: ProjectThemeConfig
  - description: This is an object representing recommender block
    name: RecommenderBlock
  - description: >
      Referrer is an advanced tool that allows you to target visitors according
      to acquisition methods that lead them to your website.

      Kameleoon automatically creates 5 default channels: `Bing`, `Baidu`,
      `Google`, `Yahoo` and `Google Adwords`.
    name: Referrer
  - description: >-
      Segmenting allows you to effectively target visitors.You can create,
      modify, and duplicate segments using the Segment Builder tool in
      Kameleoon’s backend or through our Automation API.
    name: Segment
  - description: This is an object representing studio recommender block
    name: StudioRecommenderBlock
  - description: This is an object representing tag
    name: Tag
  - description: >-
      Represents an object aggregating the main information about an experiment
      result.
    name: Takeaway
  - description: This is an object representing a takeaway comment.
    name: TakeawayComment
  - description: >-
      TargetingRule is a system entity that combines segments (user groups) and
      triggers (activation conditions) to define precise targeting rules for
      experiments.
    name: TargetingRule
  - description: This is an object representing a theme
    name: Theme
  - description: >-
      A variation is a modified version of your webpage that can be edited for
      experiments or personalization.

      When you add a new variation, Kameleoon creates a copy of the original
      page from which you started.All changes will be saved in the variation,
      which will include all your edits when the test starts.
    name: Variation
  - description: This is an object representing a widget
    name: Widget
  - description: This is an object representing a widget studio
    name: WidgetStudio
  - description: This is an object representing widget studio template
    name: WidgetStudioTemplate
  - name: Audience
    description: >-
      Audience refers to statistical information regarding the number of visits,
      conversions, and other metrics related to a specific segment. Gaining
      insights into your website's audience is essential for effectively
      adjusting segments.
  - name: Data
    description: >
      Web personalization involves offering visitors a tailored experience to
      optimize your conversion rate.

      Personalization object contains information about a personalization, as
      well as the segments and variations used in it.
  - name: Raw Export
    description: >-
      Start a raw data exportation for experiment or personalization, which will
      be sent to the given emails.
paths:
  /templates/simulate/{widgetId}:
    post:
      tags:
        - Widget
      summary: Simulate widget
      description: Generate simulation for widget and redirect to simulation page
      operationId: simulate-widget-template
      parameters:
        - in: path
          name: widgetId
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TemplateSimulationInput'
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                type: string
          description: OK
        '400':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ExternalResponseObject'
          description: Bad Request
        '401':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ExternalResponseObject'
          description: Unauthorized
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ExternalResponseObject'
          description: Forbidden
        '404':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ExternalResponseObject'
          description: Not Found
        '422':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ExternalResponseObject'
          description: Unprocessable Entity
        '423':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ExternalResponseObject'
          description: Locked
        '429':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ExternalResponseObject'
          description: Too Many Requests
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ExternalResponseObject'
          description: Internal Server Error
      security:
        - bearerAuth: []
components:
  schemas:
    TemplateSimulationInput:
      required:
        - widgetTemplateInput
      type: object
      properties:
        widgetPbxSimulationInput:
          $ref: '#/components/schemas/WidgetPbxSimulationInput'
        widgetTemplateInput:
          $ref: '#/components/schemas/WidgetTemplateInput'
    ExternalResponseObject:
      type: object
      properties:
        code:
          type: string
        impersonator:
          type: string
        message:
          type: string
        name:
          type: string
        status:
          type: string
          enum:
            - SUCCESS
            - ERROR
        sub:
          type: string
        time:
          type: integer
          format: int64
        timestamp:
          type: string
          format: date-time
    WidgetPbxSimulationInput:
      required:
        - jsCode
      type: object
      properties:
        cssCode:
          type: string
        jsCode:
          type: string
      description: Widget PBX fields.
    WidgetTemplateInput:
      required:
        - displayPluginConfiguration
        - position
        - shadowDom
      type: object
      properties:
        displayPluginConfiguration:
          type: string
        domElementSelector:
          type: string
        locales:
          type: string
        position:
          type: string
          enum:
            - INPAGE
            - ABOVE
        positionSelectorRelative:
          type: string
        shadowDom:
          type: boolean
        surveyDataConfig:
          $ref: '#/components/schemas/SurveyDataConfigIO'
        widgetEditorTemplate:
          type: string
        widgetFonts:
          type: string
      description: Widget template fields.
    SurveyDataConfigIO:
      required:
        - fields
        - isCollectData
        - methodTypes
        - triggerSettings
      type: object
      properties:
        fields:
          type: array
          items:
            $ref: '#/components/schemas/FormFieldIO'
        isCollectData:
          type: boolean
        methodTypes:
          type: array
          items:
            type: string
            enum:
              - KAMELEOON
              - HTTP_REQUEST
              - CUSTOM_JS_CODE
        requestSettings:
          $ref: '#/components/schemas/RequestSettingsIO'
        triggerSettings:
          $ref: '#/components/schemas/TriggerSettingsIO'
      description: Configuration settings for survey data collection.
    FormFieldIO:
      required:
        - elementId
        - id
        - name
        - valueType
      type: object
      properties:
        elementId:
          type: string
        id:
          type: string
        isDeprecated:
          type: boolean
        name:
          type: string
        parentId:
          type: string
        valueType:
          type: string
          enum:
            - BOOLEAN
            - NUMBER
            - STRING
            - STRING_ARRAY
            - DATE
            - TIME
    RequestSettingsIO:
      required:
        - type
        - url
      type: object
      properties:
        headers:
          type: array
          items:
            $ref: '#/components/schemas/RequestHeaderDataTypeIO'
        type:
          type: string
          enum:
            - GET
            - POST
        url:
          type: string
    TriggerSettingsIO:
      required:
        - type
      type: object
      properties:
        type:
          type: string
          enum:
            - CLICK
            - CLOSE
            - ANSWER
        value:
          type: string
    RequestHeaderDataTypeIO:
      required:
        - id
        - name
        - type
        - value
      type: object
      properties:
        customData:
          $ref: '#/components/schemas/CustomData'
        id:
          type: string
        name:
          type: string
        type:
          type: string
          enum:
            - CUSTOM_DATA
            - CUSTOM_TEXT
            - LOCAL_STORAGE
            - COOKIES
        value:
          type: string
    CustomData:
      required:
        - method
        - name
        - siteId
      type: object
      properties:
        adobeAnalyticsVariableName:
          type: string
          description: Variable name of the Adobe Analytics
        advancedProposedValues:
          type: string
          description: >-
            Enables to set values for targeting conditions in the form of a JS
            table
        createdById:
          type: integer
          description: Account Id of the creator of the custom data
          format: int64
          readOnly: true
        customEvalCode:
          type: string
          description: Custom code that will be executed
        dateCreated:
          type: string
          description: Date and time a record is created
          format: date-time
          readOnly: true
        dateModified:
          type: string
          description: Date and time a record is modified
          format: date-time
          readOnly: true
        description:
          type: string
          description: Description of the custom data
        format:
          type: string
          description: Custom data value format
          enum:
            - BOOLEAN
            - NUMBER
            - STRING
        gtmVariableName:
          type: string
          description: Variable name of the Google Tag Manager
        id:
          type: integer
          description: Unique Id of the custom data.
          format: int64
          readOnly: true
        index:
          type: integer
          format: int32
          readOnly: true
        isConstant:
          type: boolean
          description: Indicates if the custom data is a constant
        isFiltrableVentilable:
          type: boolean
          description: >-
            Indicates if custom data should be filtered and marked as available
            for breakdown
        isLearnable:
          type: boolean
          description: >-
            Indicates if this data should be included in Kameleoon machine
            learning
        isLocalOnly:
          type: boolean
          description: Indicates if the custom data is only stored on the user's device.
        method:
          type: string
          description: Method through which a custom data will be transmitted
          enum:
            - ADOBE_ANALYTICS
            - CLIENT
            - CUSTOM_CODE
            - GTM
            - SDK
            - TC
            - TEALIUM
        modificationDate:
          type: string
          description: >-
            Date and time a record is modified (Deprecated, use dateModified
            instead)
          format: date-time
          readOnly: true
          deprecated: true
        name:
          type: string
          description: Name of the custom data
        siteCode:
          type: string
          description: |-
            System generated unique code to identify a website.  
            This is an optional field that is included in the request body
          readOnly: true
        siteId:
          type: integer
          description: Id of the project this record belongs
          format: int64
        tags:
          type: string
          description: Tags that belong to this record
        tcVariableName:
          type: string
          description: >-
            Name of the tag commander data layer, if it is selected as a
            transmission method
        tealiumVariableName:
          type: string
          description: Name of the Tealium, if it is selected as a transmission method
        type:
          type: string
          description: >-
            Custom data type. Custom data can be presented as a single value
            (UNIQUE), or a list of values (LIST), ​​or a countable list of
            values (COUNT_LIST)
          enum:
            - COUNT_LIST
            - LIST
            - UNIQUE
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http

````