Convert Hypotheses API

A hypothesis is an assumption that a proposed change in your website would lead to visitors taking the action that you want them to. Read more information about Hypotheses.

OpenAPI Specification

convert-hypotheses-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Convert Accounts Hypotheses API
  description: 'Move your app forward with the Convert API. The Convert API allows

    you to manage your Convert Experiences projects using code. The REST API is

    an interface for managing and extending functionality of Convert. For

    example, instead of creating and maintaining projects using the Convert

    Experiences web dashboard you can create an experiment programmatically.

    Additionally, if you prefer to run custom analysis on experiment results you

    can leverage the API to pull data from Convert Experiences into your own

    workflow. If you do not have a Convert account already, sign up for a free

    developer account at https://www.convert.com/api/.


    *[Convert API V1](/doc/v1) is still available and documentation can be found [here](/doc/v1) but using it is highly discouraged

    as it will be phased out in the future*

    '
  version: 2.0.0
servers:
- url: https://api.convert.com/api/v2
  description: Live API server
- url: https://apidev.convert.com/api/v2
  description: DEV API server
- url: http://apidev.convert.com:5000/api/v2
  description: DEV mocked API server
tags:
- name: Hypotheses
  description: A hypothesis is an assumption that a proposed change in your website would lead to visitors taking the action that you want them to. Read more information about <a href="https://support.convert.com/hc/en-us/articles/360037227891?_ga=2.37896292.616154853.1594029871-1191511577.1590603567">Hypotheses</a>.
paths:
  /accounts/{account_id}/projects/{project_id}/hypotheses:
    post:
      operationId: getHypothesesList
      summary: List hypotheses within a project
      description: 'Retrieves a list of all hypotheses defined for a specific project.

        A hypothesis is an assumption about a proposed change and its expected impact, forming the basis for an experiment.

        Supports filtering by status, score, name, and pagination.

        The Knowledge Base article "Hypotheses (Compass)" explains: "A hypothesis is an assumption that a proposed change in your website would lead to visitors taking the action that you want them to."

        '
      tags:
      - Hypotheses
      parameters:
      - name: account_id
        in: path
        required: true
        description: ID of the account that owns the retrieved/saved data
        schema:
          type: integer
      - name: project_id
        description: ID of the project to which save/retrieved data is connected
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        $ref: '#/components/requestBodies/GetHypothesesRequest'
      responses:
        '200':
          $ref: '#/components/responses/HypothesesListResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{account_id}/projects/{project_id}/hypotheses/{hypothesis_id}:
    get:
      operationId: getHypothesis
      summary: Get details for a specific hypothesis
      description: 'Retrieves detailed information about a single hypothesis, identified by its `hypothesis_id`.

        This includes its name, objective, prioritization score (PIE or ICE), status, associated experiences, and tags.

        '
      tags:
      - Hypotheses
      parameters:
      - name: account_id
        in: path
        required: true
        description: ID of the account that owns the retrieved/saved data
        schema:
          type: integer
      - name: project_id
        in: path
        required: true
        description: ID of the project into which the hypothesis is stored
        schema:
          type: integer
      - name: hypothesis_id
        in: path
        required: true
        description: ID of the hypothesis to be retrieve
        schema:
          type: integer
      - name: expand
        in: query
        description: 'Specifies the list of fields which would be expanded in the response. Otherwise, only their id would be returned.


          Read more in the section related to [Expanding Fields](#tag/Expandable-Fields)

          '
        schema:
          type: array
          items:
            $ref: '#/components/schemas/HypothesisExpandFields'
      responses:
        '200':
          $ref: '#/components/responses/HypothesisResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{account_id}/projects/{project_id}/hypotheses/add:
    post:
      operationId: createHypothesis
      summary: Create a new hypothesis
      description: 'Defines a new hypothesis within a project.

        Requires a name, objective (problem and proposed solution), prioritization model (PIE or ICE) and its scores, status, and optionally, start/end dates, summary, associated experiences, and tags.

        The Knowledge Base article "Hypotheses (Compass)" details the PIE (Potential, Importance, Ease) and ICE (Impact, Confidence, Ease) models.

        '
      tags:
      - Hypotheses
      parameters:
      - name: account_id
        in: path
        required: true
        description: ID of the account that owns the retrieved/saved data
        schema:
          type: integer
      - name: project_id
        in: path
        required: true
        description: ID of the project into which the hypothesis is to be stored
        schema:
          type: integer
      - name: expand
        description: 'Specifies the list of objects which would be expanded in the response. Otherwise, only their id would be returned.


          Read more in the section related to [Expanding Fields](#tag/Expandable-Fields)

          '
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/HypothesisExpandFields'
      requestBody:
        $ref: '#/components/requestBodies/CreateHypothesisRequest'
      responses:
        '201':
          $ref: '#/components/responses/HypothesisResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{account_id}/projects/{project_id}/hypotheses/{hypothesis_id}/update:
    post:
      operationId: updateHypothesis
      summary: Update an existing hypothesis
      description: 'Modifies the details of an existing hypothesis, such as its name, objective, prioritization scores, status, or associated experiences and tags.

        '
      tags:
      - Hypotheses
      parameters:
      - name: account_id
        in: path
        required: true
        description: ID of the account that owns the retrieved/saved data
        schema:
          type: integer
      - name: project_id
        in: path
        required: true
        description: ID of the project into which the hypothesis is to be updated
        schema:
          type: integer
      - name: hypothesis_id
        in: path
        required: true
        description: ID of the hypothesis to be updated
        schema:
          type: integer
      - name: expand
        description: 'Specifies the list of objects which would be expanded in the response. Otherwise, only their id would be returned.


          Read more in the section related to [Expanding Fields](#tag/Expandable-Fields)

          '
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/HypothesisExpandFields'
      requestBody:
        $ref: '#/components/requestBodies/UpdateHypothesisRequest'
      responses:
        '200':
          $ref: '#/components/responses/HypothesisResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{account_id}/projects/{project_id}/hypotheses/{hypothesis_id}/update-status:
    post:
      operationId: updateHypothesisStatus
      summary: Update the status of a hypothesis
      description: 'Changes the status of an existing hypothesis (e.g., from ''draft'' to ''completed'', ''applied'', ''proven'', ''disproven'', or ''archived'').

        This helps track the lifecycle of a hypothesis from idea to tested outcome.

        '
      tags:
      - Hypotheses
      parameters:
      - name: account_id
        in: path
        required: true
        description: ID of the account that owns the retrieved/saved data
        schema:
          type: integer
      - name: project_id
        in: path
        required: true
        description: ID of the project into which the hypothesis is stored
        schema:
          type: integer
      - name: hypothesis_id
        in: path
        required: true
        description: ID of the hypothesis to be updated
        schema:
          type: integer
      - name: expand
        description: 'Specifies the list of objects which would be expanded in the response. Otherwise, only their id would be returned.


          Read more in the section related to [Expanding Fields](#tag/Expandable-Fields)

          '
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/HypothesisExpandFields'
      requestBody:
        $ref: '#/components/requestBodies/UpdateHypothesisStatusRequest'
      responses:
        '200':
          $ref: '#/components/responses/HypothesisResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{account_id}/projects/{project_id}/hypotheses/{hypothesis_id}/convert:
    post:
      operationId: convertHypothesis
      summary: Convert a proven/disproven hypothesis to a Knowledge Base entry
      description: 'Moves a hypothesis (typically one that is ''proven'' or ''disproven'' after testing) into the Knowledge Base.

        This archives the learnings from the hypothesis for future reference and organizational learning.

        The Knowledge Base article "Hypotheses (Compass)" mentions: "Proven hypotheses can then be moved to the Knowledge Base".

        '
      tags:
      - Hypotheses
      parameters:
      - name: account_id
        in: path
        required: true
        description: ID of the account that owns the retrieved/saved data
        schema:
          type: integer
      - name: project_id
        in: path
        required: true
        description: ID of the project into which the hypothesis is going to be converted
        schema:
          type: integer
      - name: hypothesis_id
        in: path
        required: true
        description: ID of the hypothesis to be converted
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/KnowledgeBaseResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{account_id}/projects/{project_id}/hypotheses/{hypothesis_id}/delete:
    delete:
      operationId: deleteHypothesis
      summary: Delete a hypothesis
      description: 'Permanently removes a hypothesis from a project. This action is irreversible.

        '
      tags:
      - Hypotheses
      parameters:
      - name: account_id
        in: path
        required: true
        description: ID of the account that owns the retrieved/saved data
        schema:
          type: integer
      - name: project_id
        in: path
        required: true
        description: ID of the project from which the hypothesis is to be deleted
        schema:
          type: integer
      - name: hypothesis_id
        in: path
        required: true
        description: ID of the hypothesis to be deleted
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/HypothesisResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{account_id}/projects/{project_id}/hypotheses/bulk-update:
    post:
      operationId: bulkHypothesesUpdate
      summary: Update multiple hypotheses at once
      description: 'Allows for changing the status of multiple hypotheses within a project simultaneously.

        Requires a list of hypothesis IDs and the target status.

        '
      tags:
      - Hypotheses
      parameters:
      - name: account_id
        in: path
        required: true
        description: ID of the account that owns the retrieved/saved data
        schema:
          type: integer
      - name: project_id
        description: ID of the project to which save/retrieved data is connected
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        $ref: '#/components/requestBodies/BulkUpdateHypothesesRequest'
      responses:
        '200':
          $ref: '#/components/responses/BulkSuccessResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{account_id}/projects/{project_id}/hypotheses/bulk-delete:
    post:
      operationId: bulkHypothesesDelete
      summary: Delete multiple hypotheses at once
      description: 'Permanently removes multiple hypotheses from a project in a single operation.

        Requires a list of hypothesis IDs. This action is irreversible.

        '
      tags:
      - Hypotheses
      parameters:
      - name: account_id
        in: path
        required: true
        description: ID of the account that owns the retrieved/saved data
        schema:
          type: integer
      - name: project_id
        description: ID of the project to which save/retrieved data is connected
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        $ref: '#/components/requestBodies/BulkDeleteHypothesesRequest'
      responses:
        '200':
          $ref: '#/components/responses/BulkSuccessResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
components:
  schemas:
    TrackingScriptReleaseScheduled:
      allOf:
      - $ref: '#/components/schemas/TrackingScriptReleaseBase'
      - type: object
        additionalProperties: false
        properties:
          type:
            enum:
            - scheduled
          automatic_apply_on:
            $ref: '#/components/schemas/TrackingScriptReleaseAutomaticApplyOn'
    GA_SettingsBase:
      type: object
      properties:
        enabled:
          type: boolean
          description: If true, integration with Google Analytics is enabled for this project or experience, allowing experiment data to be sent to GA.
    CustomDomainOwnershipVerificationItem:
      type: object
      properties:
        name:
          type: string
          description: The name of the DNS record.
        type:
          $ref: '#/components/schemas/DNSRecordTypes'
        value:
          type: string
          description: The value of the DNS record.
    SE_ProcTypes:
      type: string
      description: 'The statistical methodology used for analyzing experiment results and determining winners.

        - `frequentist`: Traditional hypothesis testing approach using p-values and confidence intervals (e.g., T-tests). KB: "Statistical Methods Used".

        - `bayesian`: Bayesian statistical approach providing probabilities of one variation being better than another (e.g., Chance to Win). KB: "Statistical Models in Convert.com''s A/B Testing Platform".

        '
      enum:
      - frequentist
      - bayesian
    SimpleGoal:
      type: object
      properties:
        id:
          description: The unique numerical identifier of the goal.
          type: integer
        name:
          description: The user-defined, friendly name of the goal.
          type: string
    SimpleLocationExpandable:
      anyOf:
      - type: integer
        description: Location ID
      - $ref: '#/components/schemas/SimpleLocation'
    UpdateHypothesisICE:
      allOf:
      - $ref: '#/components/schemas/CreateUpdateHypothesisICEBase'
    HypothesisICEBase:
      allOf:
      - $ref: '#/components/schemas/HypothesisBase'
      - type: object
        properties:
          prioritization_score_type:
            type: string
            description: A given description of prioritizing model
            enum:
            - ICE
          prioritization_score_attributes:
            $ref: '#/components/schemas/ICE_Attributes'
    ICE_Attributes:
      description: 'Scores for the ICE (Impact, Confidence, Ease) prioritization model. Each attribute is scored on a scale of 1 to 5.

        KB: "Hypotheses (Compass)" - "ICE prioritization model".

        '
      title: ICE_Attributes
      type: object
      properties:
        impact:
          type: integer
          description: 'Score (1-5, 5 highest): If this hypothesis is successful, how much positive impact will it have on the key metric(s) you''re trying to improve?'
          minimum: 1
          maximum: 5
        confidence:
          type: integer
          description: 'Score (1-5, 5 highest): How confident are you that this hypothesis will achieve the desired impact and that the proposed changes are technically feasible?'
          minimum: 1
          maximum: 5
        ease:
          type: integer
          description: 'Score (1-5, 5 easiest): How easy is it to implement the changes required to test this hypothesis, considering technical complexity and resource requirements?'
          minimum: 1
          maximum: 5
    HypothesisData:
      oneOf:
      - $ref: '#/components/schemas/HypothesisDataPIE'
      - $ref: '#/components/schemas/HypothesisDataICE'
      discriminator:
        propertyName: prioritization_score_type
        mapping:
          PIE: '#/components/schemas/HypothesisDataPIE'
          ICE: '#/components/schemas/HypothesisDataICE'
    SE_ProcSettings:
      description: Overall settings for the statistical engine processing results for this experience.
      oneOf:
      - $ref: '#/components/schemas/SE_ProcSettingsFrequentist'
      - $ref: '#/components/schemas/SE_ProcSettingsBayesian'
      discriminator:
        propertyName: stats_type
        mapping:
          frequentist: '#/components/schemas/SE_ProcSettingsFrequentist'
          bayesian: '#/components/schemas/SE_ProcSettingsBayesian'
    PIE_Attributes:
      description: 'Scores for the PIE (Potential, Importance, Ease) prioritization model. Each attribute is scored on a scale of 1 to 5.

        KB: "Hypotheses (Compass)" - "PIE prioritization model".

        '
      title: PIE_Attributes
      type: object
      properties:
        potential:
          type: integer
          description: 'Score (1-5, 5 highest): How likely is this hypothesis to result in a significant improvement if successful?'
          minimum: 1
          maximum: 5
        importance:
          type: integer
          description: 'Score (1-5, 5 highest): How valuable is the traffic or user segment this hypothesis targets? (e.g., high-traffic pages, critical conversion funnel steps).'
          minimum: 1
          maximum: 5
        ease:
          type: integer
          description: 'Score (1-5, 5 easiest): How easy is it to implement the changes required to test this hypothesis, considering technical complexity and resource requirements?'
          minimum: 1
          maximum: 5
    BaseExperienceExpandable:
      description: Represents an experience, either as its unique ID or as a simple object with its ID and name. Used when an experience is referenced by another entity and can be optionally expanded.
      oneOf:
      - $ref: '#/components/schemas/ExperienceId'
      - $ref: '#/components/schemas/BaseSimpleExperience'
    NumericOutlierMinMax:
      allOf:
      - $ref: '#/components/schemas/NumericOutlierBase'
      - type: object
        additionalProperties: false
        properties:
          detection_type:
            enum:
            - min_max
          min:
            type: number
            description: Minimum value for the outlier detection, under which, the value is considered an outlier
          max:
            type: number
            description: Maximum value for the outlier detection, over which, the value is considered an outlier
    TagExpandableRequest:
      description: 'Represents a tag when associating it with another entity (like an experience or goal) during a create or update operation.

        Can be either the existing `integer` ID of the tag, or a `TagToCreate` object if a new tag should be created and associated on the fly.

        '
      anyOf:
      - type: integer
        description: Tag ID
      - $ref: '#/components/schemas/TagToCreate'
    HypothesisDataPIE:
      allOf:
      - $ref: '#/components/schemas/HypothesisPIEBase'
      - type: object
        properties:
          experiences:
            $ref: '#/components/schemas/HypothesisExperiences'
          tags:
            type: array
            nullable: true
            description: The list of tags connected to this hypothesis
            items:
              $ref: '#/components/schemas/TagExpandable'
    NumericOutlierNone:
      allOf:
      - $ref: '#/components/schemas/NumericOutlierBase'
      - type: object
        additionalProperties: false
        properties:
          detection_type:
            enum:
            - none
    SimpleGoalExpandable:
      oneOf:
      - type: integer
        description: Goal ID
      - $ref: '#/components/schemas/SimpleGoal'
    IntegrationGA3:
      type: object
      properties:
        type:
          enum:
          - ga3
        property_UA:
          type: string
          maxLength: 150
          nullable: true
          description: The Universal Analytics Property ID (e.g., "UA-XXXXXXXX-Y") to which Convert experiment data will be sent.
    HypothesisExpandFields:
      type: string
      enum:
      - project
      - tags
      - experiences
    Hypothesis:
      oneOf:
      - $ref: '#/components/schemas/HypothesisPIE'
      - $ref: '#/components/schemas/HypothesisICE'
      discriminator:
        propertyName: prioritization_score_type
        mapping:
          PIE: '#/components/schemas/HypothesisPIE'
          ICE: '#/components/schemas/HypothesisICE'
    UpdateHypothesisStatusRequestData:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/HypothesisStatuses'
    ErrorData:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          oneOf:
          - type: string
          - type: array
            items:
              type: string
        fields:
          oneOf:
          - type: string
          - type: array
            items:
              type: string
    CreateHypothesisRequestData:
      $ref: '#/components/schemas/CreateHypothesis'
    HypothesesListExpandFields:
      type: string
      enum:
      - project
      - tags
    HypothesisPIE:
      allOf:
      - $ref: '#/components/schemas/HypothesisPIEBase'
      - type: object
        properties:
          experiences:
            type: array
            nullable: true
            description: The list of experiences connected to this hypothesis
            items:
              $ref: '#/components/schemas/BaseExperienceExpandable'
          tags:
            type: array
            nullable: true
            description: The list of tags connected to this hypothesis
            items:
              $ref: '#/components/schemas/TagExpandable'
    ProjectStatuses:
      description: 'The overall status of a project:

        - `active`: The project is active, and experiences within it can run and track data.

        - `inactive`: The project is inactive (archived or paused). No experiences within it will run, and no new data will be tracked.

        - `suspended`: The project (or account) has been suspended, typically due to billing issues or terms of service violations. Services are disabled.

        '
      type: string
      enum:
      - active
      - inactive
      - suspended
    TagExpandable:
      description: Represents a tag, either as its unique ID or as the full tag object (ID, name, description) if expanded.
      oneOf:
      - type: integer
        description: Tag ID
      - $ref: '#/components/schemas/Tag'
    CreateUpdateHypothesisPIEBase:
      allOf:
      - $ref: '#/components/schemas/HypothesisPIEBase'
      - type: object
        properties:
          experiences:
            $ref: '#/components/schemas/HypothesisCreateUpdateExperiences'
          tags:
            type: array
            nullable: true
            description: The list of tags connected to this hypothesis
            items:
              $ref: '#/components/schemas/TagExpandableRequest'
    GA_Settings:
      oneOf:
      - $ref: '#/components/schemas/ProjectIntegrationGA3'
      - $ref: '#/components/schemas/ProjectIntegrationGA4'
      discriminator:
        propertyName: type
        mapping:
          ga3: '#/components/schemas/ProjectIntegrationGA3'
          ga4: '#/components/schemas/ProjectIntegrationGA4'
    AccessRoleNames:
      type: string
      description: 'The predefined names for user access roles within the Convert system. Each role grants a specific set of permissions.

        - `owner`: Highest level, full control over account, billing, users, and all projects. Typically the account creator.

        - `account_manager`: Broad administrative rights over the account, often including billing and user management, but might not be able to delete the account itself.

        - `admin`: Full control over projects they are assigned to, including creating/editing/deleting experiences, goals, audiences, and managing project settings. May also manage project-level collaborators.

        - `browse`: Read-only access. Can view experiences, reports, and settings but cannot make changes.

        - `edit`: Can create and modify entities like experiences, goals, audiences within assigned projects, but typically cannot activate/publish experiences or manage project settings.

        - `publish`: Can do everything an ''editor'' can, plus activate/pause/complete experiences.

        - `review`: Can view and comment, but not make direct changes. Suited for stakeholders who need to approve or provide feedback.

        Knowledge Base: "Collaborators - Share With Multiple Users / Accounts" (describes access levels).

        '
      enum:
      - owner
      - account_manager
      - admin
      - browse
      - edit
      - publish
      - review
    BaseProject:
      type: object
      properties:
        global_javascript:
          type: string
          nullable: true
          description: 'Custom JavaScript code that will be included on all pages where this project''s tracking script is installed.

            This script runs before any experience-specific code, making it suitable for global helper functions, third-party integrations setup (like analytics), or defining global variables.

            KB: "Project, Experience, Variation Javascript" - "Global Project JavaScript".

            '
        name:
          type: string
          maxLength: 200
          description: A user-defined, friendly name for the project (e.g., "Main Website Optimization", "Q3 Marketing Campaigns", "Mobile App Features").
        project_type:
          type: string
          description: 'The type of project, determining its capabilities and how it''s used:

            - `web`: For traditional website A/B testing, MVT, Split URL, personalization, and deploys using the client-side JavaScript tracking snippet.

            - `fullstack`: For server-side experiments, feature flagging, and mobile app testing using Convert''s Full Stack SDKs.

            KB: "Full Stack Experiments on Convert".

            '
          enum:
          - web
          - fullstack
          default: web
        reporting_settings:
          allOf:
          - type: object
            description: Project settings used for reporting
            properties:
              tested_visitors_quota:
                type: integer
                minimum: 0
                description: Maximum number of tested visitors that is allowed to go through this project in a billing cycle. After that number has been reached, no experiences that have influence over tested visitors will run in this project.
              currency_symbol:
                type: string
                description: Currency symbol used in the reporting.
                maxLength: 10
              blocked_ips:
                type: object
                nullable: true
                properties:
                  single:
                    type: array
                    description: List of single ip addresses blocked.
                    items:
                      type: object
                      minProperties: 1
                      properties:
                        value:
                          type: string
                          format: ip-address
                        name:
                          type: string
                          nullable: true
                          maxLength: 64
                      required:
                      - value
                  range:
                    type: array
                    description: List of ip addresses range.
                    items:
                      type: object
                      minProperties: 1
                      properties:
                        start:
                          type: string
                          format: ip-address
                          description: Starts from ip.
                        end:
                          type: string
                          format: ip-address
                          description: Ends with ip.
                        name:
                          type: string
                          nullable: true
                          maxLength: 64
                      required:
                      - start
                      - end
                description: A list of blocked IPs that are not allowed to be counted in the reports
              stop_tracking_goals_after_days:
                type: string
                description: 'Defines goals tracking life time: goals won''t be tracking after specified days unless used in active experiments.'
                enum:
                - 'OFF'
                - 1 day
                - 15 days
                - 30 days
                - 60 days
              smart_recommendations:
                type: boolean
                default: true
                description: 'Whether to run or not Smart Recommendations.

                  '
              keep_running_until_confidence:
                type: boolean
                description: 'If true, experiments do not auto-complete when planned sample size (100% progress) is reached alone.

                  They only auto-complete when both planned sample size is reached and the confidence threshold is met.

                  If false, experiments complete automatically when planned sample size is reached, regardless of confidence level.

                  Default depends on automation toggle: when keep_winner or stop_loser is enabled, default is true; otherwise false.

                  '
          - $ref: '#/components/schemas/ExperienceReportingSettings'
        settings:
          type: object
          description: General operational settings for the project.
          properties:
            allow_crossdomain_tracking:
              type: boolean
              description: 'If true, enables automatic passing of Convert tracking cookies (`_conv_v`, `_conv_s`) as URL parameters when visitors navigate between different domains listed in this project''s `Active Websites`.

                Essential for maintaining consistent visitor identity and experiment bucketing across multiple domains (e.g., main site to a separate checkout domain).

                KB: "Cookies and Cross-Domain Testing".

                '
            allow_gdpr:
              type: boolean
              description: 'If true, displays GDPR-related warnings in the Convert UI for settings or features that might have privacy implications (e.g., using certain audience conditions, enabling cross-domain tracking).

                KB: "GDPR warnings".

                '
            data_anonymization:
              type: boolean
              description: 'If true, masks the names of experiences, variations, segments, and goals in the public JavaScript tracking snippet and in data sent to some third-party integrations.

                Instead of names, their numerical IDs are used. Enhances privacy by preventing public disclosure of experiment details.

                KB: "Prevent Experiment Details Data Leak with Data Anonymization".

                '
         

# --- truncated at 32 KB (103 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/convert/refs/heads/main/openapi/convert-hypotheses-api-openapi.yml