openapi: 3.1.0 info: title: Convert Accounts 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: Accounts description: 'Account is the entity that contains all data. An account is owned by an user and in which more other users can have different permissions, account wide or at project level ' paths: /accounts: get: operationId: getAccountsList summary: List accounts accessible to the user description: 'Retrieves a list of all accounts the authenticated user has access to. If using API key authentication, this typically returns the single account associated with the API key. If using cookie-based authentication, it may return multiple accounts if the user is a collaborator on several. An account is the top-level container for projects, billing, and user management. ' tags: - Accounts responses: '200': $ref: '#/components/responses/AccountsListResponse' /billing-plans: get: operationId: getBillingPlans summary: List available billing plans description: 'Retrieves a list of all active billing plans that an account can subscribe to. Each plan defines usage limits (e.g., tested visitors, number of projects) and available features. ' tags: - Accounts responses: '200': $ref: '#/components/responses/BillingPlansListResponse' /accounts/{account_id}/livedata: post: operationId: getAccountLiveData summary: Get live tracking events for an account tags: - Accounts parameters: - name: account_id in: path required: true description: ID of the account to be retrieved schema: type: integer description: 'Retrieves the last 100 tracking events (e.g., experiment views, goal conversions) across all projects within the specified account. Useful for real-time monitoring of activity. Supports filtering by event types and specific projects. As per the Knowledge Base, "Live Logs in Convert track how end users are interacting with web pages and experiments...at a project and experiment level in real time." ' requestBody: $ref: '#/components/requestBodies/GetAccountLiveDataRequest' responses: '200': $ref: '#/components/responses/LiveDataEventsListResponse' default: $ref: '#/components/responses/ErrorResponse' /accounts/{account_id}/change-history: post: operationId: getAccountHistory summary: Get change history for an account tags: - Accounts parameters: - name: account_id in: path required: true description: ID of the account that owns the retrieved/saved data schema: type: integer description: 'Retrieves a historical log of changes made within the specified account, such as modifications to account settings or billing. This provides an audit trail for account-level activities. The Knowledge Base states, "The Change History shows a record of user activity for each of your projects." This extends to account changes. ' requestBody: $ref: '#/components/requestBodies/GetAccountHistoryRequest' responses: '200': $ref: '#/components/responses/ChangeHistoryListResponse' default: $ref: '#/components/responses/ErrorResponse' /accounts/{account_id}/experiences: post: operationId: getAccountActiveCompletedExperiencesList summary: List active and completed experiences for an account description: 'Retrieves a list of all active and completed experiences (A/B tests, personalizations, etc.) across all projects within the specified account. Allows filtering to narrow down results. Useful for an overview of ongoing and finished optimization activities at the account level. ' tags: - Accounts parameters: - name: account_id in: path required: true description: ID of the account that owns the retrieved/saved data schema: type: integer requestBody: $ref: '#/components/requestBodies/GetAccountActiveCompletedExperiencesListRequest' responses: '200': $ref: '#/components/responses/ExperiencesListResponse' default: $ref: '#/components/responses/ErrorResponse' /accounts/{account_id}/details: get: operationId: getAccountDetails summary: Get details for a specific account description: 'Retrieves detailed information about a specific account, including its settings, billing status, and usage limits. The `include` parameter can be used to fetch additional related data, like active project counts. ' tags: - Accounts parameters: - name: account_id in: path required: true description: ID of the account that owns the retrieved/saved data schema: type: integer - name: include in: query required: false description: 'Specifies the list of fields to be included in the response, which otherwise would not be sent. Read more in the section related to [Optional Fields](#tag/Optional-Fields) ' schema: type: array items: $ref: '#/components/schemas/AccountDetailsIncludeFields' responses: '200': $ref: '#/components/responses/AccountDetailsResponse' post: operationId: updateAccountDetails summary: Update details for a specific account description: 'Modifies the settings or billing information for a specific account. This can include updating company details, contact information, or billing preferences. ' tags: - Accounts parameters: - name: account_id in: path required: true description: ID of the account that owns the retrieved/saved data schema: type: integer requestBody: $ref: '#/components/requestBodies/UpdateAccountDetailsRequest' responses: '200': $ref: '#/components/responses/AccountDetailsResponse' /accounts/{account_id}/sub-accounts/add: post: operationId: createSubAccount summary: Create a new sub-account description: 'Creates a new sub-account under the specified parent main account. Sub-accounts inherit certain properties and limits from the parent but can have their own users and projects. This is typically used by agencies or larger organizations to manage client accounts or departmental usage separately. ' tags: - Accounts parameters: - name: account_id in: path required: true description: ID of the parent account under which the sub-account is being created. schema: type: integer requestBody: $ref: '#/components/requestBodies/CreateSubAccountRequest' responses: '200': $ref: '#/components/responses/AccountDetailsResponse' /accounts/{account_id}/addons: post: operationId: requestAccountAddons summary: Request add-ons for an account description: 'Allows requesting specific add-on features or services for an account, such as premium support tiers or specialized training. ' tags: - Accounts parameters: - name: account_id in: path required: true description: ID of the account for which the addons will be requested schema: type: integer requestBody: $ref: '#/components/requestBodies/RequestAccountAddonsRequest' responses: '200': $ref: '#/components/responses/SuccessResponse' default: $ref: '#/components/responses/ErrorResponse' /accounts/{account_id}/payment-setup: post: operationId: startPaymentSetup summary: Initiate payment method setup description: 'Starts a secure session with the payment provider (e.g., Stripe) to set up or update an account''s payment method. Returns a client secret or token that the frontend UI uses to complete the payment setup process directly with the provider. ' tags: - Accounts parameters: - name: account_id in: path required: true description: ID of the account for which the payment setup will be started schema: type: integer requestBody: $ref: '#/components/requestBodies/StartPaymentSetupRequest' responses: '200': $ref: '#/components/responses/StartPaymentSetupResponse' default: $ref: '#/components/responses/ErrorResponse' /accounts/{account_id}/billing-portal: get: operationId: getAccountBillingPortal summary: Get billing portal URL description: 'Returns an authenticated Paddle billing portal URL for the given account. The URL takes the customer to the Paddle billing portal where they can check subscriptions, view or download invoices. ' tags: - Accounts parameters: - $ref: '#/components/parameters/AccountId' responses: '200': $ref: '#/components/responses/BillingPortalResponse' default: $ref: '#/components/responses/ErrorResponse' /accounts/{account_id}/plan_setup/users: get: operationId: BillingPlanSetupUsers summary: Get users for billing plan setup notification description: 'Retrieves a list of users associated with an account, typically for the purpose of notifying them about billing plan setup or changes. Used internally for account management workflows. ' tags: - Accounts parameters: - name: account_id in: path required: true description: ID of the account for which the plan setup users will be returned schema: type: integer responses: '200': $ref: '#/components/responses/PlanSetupUsersResponse' default: $ref: '#/components/responses/ErrorResponse' components: schemas: ReportingSegmentsCountry: type: string description: 'The two-letter ISO 3166-1 alpha-2 country code of the visitor, determined by IP geolocation. Used for segmenting reports by country to analyze geographical performance. Knowledge Base: "How Do I Target by Geographic Location Like City, Region or Country?". ' maxLength: 2 minLength: 2 SimpleLocationExpandable: anyOf: - type: integer description: Location ID - $ref: '#/components/schemas/SimpleLocation' PlanSetupUsersResponseData: type: object description: A list of users associated with an account, intended for notification during billing plan setup or changes. properties: data: description: Array of user details. type: array items: type: object properties: user_id: type: string description: The user's unique identifier within the Convert system. email: type: string description: The user's email address. name: type: string description: The user's full name. ReportingSegmentsSource: type: string description: 'The traffic source that brought the visitor to the site (e.g., ''google'', ''facebook.com'', ''direct'', ''newsletter''). Derived from `utm_source` URL parameters or the HTTP referrer. Enables report segmentation by traffic source. Knowledge Base: "How Do You Fill Medium, Keyword and Source Name?". ' enum: - campaign - search - referral - direct - ai_tool RuleElement: oneOf: - $ref: '#/components/schemas/GenericTextMatchRule' - $ref: '#/components/schemas/GenericNumericMatchRule' - $ref: '#/components/schemas/GenericBoolMatchRule' - $ref: '#/components/schemas/GenericTextKeyValueMatchRule' - $ref: '#/components/schemas/GenericNumericKeyValueMatchRule' - $ref: '#/components/schemas/GenericBoolKeyValueMatchRule' - $ref: '#/components/schemas/CookieMatchRule' - $ref: '#/components/schemas/CountryMatchRule' - $ref: '#/components/schemas/LanguageMatchRule' - $ref: '#/components/schemas/GoalTriggeredMatchRule' - $ref: '#/components/schemas/SegmentBucketedMatchRule' - $ref: '#/components/schemas/DayOfWeekMatchRule' - $ref: '#/components/schemas/HourOfDayMatchRule' - $ref: '#/components/schemas/MinuteOfHourMatchRule' - $ref: '#/components/schemas/BrowserNameMatchRule' - $ref: '#/components/schemas/OsMatchRule' - $ref: '#/components/schemas/WeatherConditionMatchRule' - $ref: '#/components/schemas/VisitorTypeMatchRule' - $ref: '#/components/schemas/JsConditionMatchRule' discriminator: propertyName: rule_type mapping: url: '#/components/schemas/GenericTextMatchRule' url_with_query: '#/components/schemas/GenericTextMatchRule' query_string: '#/components/schemas/GenericTextMatchRule' campaign: '#/components/schemas/GenericTextMatchRule' keyword: '#/components/schemas/GenericTextMatchRule' medium: '#/components/schemas/GenericTextMatchRule' source_name: '#/components/schemas/GenericTextMatchRule' avg_time_page: '#/components/schemas/GenericNumericMatchRule' city: '#/components/schemas/GenericTextMatchRule' country: '#/components/schemas/CountryMatchRule' region: '#/components/schemas/GenericTextMatchRule' days_since_last_visit: '#/components/schemas/GenericNumericMatchRule' language: '#/components/schemas/LanguageMatchRule' pages_visited_count: '#/components/schemas/GenericNumericMatchRule' goal_triggered: '#/components/schemas/GoalTriggeredMatchRule' visit_duration: '#/components/schemas/GenericNumericMatchRule' cookie: '#/components/schemas/CookieMatchRule' visitor_type: '#/components/schemas/VisitorTypeMatchRule' visits_count: '#/components/schemas/GenericNumericMatchRule' bucketed_into_experience: '#/components/schemas/GenericBoolMatchRule' bucketed_into_segment: '#/components/schemas/SegmentBucketedMatchRule' local_time_day_of_week: '#/components/schemas/DayOfWeekMatchRule' local_time_hour_of_day: '#/components/schemas/HourOfDayMatchRule' local_time_minute_of_hour: '#/components/schemas/MinuteOfHourMatchRule' project_time_day_of_week: '#/components/schemas/DayOfWeekMatchRule' project_time_hour_of_day: '#/components/schemas/HourOfDayMatchRule' project_time_minute_of_hour: '#/components/schemas/MinuteOfHourMatchRule' browser_name: '#/components/schemas/BrowserNameMatchRule' browser_version: '#/components/schemas/GenericTextMatchRule' os: '#/components/schemas/OsMatchRule' user_agent: '#/components/schemas/GenericTextMatchRule' is_desktop: '#/components/schemas/GenericBoolMatchRule' is_mobile: '#/components/schemas/GenericBoolMatchRule' is_tablet: '#/components/schemas/GenericBoolMatchRule' js_condition: '#/components/schemas/JsConditionMatchRule' page_tag_page_type: '#/components/schemas/GenericTextMatchRule' page_tag_category_id: '#/components/schemas/GenericTextMatchRule' page_tag_category_name: '#/components/schemas/GenericTextMatchRule' page_tag_product_sku: '#/components/schemas/GenericTextMatchRule' page_tag_product_name: '#/components/schemas/GenericTextMatchRule' page_tag_product_price: '#/components/schemas/GenericNumericMatchRule' page_tag_customer_id: '#/components/schemas/GenericTextMatchRule' page_tag_custom_1: '#/components/schemas/GenericTextMatchRule' page_tag_custom_2: '#/components/schemas/GenericTextMatchRule' page_tag_custom_3: '#/components/schemas/GenericTextMatchRule' page_tag_custom_4: '#/components/schemas/GenericTextMatchRule' weather_condition: '#/components/schemas/WeatherConditionMatchRule' generic_text_key_value: '#/components/schemas/GenericTextKeyValueMatchRule' generic_numeric_key_value: '#/components/schemas/GenericNumericKeyValueMatchRule' generic_bool_key_value: '#/components/schemas/GenericBoolKeyValueMatchRule' ReportingSegmentsFilters: type: object description: 'A collection of filters used to segment experience report data based on various visitor attributes and traffic sources. Applying these filters allows for deeper analysis of how different user groups interact with experience variations. Knowledge Base: "Using Basic and Advanced Post segmentation". ' properties: devices: type: array items: $ref: '#/components/schemas/ReportingSegmentsDeviceCategories' nullable: true browsers: description: Filter report data for visitors using one or more specified web browsers. type: array items: $ref: '#/components/schemas/ReportingSegmentsBrowser' nullable: true countries: description: Filter report data for visitors from one or more specified countries (using 2-letter ISO codes). type: array items: $ref: '#/components/schemas/ReportingSegmentsCountry' nullable: true visitor_types: description: Filter report data for 'new' or 'returning' visitors. type: array items: $ref: '#/components/schemas/ReportingSegmentsVisitorType' nullable: true campaigns: description: Filter report data for visitors attributed to one or more specified marketing campaign names (from `utm_campaign`). type: array items: $ref: '#/components/schemas/ReportingSegmentsCampaign' nullable: true custom_segments: description: Filter report data for visitors belonging to one or more specified custom Convert Audience segments (by segment ID). type: array items: $ref: '#/components/schemas/ReportingSegmentsCustomSegment' nullable: true sources: description: Filter report data for visitors from one or more specified traffic sources (e.g., 'direct', 'search', 'referral'). type: array items: $ref: '#/components/schemas/ReportingSegmentsSource' nullable: true AccountDetailsIncludeFields: type: string enum: - stats - settings.tracking_script.available_versions VisitorTypeMatchRulesTypes: type: string enum: - visitor_type LocationTriggerTypes: type: string default: upon_run description: 'Specifies the mechanism that activates an experience when its location rules are met: - `upon_run`: (Default) The experience activates as soon as the Convert tracking script loads and evaluates that the visitor matches the location''s rules (e.g., URL match). This is the standard behavior for most A/B tests. - `manual`: The experience only activates when explicitly triggered by a JavaScript call (`window._conv_q.push({ what: ''triggerLocation'', params: { locationId: ''...'' } })`). Gives precise programmatic control over activation. - `dom_element`: The experience activates upon a specific user interaction (e.g., ''click'', ''hover'', ''in_view'', ''change'') with a defined DOM element (identified by a CSS `selector`). Useful for testing changes related to interactive elements. - `callback`: The experience activates when a custom JavaScript `callback` function (provided in `js`) calls the `activate()` function passed to it. Allows for complex asynchronous activation logic, e.g., after an API response or a specific SPA state change. Note: For Full Stack projects, `upon_run` is effectively the only mode, as activation is handled by the SDK. ' enum: - upon_run - manual - dom_element - callback SubAccountProductsCreate: type: object properties: billing: type: object required: - products properties: products: type: object description: Specifies initial plan subscriptions for Convert products. required: - experiences properties: experiences: type: object description: Initial plan for the 'Experiences' product. required: - plan properties: plan: required: - product - usageLimits allOf: - $ref: '#/components/schemas/SubAccountBillingPlanData' LocationExpandable: anyOf: - type: integer description: Location ID - $ref: '#/components/schemas/Location' AudienceExpandable: anyOf: - type: integer description: Audience ID - $ref: '#/components/schemas/Audience' 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 ExperienceChangeIdReadOnly: description: Represents the unique identifier of a change, typically when returned by the API after creation or in a list. type: object properties: id: description: The unique numerical identifier for this specific change. type: integer readOnly: true ExperienceChangeBase: description: The fundamental structure representing a single modification applied within an experience's variation. The specific content and behavior of the change are determined by its `type` and detailed in the `data` object. type: object properties: type: type: string enum: - richStructure - customCode - defaultCode - defaultCodeMultipage - defaultRedirect - fullStackFeature data: description: 'A flexible object containing the specific details and content for this change, structured according to the change `type`. For example, for `customCode`, it would contain `js` and `css` strings. For `defaultRedirect`, it would contain `original_pattern` and `variation_pattern`. This field is included by default when fetching a single `ExperienceChange` but might be omitted in list views unless specified in an `include` parameter. ' type: object UserCustomization: description: A generic key-value pair for storing miscellaneous user-specific UI customizations or settings not covered by structured preferences. type: object properties: key: type: string maxLength: 20 value: nullable: true oneOf: - type: string maxLength: 20 - type: number - type: boolean required: - key - value 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". ' do_not_track: type: string enum: - 'OFF' - EU ONLY - EEA ONLY - Worldwide description: 'Configures if and how the project respects the "Do Not Track" (DNT) browser setting sent by visitors. - `OFF`: DNT signals are ignored. - `EU ONLY`: Respects DNT for visitors from EU countries. - `EEA ONLY`: Respects DNT for visitors from European Economic Area countries. - `Worldwide`: Respects DNT for all visitors globally. If respected, the Convert script may not load or track for visitors with DNT enabled. KB: "Respect Browser Do Not Track Setting". ' global_privacy_control: type: string enum: - 'OFF' - EU ONLY - EEA ONLY - Worldwide description: 'Configures if and how the project respects Global Privacy Control (GPC) signals sent by visitors'' browsers. Options are similar to `do_not_track`. If respected, data collection and tracking may be limited. KB: "Respect Browser Do Not Track Setting" - "Global Privacy Control (GPC)". ' include_jquery: type: boolean description: '(For legacy tracking script) If true, Convert''s tracking script will include its own version of the jQuery library. If your website already loads jQuery, set this to false to avoid loading it twice and improve page performance. Ensure your site''s jQuery loads before the Convert script. KB: "Do not include jQuery into the tracking scripts". ' include_jquery_v1: type: boolean default: false description: '(For new v1 tracking script) If true, includes a jQuery-compatible API within the Convert script, even though the core script is jQuery-independent. Set to true if your variation code or global JS relies on `convert.$()` syntax and your site doesn''t globally provide jQuery. The new script itself does not require jQuery to function. ' disable_spa_functionality: type: boolean default: false description: 'If true, disables Convert''s built-in optimizations and automatic handling for Single Page Applications (SPAs). Most SPAs work well with default SPA functionality enabled. Only disable if encountering specific conflicts or issues. KB: "SPA Optimizations", "Running Experiments on Single Page Apps". ' do_not_track_referral: type: boolean default: false description: 'If true, Convert will not store referral data (like HTTP referrer or UTM parameters) in visitor cookies for use across subsequent pages or sessions. Referral data will still be used for targeting on the initial page view where it''s present. ' time_zone: type: string description: 'The primary timezone for this project (e.g., "America/New_York", "Europe/London", "UTC"). This timezone is used for scheduling experiences, interpreting time-based audience conditions (like ''hour of day - project_tz''), and displaying timestamps in reports. ' utc_offset: $ref: '#/components/schemas/UTC_Offset' time_format: type: string description: Preferred time format for display within the Convert application UI for this project (12-hour or 24-hour). enum: - 12h - 24h debug_token: $ref: '#/components/schemas/GenerateDebugTokenData' disable_default_config: type: boolean default: false description: '(For Full Stack projects) If true, disables the default public configuration endpoint for this project. Access to project configuration via SDKs would then strictly require an authenticated SDK key. Enhances security for Full Stack projects. ' include_experience_collaborators: type: boolean default: false description: 'If true, experience details retrieved via API will include information about the experience owner and collaborators. KB: "Assign Visible Owners and Collaborators to Experiences". ' version: type: string maxLength: 50 nullable: true readOnly: true description: 'An internal version identifier for the project''s configuration. This version string changes whenever a modification is made that affects the tracking script''s content (e.g., updating an experience, goal, or project setting). Format: [ISO_datetime]-[incremental_number]. ' legacy_script: type: boolean default: false description: 'If true, this project is configured to use Convert''s legacy tracking script. If false, it uses the newer, more performant v1 tracking script. New projects default to `false`. Existing projects retain their current script setting. KB: "How to Install the Main Tag / Convert Tracking Code / JavaScript" - "The Tracking Script vs Legacy Tracking Script". ' ignore_unused_locations: type: boolean default: false description: 'If true, locations that are not currently associated with any active experiences will be excluded from the tracking script data downloaded by visitors. This can help reduce snippet size and improve performance. KB: "Benefits of Archiving Unused Goals, Locations, and Audiences." (Related concept for goals). ' personalization: type: object nullable: true description: Personalization settings. properties: enabled: type: boolean default: false description: Indicates whether personalization is enabled for this project. tracking_script: type: object description: 'Settings related to the management and versioning of the Convert tracking script for this project. Allows choosing a release strategy (manual, latest, scheduled) and viewing available/applied script versions. KB: "Tracking Script Version Management". ' additionalProperties: false nullable: true properties: current_version: description: The version string of the tracking script currently active for this project (e.g., "v2.11.3"). type: string previous_version: type: string description: The version string of the tracking script that was active before the `current_version`. Only available if a rollback is possible (manual mode). nullable: true readOnly: true available_versions: $ref: '#/components/schemas/TrackingScriptAvailableVersions' release: $ref: '#/components/schemas/TrackingScriptRelease' visitor_insights: allOf: - $ref: '#/components/schemas/VisitorInsightsBase' - type: object properties: id: type: string readOnly: true description: Id of the visitor insights nullable: true description: 'Settings for Convert Signals™ (Visitor Insights), which captures sessions with user frustration signals. KB: "Understanding Convert Signals™ and signals.observer.min.js script in Convert". ' integrations_settings: type: object description: Project-wide settings for various third-party integrations (e.g., Google Analytics, Crazy Egg, Hotjar). Experience-level settings can sometimes override these. properties: crazyegg: description: 'Settings for Crazy Egg integration. Requires API key and secret for certain functionalities like automatically creating snapshots for variations. KB: "Integrate Convert Experiences with Crazy Egg". ' properties: api_key: type: string maxLength: 100 nullable: true description: Crazy Egg API key for this project. api_secret: type: string maxLength: 100 nullable: true description: Crazy Egg API secret. Not returned in GET requests for security. google_analytics: $ref: '#/components/schemas/GA_Settings' kissmetrics: type: object properties: enabled: type: boolean description: If true, enables sending of Convert experiment data to Kissmetrics for this project. hotjar: type: object properties: enabled: type: boolean description: If true, enables sending of Convert experiment data (as tags) to Hotjar for this project. status: $ref: '#/components/schemas/ProjectStatuses' custom_domain: type: object nullable: true description: 'Configuration for using a custom domain (CNAME) to serve the Convert tracking script and receive tracking data. This can improve branding and potentially reduce issues with ad blockers or third-party cookie restrictions. Requires DNS setup. ' required: - domain properties: domain: type: string description: The custom domain name (e.g., "analytics.yourcompany.com") to be used for Convert tracking. maxLength: 150 pattern: ^.+\..+ status: type: string description: 'The activation status of the custom domain: - `pending`: DNS changes are made, awaiting verification and activation by Convert. - `active`: Custom domain is verified and actively being used for tracking. ' readOnly: true enum: - pending - active ownership_verification: type: array nullable: true readOnly: true description: DNS records and values required to verify ownership of the custom domain. Provided by Convert during setup. items: $ref: '#/components/schemas/CustomDomainOwnershipVerificationItem' version: type: string description: The version of the custom domain. readOnly: true environments: type: object description: 'A user-defined map of environments for this project (e.g., "production", "staging", "development"). Each environment has its own variant of the tracking script. Experiences are typically configured to run in a specific environment. The number of allowed environments depends on the account''s subscription plan. KB: "The Environments Feature". ' additionalProperties: type: object description: Defines a single environment. The key of this object in the parent `environments` map is the environment's machine-readable name (e.g., "production"). properties: label: type: string description: A user-friendly display name for the environment (e.g., "Production Live Site", "QA Staging Server"). is_default: type: boolean description: If true, this environment is considered the default for the project. New experiences might default to this environment if not specified. Only one environment can be the default. js: type: string nullable: true description: 'The environment-specific javascript code that will be loaded after the project''s global javascript. When an environment is specified in the request, this code will be appended to the project''s global_javascript with a newline character. ' required: - label - is_default default: production: label: Production is_default: true default_goals: type: array description: A list of Goal IDs that will be automatically added to any new experience created within this project. items: $ref: '#/components/schemas/SimpleGoalExpandable' default_audiences: type: array description: A list of Audience IDs that will be automatically added to any new experience created within this project. items: $ref: '#/components/schemas/SimpleAudienceExpandable' default_locations: type: array description: A list of Location IDs that will be automatically added to any new experience created within this project. items: $ref: '#/components/schemas/SimpleLocationExpandable' SubAccount: description: Represents a sub-account, typically managed under a main (often agency) account. It has its own projects but its usage quotas are often derived from the parent account. allOf: - $ref: '#/components/schemas/SubAccountBase' - type: object properties: accountType: type: string enum: - sub parentAccountId: description: Parent account ID, if this is a sub-account. nullable: true type: integer readOnly: true id: readOnly: true limitsAndCapabilities: allOf: - readOnly: true - $ref: '#/components/schemas/SubAccountBillingPlanLimitsAndCapabilities' - $ref: '#/components/schemas/SubAccountProducts' ExperienceIncludeFields: type: string enum: - alerts - goals - stats - variations - variations.changes - min_running_timestamp - max_running_timestamp - audiences - locations - collaborators ExperienceBase: type: object properties: description: description: An optional, detailed explanation of the experience's purpose, hypothesis, or specific changes being tested. type: string maxLength: 500 start_time: description: 'Unix timestamp (UTC) indicating when the experience was first activated (status changed to ''active''). Null or 0 if the experience has never been started. ' type: integer nullable: true end_time: description: 'Unix timestamp (UTC) indicating when the experience was last stopped (e.g., paused or completed). Null or 0 if the experience is currently active or has never been stopped. ' type: integer nullable: true global_js: description: 'Custom JavaScript code that will be executed for all visitors bucketed into this experience, before any variation-specific code is applied. Useful for setting up common functionalities or variables needed by multiple variations. KB: "Project, Experience, Variation Javascript" - "Global Experience JavaScript". ' type: string global_css: description: 'Custom CSS rules that will be applied for all visitors bucketed into this experience, before any variation-specific CSS. Useful for common styling adjustments needed across all variations. ' type: string name: type: string description: A user-defined, friendly name for the experience (e.g., "Homepage Headline Test", "Checkout Funnel Optimization Q3"). This name is prominent in the Convert UI and reports. maxLength: 100 key: description: 'A unique, machine-readable key or identifier for this experience within the project. Often auto-generated from the name if not specified, but can be user-defined for easier programmatic reference (e.g., in Full Stack SDKs or API calls). Example: "homepage_headline_test_q3". ' type: string maxLength: 32 primary_goal: type: integer description: 'The ID of the main conversion goal this experience is intended to optimize. Performance against this primary goal often determines the "winner" of an A/B test and is highlighted in reports. KB: "Experiment Report" - "Primary Goal". ' objective: type: string nullable: true description: 'A detailed statement outlining the objective of this experience. This often includes the hypothesis being tested, the problem it aims to solve, the proposed solution (the variations), and the expected impact on key metrics. Connects to the "Hypotheses (Compass)" feature. ' maxLength: 5000 settings: $ref: '#/components/schemas/ExperienceSettings' site_area: nullable: true description: '(Deprecated) The legacy way to define on which pages the experience should run, using a set of include/exclude rules based on URL components or page tags. Modern experiences should use the `locations` array instead for more flexible targeting. ' type: object properties: include: type: array items: $ref: '#/components/schemas/RuleElement' exclude: type: array items: $ref: '#/components/schemas/RuleElement' traffic_distribution: description: 'The percentage of total eligible website traffic (matching audience and location criteria) that will be directed into this entire experience. For example, a value of 50 means 50% of eligible visitors will participate, while the other 50% will see the default website content and not be tracked for this experience. The traffic within the experience is then further split among its variations based on `variations[].traffic_distribution`. KB: "What is an Traffic Distribution?". ' type: number minimum: 0 maximum: 100 multipleOf: 0.0001 type: $ref: '#/components/schemas/ExperienceTypes' url: description: 'The primary URL used to load the page in Convert''s Visual Editor when creating or editing this experience''s variations. For Split URL tests, this is typically the URL of the original (control) page. ' type: string format: uri maxLength: 2048 version: description: An internal version number for the experience, incremented upon certain modifications. type: number integrations: type: array description: 'A list of configurations for third-party integrations enabled for this experience (e.g., Google Analytics, Hotjar, Mixpanel). Each object specifies the `provider` and any provider-specific settings (like a GA Custom Dimension index). ' items: anyOf: - $ref: '#/components/schemas/ExperienceIntegrationBaidu' - $ref: '#/components/schemas/ExperienceIntegrationClicktale' - $ref: '#/components/schemas/ExperienceIntegrationClicky' - $ref: '#/components/schemas/ExperienceIntegrationCnzz' - $ref: '#/components/schemas/ExperienceIntegrationCrazyegg' - $ref: '#/components/schemas/ExperienceIntegrationEconda' - $ref: '#/components/schemas/ExperienceIntegrationEulerian' - $ref: '#/components/schemas/ExperienceIntegrationGoogleAnalytics' - $ref: '#/components/schemas/ExperienceIntegrationGosquared' - $ref: '#/components/schemas/ExperienceIntegrationHeapanalytics' - $ref: '#/components/schemas/ExperienceIntegrationHotjar' - $ref: '#/components/schemas/ExperienceIntegrationMicrosoftClarity' - $ref: '#/components/schemas/ExperienceIntegrationMixpanel' - $ref: '#/components/schemas/ExperienceIntegrationMouseflow' - $ref: '#/components/schemas/ExperienceIntegrationPiwik' - $ref: '#/components/schemas/ExperienceIntegrationSegmentio' - $ref: '#/components/schemas/ExperienceIntegrationSitecatalyst' - $ref: '#/components/schemas/ExperienceIntegrationWoopra' - $ref: '#/components/schemas/ExperienceIntegrationYsance' screenshots_info: type: array readOnly: true description: Information about the generation status and timestamps of screenshots for each variation in this experience. Used by the UI. items: type: object description: Screenshot metadata for a single variation. properties: variation_id: type: number description: The ID of the variation. in_progress_since: type: number nullable: true description: Unix timestamp (UTC) if screenshot generation is currently in progress for this variation, null otherwise. last_taken_screenshot_time: type: number nullable: true description: 'Unix timestamp (UTC) of when the latest screenshot for this variation was successfully captured. Null if no screenshot exists or if generation failed. ' environments: type: array deprecated: true description: (Deprecated) List of environment names where this experience will run. Use the singular `environment` field instead. items: type: string environment: type: string description: 'The specific environment (e.g., "production", "staging", "development") within the project where this experience is intended to run. This must match one of the environments defined at the project level. If not set, it typically defaults to the project''s default environment (often "production"). KB: "The Environments Feature". ' concurrency_key: $ref: '#/components/schemas/ConcurrencyKey' ExperienceIntegrationGA3: allOf: - $ref: '#/components/schemas/GA_SettingsBase' - $ref: '#/components/schemas/ExperienceIntegrationBase' - $ref: '#/components/schemas/IntegrationGA3' - type: object properties: custom_dimension: type: string description: Custom dimension where experience data should be sent to. ClicksLinkGoalSettings: type: object additionalProperties: false properties: href: type: string description: 'The exact URL (or a pattern if regex is supported by the `triggering_rule`''s match type for this setting) found in the `href` attribute of the hyperlink(s) to be tracked. When a link with this `href` is clicked, the goal triggers. The page(s) where the link resides are defined in the goal''s `triggering_rule`. ' required: - href CountryMatchRule: allOf: - $ref: '#/components/schemas/BaseRuleWithCountryCodeValue' - type: object required: - rule_type properties: rule_type: $ref: '#/components/schemas/CountryMatchRulesTypes' matching: allOf: - $ref: '#/components/schemas/BaseMatch' - type: object properties: match_type: $ref: '#/components/schemas/ChoiceMatchingOptions' BrowserNameMatchRulesTypes: type: string enum: - browser_name LocationRuleElement: oneOf: - $ref: '#/components/schemas/GenericTextMatchRule' - $ref: '#/components/schemas/GenericNumericMatchRule' - $ref: '#/components/schemas/GenericTextKeyValueMatchRule' - $ref: '#/components/schemas/GenericNumericKeyValueMatchRule' - $ref: '#/components/schemas/GenericBoolKeyValueMatchRule' - $ref: '#/components/schemas/JsConditionMatchRule' discriminator: propertyName: rule_type mapping: url: '#/components/schemas/GenericTextMatchRule' url_with_query: '#/components/schemas/GenericTextMatchRule' query_string: '#/components/schemas/GenericTextMatchRule' page_tag_page_type: '#/components/schemas/GenericTextMatchRule' page_tag_category_id: '#/components/schemas/GenericTextMatchRule' page_tag_category_name: '#/components/schemas/GenericTextMatchRule' page_tag_product_sku: '#/components/schemas/GenericTextMatchRule' page_tag_product_name: '#/components/schemas/GenericTextMatchRule' page_tag_product_price: '#/components/schemas/GenericNumericMatchRule' page_tag_customer_id: '#/components/schemas/GenericTextMatchRule' page_tag_custom_1: '#/components/schemas/GenericTextMatchRule' page_tag_custom_2: '#/components/schemas/GenericTextMatchRule' page_tag_custom_3: '#/components/schemas/GenericTextMatchRule' page_tag_custom_4: '#/components/schemas/GenericTextMatchRule' generic_text_key_value: '#/components/schemas/GenericTextKeyValueMatchRule' generic_numeric_key_value: '#/components/schemas/GenericNumericKeyValueMatchRule' generic_bool_key_value: '#/components/schemas/GenericBoolKeyValueMatchRule' js_condition: '#/components/schemas/JsConditionMatchRule' ExperienceIntegrationGA4Base: allOf: - $ref: '#/components/schemas/GA_SettingsBase' - $ref: '#/components/schemas/ExperienceIntegrationBase' - $ref: '#/components/schemas/IntegrationGA4Base' BaseRuleWithBrowserNameValue: allOf: - $ref: '#/components/schemas/BaseRule' - type: object properties: value: description: Browser name used for matching type: string enum: - chrome - microsoft_ie - firefox - microsoft_edge - mozilla - opera - safari UTC_Offset: type: integer description: 'The time offset from Coordinated Universal Time (UTC) in seconds. For example, UTC-5 (EST) would be -18000. UTC+2 would be 7200. Used for interpreting or displaying date/time information according to a specific timezone. ' default: 0 minimum: -43200 maximum: 50400 BillingPortal: type: object description: Authenticated Paddle billing portal URL for the given account. properties: url: type: string nullable: true format: uri description: Authenticated Paddle billing portal URL for to check subscriptions, view or download invoices. ExperiencesList: type: array description: A list of experience objects. items: $ref: '#/components/schemas/Experience' ExperienceVariationBase: type: object properties: name: description: A user-defined, friendly name for the variation (e.g., "Original Homepage", "Variation B - Green Button", "Personalized Offer for New Users"). This name appears in reports and the Convert UI. type: string maxLength: 200 description: description: An optional, more detailed explanation of what this variation entails or what changes it implements compared to the original or other variations. type: string maxLength: 2000 nullable: true is_baseline: type: boolean description: 'If `true`, this variation is considered the baseline (control) against which other variations in the experience are compared for performance. Typically, the "Original" variation is the baseline. Only one variation per experience can be the baseline. Knowledge Base: "What is a Baseline?" ' traffic_distribution: description: 'The percentage of eligible traffic allocated to this specific variation. The sum of `traffic_distribution` for all active variations within an experience should ideally be 100% of the traffic allocated to the experience itself. For Multi-Armed Bandit (MAB) experiences, this value may be dynamically adjusted by the system. Knowledge Base: "What is an Traffic Distribution?" ' type: number minimum: 0 maximum: 100 multipleOf: 0.0001 key: description: 'A unique, machine-readable key or identifier for this variation within the project. Often auto-generated from the name if not specified, but can be user-defined for easier programmatic reference (e.g., in Full Stack SDKs). Example: "control", "treatment_A". ' type: string maxLength: 32 concurrency_key: $ref: '#/components/schemas/ConcurrencyKey' ExperienceIntegrationYsance: allOf: - $ref: '#/components/schemas/ExperienceIntegrationBase' - type: object properties: custom_dimension: type: string description: Custom dimension where experience data should be sent to. required: - custom_dimension VisitorDataExistsMatchRulesTypes: type: string enum: - visitor_data_exists ExperienceIntegrationHeapanalytics: allOf: - $ref: '#/components/schemas/ExperienceIntegrationBase' SubAccountBase: type: object description: Base properties common to both main and sub-accounts. properties: id: description: The unique numerical identifier for the account. type: integer readOnly: true accountType: $ref: '#/components/schemas/AccountTypes' name: type: string description: The user-defined, friendly name for the account (e.g., "Client X Marketing", "My Company Inc."). maxLength: 200 accessRole: allOf: - readOnly: true - $ref: '#/components/schemas/AccessRoleNames' access_all_projects: type: boolean description: Indicates if the authenticated user has access to all projects within this account by default, or if access is granted on a per-project basis. readOnly: true MainAccountDetailsBase: allOf: - $ref: '#/components/schemas/SubAccountDetailsBase' - $ref: '#/components/schemas/MainAccountBase' - type: object description: Account details data properties: billing: description: Billing related data and settings type: object properties: id: type: string nullable: true readOnly: true description: id of the account into the billing system details: description: Account billing details type: object properties: company: description: Business name type: string nullable: true maxLength: 200 tax_code: description: Unique code that identifies business for tax reasons type: string nullable: true maxLength: 200 phone: description: Contact phone number type: string nullable: true maxLength: 15 address_street: description: Address street name type: string nullable: true maxLength: 200 address_city: description: Address city name type: string nullable: true maxLength: 50 address_zip: description: Address zip code type: string nullable: true maxLength: 15 address_state: description: Address state type: string nullable: true maxLength: 100 address_country: description: Address country type: string nullable: true maxLength: 50 emails: description: 'List of email addresses that will get billing related notifications(eg: invoices) ' type: array items: type: string maxLength: 100 settings: description: Various settings that the user can tweak to control billing type: object properties: overQuota_charges: description: Flag indicating whether Convert can allow account's usage to go over the included quota and charge extra type: boolean subscription_paused_until: description: Unix timestamp representing the time until which the subscription is paused, in UTC time, null if subscription not in paused mode nullable: true type: number payment: allOf: - $ref: '#/components/schemas/PaymentMethod' - nullable: true settings: type: object properties: single_sign_on_status: type: string description: The status of Single Sign On for this account. enum: - disabled - pending-disable - pending-enable - enabled ExperienceIntegrationGA4: allOf: - $ref: '#/components/schemas/ExperienceIntegrationGA4Base' - $ref: '#/components/schemas/IntegrationGA4' - type: object properties: audiences: type: object description: List of GA audiences created for each of this experience's variations additionalProperties: type: string description: Variation ID is the key, value is the ID of the audience created inside GoogleAnalytics OnlyCount: type: object properties: onlyCount: type: boolean description: 'If set to `true` in a list request, the response will only contain the total count of matching items (`extra.pagination.items_count`) and will not include the actual item data. Useful for quickly getting totals without fetching full datasets. ' ExperienceAlert: type: object properties: code: type: string description: A machine-readable code for the alert type. enum: - not_in_project - max_visitors_reached - no_goals_set_up - no_visitors_tracked - no_conversions_tracked - experiments_completed title: type: string description: A short, human-readable title for the alert. description: type: string description: A more detailed explanation of the alert and potential actions to take. SuccessData: type: object properties: code: type: integer format: int32 message: type: string ProjectIntegrationGA4: allOf: - $ref: '#/components/schemas/ProjectGASettingsBase' - $ref: '#/components/schemas/IntegrationGA4' - type: object properties: no_wait_pageview: type: boolean description: Boolean indicating whether to wait for the page view event to complete before sending other events. BaseRuleWithNumericValue: allOf: - $ref: '#/components/schemas/BaseRule' - type: object properties: value: description: The value used to match against 'rule_type' using 'matching' type: number DayOfWeekMatchRulesTypes: type: string enum: - local_time_day_of_week - project_time_day_of_week ExperienceUserCustomizations: type: array description: A list of user-defined key-value pairs for customizing UI elements or behavior related to this experience within the Convert application itself. These do not affect the live experiment seen by visitors. items: $ref: '#/components/schemas/UserCustomization' maxItems: 100 TrackingScriptReleaseLatest: allOf: - $ref: '#/components/schemas/TrackingScriptReleaseBase' - type: object additionalProperties: false properties: type: enum: - latest ChangeHistoryMethods: type: string enum: - api - app ExperienceChangeDefaultCodeMultipageDataBase: type: object description: Defines a standard code-based change that applies to a specific page within a Multi-page Funnel experiment. This allows different code (CSS, JS) to be applied to different steps of the funnel for the same variation. allOf: - $ref: '#/components/schemas/ExperienceChangeBase' - type: object properties: type: enum: - defaultCodeMultipage data: type: object description: Describes structure for "defaultCodeMultipage" type of experience change additionalProperties: false properties: css: type: string nullable: true description: CSS code to be applied by this change js: type: string nullable: true description: Javascript code generated by the visual editor or written in the same structure, to be applied by this experience change custom_js: type: string description: Custom javascript code to be applied by this change nullable: true page_id: description: The **id** of the page connected to this change. type: string MinuteOfHourMatchRule: allOf: - $ref: '#/components/schemas/BaseRuleWithMinuteOfHourValue' - type: object required: - rule_type properties: rule_type: $ref: '#/components/schemas/MinuteOfHourMatchRulesTypes' matching: allOf: - $ref: '#/components/schemas/BaseMatch' - type: object properties: match_type: $ref: '#/components/schemas/NumericMatchingOptions' Pagination: type: object properties: current_page: description: The current page number being displayed from the paginated set. type: integer minimum: 1 items_count: description: The total number of items available across all pages for the current filter criteria. type: integer minimum: 0 items_per_page: description: The number of items included in the current page of results (matches `results_per_page` from the request). type: integer minimum: 0 pages_count: description: The total number of pages available for the current filter criteria and `results_per_page` setting. type: integer minimum: 0 AccountLiveDataRequestData: allOf: - $ref: '#/components/schemas/AccountLiveDataFilteringOptions' CookieMatchRulesTypes: type: string enum: - cookie Domain: type: object description: A website domain data. properties: id: type: integer description: Domain ID. readOnly: true url: type: string maxLength: 150 pattern: ^(http|https):// description: Domain's homepage url code_installed: type: boolean description: Indicating whether code installed check passed sometimes in the past. default: false AccountHistoryRequestData: allOf: - $ref: '#/components/schemas/OnlyCount' - $ref: '#/components/schemas/PageNumber' - $ref: '#/components/schemas/AccountHistoryFilteringOptions' SimpleProjectExpandable: oneOf: - type: integer description: Project ID - $ref: '#/components/schemas/SimpleProject' ExperienceIntegrationHotjar: allOf: - $ref: '#/components/schemas/ExperienceIntegrationBase' MultipageExperiencePage: description: Defines a single page within a 'multipage' (funnel) experience. allOf: - type: object properties: id: description: The ID of the page. type: string minLength: 1 maxLength: 2 pattern: ^[0-9a-z]{1,2}$ name: description: Name of the page type: string maxLength: 200 url: description: The url of page to load type: string maxLength: 2048 additionalProperties: false BillingUsageLimitBase: type: object properties: limitValue: oneOf: - type: integer description: 'What is the limits value, "how many" could be used at max Describes how system deal with charging upon reaching the usage quota limits Eg. limitValue = 500000, overLimitCostPerUnit=199, unitSize=100000 translates into - - Max usage that is included in the current plan is 500000 - after reaching the 500000 included, every additional 100000 will be charged with 199 ' - type: string enum: - unlimited LanguageMatchRule: allOf: - $ref: '#/components/schemas/BaseRuleWithLanguageCodeValue' - type: object required: - rule_type properties: rule_type: $ref: '#/components/schemas/LanguageMatchRulesTypes' matching: allOf: - $ref: '#/components/schemas/BaseMatch' - type: object properties: match_type: $ref: '#/components/schemas/ChoiceMatchingOptions' BillingPlanData: allOf: - type: object properties: id: type: integer name: description: Plan's name type: string price: description: Subscription price type: number billingCycleDuration: type: string description: billing cycle duration in the form of XM or XY where X is a number. Eg. 1M means billing cycle's duration is one month. 2Y would mean billing cycle duration is two years contract: type: string description: The type of the contract needed for this plan. enum: - pay_as_you_go - year - $ref: '#/components/schemas/BillingPlanDataBase' - $ref: '#/components/schemas/BillingPlanLimitsAndCapabilities' ExperienceIntegrationEconda: allOf: - $ref: '#/components/schemas/ExperienceIntegrationBase' AudienceTypesNoUrl: description: 'Defines the behavior and persistence of an audience that does *not* use URL-based conditions in its rules. - `permanent`: Once a visitor matches the audience criteria, they are permanently considered part of this audience for future sessions and evaluations, even if their characteristics change later. The matching is checked only at the initial bucketing time. - `transient`: A visitor must match the audience criteria upon each evaluation (e.g., on every page load or when an experiment is rechecked) to be included. If conditions are no longer met, the visitor is no longer part of the audience for that specific evaluation. For Full Stack projects, only `transient` and `segmentation` (if applicable without URL rules) are valid. ' type: string enum: - permanent - transient AccountLiveDataFilteringOptions: allOf: - type: object properties: event_types: type: array nullable: true items: $ref: '#/components/schemas/LiveDataEventTypes' projects: type: array nullable: true description: List of projects id to get data by items: type: integer segments: nullable: true allOf: - $ref: '#/components/schemas/ReportingSegmentsFilters' - $ref: '#/components/schemas/LiveDataExpandParameter' VisitorTypeMatchRule: allOf: - $ref: '#/components/schemas/BaseRuleWithVisitorTypeValue' - type: object required: - rule_type properties: rule_type: $ref: '#/components/schemas/VisitorTypeMatchRulesTypes' matching: allOf: - $ref: '#/components/schemas/BaseMatch' - type: object properties: match_type: $ref: '#/components/schemas/ChoiceMatchingOptions' AccountDetails: oneOf: - $ref: '#/components/schemas/MainAccountDetails' - $ref: '#/components/schemas/SubAccountDetails' discriminator: propertyName: accountType mapping: main: '#/components/schemas/MainAccountDetails' sub: '#/components/schemas/SubAccountDetails' ExperienceChangeDefaultRedirectData: type: object description: Represents a 'defaultRedirect' type change, including its system-assigned ID. allOf: - $ref: '#/components/schemas/ExperienceChangeIdReadOnly' - $ref: '#/components/schemas/ExperienceChangeDefaultRedirectDataBase' - type: object properties: concurrency_key: $ref: '#/components/schemas/ConcurrencyKey' BaseRuleWithHourOfDayValue: allOf: - $ref: '#/components/schemas/BaseRule' - type: object properties: value: description: Hour of day used for matching type: number minimum: 0 maximum: 24 SE_MabSettings: type: object description: 'Configuration for Multi-Armed Bandit (MAB) traffic allocation. If `null`, MAB is disabled and manual traffic allocation is used. MAB dynamically allocates more traffic to better-performing variations based on the `primary_metric` of the `primary_goal`. KB: "Multi-Armed Bandit (MAB) & Auto-Allocation in Convert". ' properties: strategy: description: 'The MAB algorithm used for dynamic traffic allocation: - `epsilon_greedy`: Mostly exploits the best-known variation, but explores others with a small probability (epsilon). - `ucb`: Upper Confidence Bound, balances exploration and exploitation based on uncertainty and potential. - `thompson_sampling`: (Default) A Bayesian approach that samples from posterior distributions to choose variations. ' type: string enum: - epsilon_greedy - ucb - thompson_sampling default: thompson_sampling exploration_rate: description: 'For `epsilon_greedy` strategy, this is the ''epsilon'' value (0 to 1) representing the probability of choosing a random variation for exploration instead of the current best-performing one. A higher value means more exploration. Default is often 0.1 or 0.3. ' type: number minimum: 0 maximum: 1 enum: - 0 - 0.1 - 0.2 - 0.3 - 0.4 - 0.5 - 0.6 - 0.7 - 0.8 - 0.9 - 1 default: 0.3 ExpandedExperienceVariationData: allOf: - $ref: '#/components/schemas/ExperienceVariationBaseExtended' - type: object properties: changes: description: An array of changes that this variation would apply. type: array items: oneOf: - type: integer description: Change ID - $ref: '#/components/schemas/ExperienceChange' PageNumber: type: object properties: page: type: integer minimum: 1 description: 'The page number for paginated results. For example, if `results_per_page` is 30, `page: 2` will retrieve items 31-60. Defaults to 1 if not specified. ' ExperienceCollaborator: type: object properties: first_name: type: string description: Collaborator's first name. last_name: type: string nullable: true description: Collaborator's last name. role: type: string description: The collaborator's access role within the project or account (e.g., 'Admin', 'Editor'). user_id: type: string description: The unique identifier for the collaborator user. is_author: type: boolean description: True if this collaborator is the original creator (author) of the experience. LiveDataExpandFields: type: string enum: - custom_segments - experiences - experiences.variation - conversion.goals - project ExperienceIntegrationMouseflow: allOf: - $ref: '#/components/schemas/ExperienceIntegrationBase' ExperienceExpandFields: type: string enum: - project - audiences - goals - locations - variations - variations.changes - tags NoSettingsGoal: allOf: - $ref: '#/components/schemas/GoalBase' - type: object properties: type: enum: - visits_page - code_trigger IntegrationGA4: allOf: - $ref: '#/components/schemas/IntegrationGA4Base' - type: object properties: propertyId: type: string description: ID of the ga4 property where data will be sent. Used internally for API calls to GoogleAnalytics ReportingSegmentsVisitorType: type: string description: 'Classifies the visitor as either ''new'' or ''returning'' based on their site visit history (tracked by Convert cookies). - `new`: First-time visitor to the site (or no existing Convert cookie). - `returning`: Visitor has been to the site before. Allows report segmentation to compare behavior of new vs. returning users. Knowledge Base: "What is a New/Returning Visitor as Defined in an Experiment''s Audience?". ' enum: - new - returning RequestAccountAddonsData: type: object description: Specifies the add-on to request and optionally, collaborator details if it's for a specific user. required: - addon properties: addon: $ref: '#/components/schemas/AccountAddonsTypes' collaborator_email: type: string description: Email of the collaborator for whom the add-on is being requested (if applicable). maxLength: 100 collaborator_name: type: string description: Name of the collaborator for whom the add-on is being requested (if applicable). maxLength: 200 GaGoal: allOf: - $ref: '#/components/schemas/GoalBase' - type: object properties: type: enum: - ga_import settings: $ref: '#/components/schemas/GaGoalSettings' ReportingSegmentsCampaign: type: string description: 'The campaign name associated with the visitor''s session, typically derived from `utm_campaign` URL parameters. Allows report segmentation by marketing campaign. Knowledge Base: "How Do You Fill Medium, Keyword and Source Name?". ' RuleObjectNoUrl: type: object nullable: true description: 'Similar to `RuleObject`, but the individual `RuleElementNoUrl` conditions within `OR_WHEN` arrays cannot include URL-based matching types. Used for ''permanent'' or ''transient'' audiences where URL context is not persistently evaluated or relevant for the audience type. ' properties: OR: description: An array of AND-blocks. type: array items: type: object properties: AND: description: An array of OR_WHEN-blocks. type: array items: type: object properties: OR_WHEN: description: An array of individual rule elements that do not involve URL matching. type: array items: $ref: '#/components/schemas/RuleElementNoUrl' TrackingScriptReleaseScheduled: allOf: - $ref: '#/components/schemas/TrackingScriptReleaseBase' - type: object additionalProperties: false properties: type: enum: - scheduled automatic_apply_on: $ref: '#/components/schemas/TrackingScriptReleaseAutomaticApplyOn' MinuteOfHourMatchRulesTypes: type: string enum: - local_time_minute_of_hour - project_time_minute_of_hour 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 ExperienceIntegrationGoogleAnalytics: oneOf: - $ref: '#/components/schemas/ExperienceIntegrationGA3' - $ref: '#/components/schemas/ExperienceIntegrationGA4' discriminator: propertyName: type mapping: ga3: '#/components/schemas/ExperienceIntegrationGA3' ga4: '#/components/schemas/ExperienceIntegrationGA4' SubAccountStats: type: object properties: stats: $ref: '#/components/schemas/AccountGeneralStats' PaymentMethodPaypal: type: object description: PayPal payment method data properties: method: type: string enum: - paypal description: Payment method type identifier data: type: object description: PayPal payment method data (empty for now) additionalProperties: false required: - method - data LocationTrigger: description: 'Defines how and when an experience associated with this location should be activated for a visitor who matches the location''s rules. The `type` determines the activation mechanism. Knowledge Base: "Locations" - "Dynamic Website Triggers". ' oneOf: - $ref: '#/components/schemas/LocationTriggerDomElement' - $ref: '#/components/schemas/LocationTriggerCallback' - $ref: '#/components/schemas/LocationTriggerManual' - $ref: '#/components/schemas/LocationTriggerUponRun' discriminator: propertyName: type mapping: dom_element: '#/components/schemas/LocationTriggerDomElement' callback: '#/components/schemas/LocationTriggerCallback' manual: '#/components/schemas/LocationTriggerManual' upon_run: '#/components/schemas/LocationTriggerUponRun' LanguageMatchRulesTypes: type: string enum: - language LiveDataEventTypes: type: string enum: - view_experience - conversion - transaction Experience: allOf: - type: object properties: id: type: integer description: Experience's ID which identify an experience in the system project: $ref: '#/components/schemas/ProjectExpandable' alerts: type: array items: $ref: '#/components/schemas/ExperienceAlert' collaborators: type: array items: $ref: '#/components/schemas/ExperienceCollaborator' audiences: type: array description: The list of audiences for which this experience is supposed to run items: $ref: '#/components/schemas/AudienceExpandable' locations: type: array description: The list of locations on which this experience is supposed to run items: $ref: '#/components/schemas/LocationExpandable' goals: type: array description: The list of goals connected to this experience; experience of type deploy does not have goals attached; items: $ref: '#/components/schemas/GoalExpandable' tags: type: array description: The list of tags connected to this experience items: $ref: '#/components/schemas/TagExpandable' multipage_pages: type: array description: Only for multipage experience type items: $ref: '#/components/schemas/MultipageExperiencePage' customizations: $ref: '#/components/schemas/ExperienceUserCustomizations' stats: description: Experience's condensed statistics(only for experiences that get access to a report) type: object properties: goal_id: description: 'ID of the goal used to calculate the stats. It can be provided in the request or otherwise it defaults to experience''s Primary Goal ' type: integer conversions: description: Number of conversions recorded for after this experience was presented, for the primary goal or the goal given inside the request(if any) type: integer variations_observed_results: description: Results observed for each experience's variation type: array items: type: object properties: variation_id: description: Variation id type: integer improvement: description: Improvement observed over Baseline, as percentage type: number probability_beat_control: description: Calculated probability to beat control. Will be 0 if cannot be calculated yet type: number test_result: description: Result of the statistical test for this variation, compared to the baseline type: string enum: - winner - losing - notConcluded - noChange revenue_per_visitor: description: Calculated revenue per visitor. Applicable for revenue goals, otherwise null. type: number default: null mab_allocation: description: Calculated mab allocation. Applicable for experiences with enabled mab_allocation. type: number default: null visitors: description: Number of unique visitors tracked for this experience type: integer variations: type: array description: 'The list of variations of this experience. **Note:** This is the final list of variations so any variation not provided, which was previously connected, would get deleted. ' items: $ref: '#/components/schemas/ExperienceVariation' status: $ref: '#/components/schemas/ExperienceStatuses' - $ref: '#/components/schemas/ExperienceBase' GoalTriggeredMatchRule: allOf: - $ref: '#/components/schemas/BaseRuleWithGoalTriggeredValue' - type: object required: - rule_type properties: rule_type: $ref: '#/components/schemas/GoalTriggeredMatchRulesTypes' matching: allOf: - $ref: '#/components/schemas/BaseMatch' - type: object properties: match_type: $ref: '#/components/schemas/ChoiceMatchingOptions' CookieMatchRule: allOf: - $ref: '#/components/schemas/BaseRuleWithStringValue' - type: object required: - rule_type properties: rule_type: $ref: '#/components/schemas/CookieMatchRulesTypes' matching: allOf: - $ref: '#/components/schemas/BaseMatch' - type: object properties: match_type: $ref: '#/components/schemas/CookieMatchingOptions' key: description: The name of the cookie which value is compared to the given rule value type: string ExperienceIntegrationMixpanel: allOf: - $ref: '#/components/schemas/ExperienceIntegrationBase' ExperienceIntegrationCrazyegg: description: 'Configuration for integrating with Crazy Egg. Convert sends experiment and variation data to allow segmentation of Crazy Egg heatmaps and recordings by variation. Project-level API key and secret for Crazy Egg might be required for some functionalities (not specified here, but in KB for other tools). KB: "Integrate Convert Experiences with Crazy Egg". ' allOf: - $ref: '#/components/schemas/ExperienceIntegrationBase' ExperienceChangeDefaultRedirectDataBase: type: object description: Defines a URL redirect, typically used in Split URL experiments. It specifies how to match an original URL and construct the URL for the variation page. allOf: - $ref: '#/components/schemas/ExperienceChangeBase' - type: object properties: type: enum: - defaultRedirect data: type: object description: Describes structure for "defaultRedirect" type of experience change additionalProperties: false properties: case_sensitive: type: boolean description: Defines whether the URL matching is case sensitive or not original_pattern: type: string description: Pattern for matching the Original URL in order to construct the redirect URL variation_pattern: type: string description: String used to construct the variation redirect URL. This string can contain matches from original_url or it can be a standard URL BaseRule: type: object required: - rule_type properties: rule_type: description: 'The specific attribute or condition to evaluate. Examples: ''url'', ''cookie'', ''browser_name'', ''js_condition'', ''page_tag_product_price''. The allowed `rule_type` values depend on whether the rule is for an Audience (which can use visitor and page content attributes if it''s a ''segmentation'' type) or a Location (typically URL or page tag based). ' type: string SegmentBucketedMatchRulesTypes: type: string enum: - bucketed_into_segment LocationDomTriggerEvents: type: string description: 'The type of user interaction with a DOM element that will trigger the experience: - `click`: Activates when the element is clicked. - `hover`: Activates when the mouse pointer hovers over the element (mouseenter). - `in_view`: Activates when the element becomes visible in the browser''s viewport (e.g., user scrolls to it). KB: "Launch Experiments Using Custom JavaScript When Elements Appear in DOM". - `change`: Activates when the value of a form element (like input, select, textarea) changes. ' enum: - click - hover - in_view - change 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 AccountDetailsResponseData: type: object description: Contains the full details of a requested account, which could be a main account or a sub-account. properties: data: $ref: '#/components/schemas/AccountDetails' Tag: type: object description: 'Represents a tag (keyword or label) that can be associated with various Convert entities like experiences, goals, audiences, hypotheses, and observations. Tags help organize and categorize these entities for easier filtering, searching, and management. Knowledge Base: "Adding tags to your Experiences". ' properties: id: type: integer readOnly: true description: The unique numerical identifier for the tag. name: type: string description: The user-defined name of the tag (e.g., "Q3 Campaigns", "Homepage Tests", "High Priority", "Mobile Specific"). This is the primary identifier shown in the UI. maxLength: 100 description: type: string description: (Optional) A brief explanation of the tag's purpose or the criteria for its application. maxLength: 200 nullable: true BaseRuleWithCountryCodeValue: allOf: - $ref: '#/components/schemas/BaseRule' - type: object properties: value: description: The 2 letter ISO country code used for matching type: string minLength: 2 maxLength: 2 SubAccountDetailsBase: allOf: - $ref: '#/components/schemas/SubAccountBase' - type: object description: Account details data properties: settings: description: Various Account level settings that can be controlled by the user type: object properties: blocked_ips: description: List of IPs and IP ranges that are blocked from reporting type: object properties: range: description: List of IP ranges that are blocked from reporting type: array items: type: object minProperties: 1 properties: start: description: Start of the blocked IP range type: string format: ip-address end: description: End of the blocked IP range type: string format: ip-address name: type: string nullable: true maxLength: 64 required: - start - end single: description: List of single IPs blocked from the reporting type: array items: type: object minProperties: 1 properties: value: type: string format: ip-address name: type: string nullable: true maxLength: 64 required: - value setup_plan: type: object description: Setup plan settings. Only avaialable if current plan is Trial nullable: true additionalProperties: false properties: settings: type: object nullable: true description: Setup plan details additionalProperties: false properties: initiator: type: object description: Details of the user who initiated setup plan nullable: true additionalProperties: false required: - user_id properties: user_id: type: string description: User's unique ID in Convert's system consumer: type: object description: Details of the user who setup plan additionalProperties: false nullable: true required: - user_id properties: user_id: type: string description: User's unique ID in Convert's system timestamp: type: integer nullable: true description: The timestamp of the moment when setup plan has been requested, in UTC time remind_in: type: integer nullable: true description: The timestamp of the moment when the onboard popup will be displayed again, in UTC time tracking_script: type: object description: Tracking script version related data nullable: true additionalProperties: false properties: available_versions: $ref: '#/components/schemas/TrackingScriptAvailableVersions' release: $ref: '#/components/schemas/TrackingScriptRelease' StartPaymentSetupPaddleResponseData: type: object description: Paddle payment setup response. properties: provider: type: string enum: - paddle description: Billing provider identifier. Always `paddle` for this schema. transaction_id: type: string description: Paddle transaction ID to be used with Paddle Checkout. required: - provider - transaction_id ExperienceVariation: anyOf: - type: integer description: Variation ID - $ref: '#/components/schemas/CollapsedExperienceVariationData' - $ref: '#/components/schemas/ExpandedExperienceVariationData' BrowserNameMatchRule: allOf: - $ref: '#/components/schemas/BaseRuleWithBrowserNameValue' - type: object required: - rule_type properties: rule_type: $ref: '#/components/schemas/BrowserNameMatchRulesTypes' matching: allOf: - $ref: '#/components/schemas/BaseMatch' - type: object properties: match_type: $ref: '#/components/schemas/ChoiceMatchingOptions' SimpleAudienceSegment: type: object properties: id: description: The unique numerical identifier of the segment (audience). type: integer name: description: The user-defined, friendly name of the segment. type: string GoalStats: type: object readOnly: true properties: conversions_last_48h: type: integer description: The total number of times this goal has been triggered (converted) across all experiences in the last 48 hours. Useful for verifying if a goal is actively tracking. times_used: type: integer description: The number of active (non-archived) experiences that currently have this goal attached for tracking. GaGoalSettings: type: object additionalProperties: false properties: ga_event: description: The name of the event in Google Analytics (GA4) or the Goal configuration in Universal Analytics that this Convert goal corresponds to. When this GA event/goal occurs, the Convert goal is triggered. type: string ExperienceIntegrationClicky: allOf: - $ref: '#/components/schemas/ExperienceIntegrationBase' PaymentMethodVoucher: type: object description: Voucher payment method data properties: method: type: string enum: - voucher description: Payment method type identifier data: type: object description: Voucher payment method data (empty for now) additionalProperties: false required: - method - data GenericTextKeyValueMatchRule: allOf: - $ref: '#/components/schemas/BaseRuleWithStringValue' - type: object required: - rule_type properties: rule_type: $ref: '#/components/schemas/GenericTextKeyValueMatchRulesTypes' matching: allOf: - $ref: '#/components/schemas/BaseMatch' - type: object properties: match_type: $ref: '#/components/schemas/TextMatchingOptions' - $ref: '#/components/schemas/GenericKey' ExperienceChange: description: Represents a single, specific modification applied as part of an experience's variation. The exact structure and content depend on the `type` of change. oneOf: - $ref: '#/components/schemas/ExperienceChangeDefaultCodeData' - $ref: '#/components/schemas/ExperienceChangeDefaultCodeMultipageData' - $ref: '#/components/schemas/ExperienceChangeDefaultRedirectData' - $ref: '#/components/schemas/ExperienceChangeCustomCodeData' - $ref: '#/components/schemas/ExperienceChangeRichStructureData' - $ref: '#/components/schemas/ExperienceChangeFullStackFeature' discriminator: propertyName: type mapping: richStructure: '#/components/schemas/ExperienceChangeRichStructureData' customCode: '#/components/schemas/ExperienceChangeCustomCodeData' defaultCode: '#/components/schemas/ExperienceChangeDefaultCodeData' defaultCodeMultipage: '#/components/schemas/ExperienceChangeDefaultCodeMultipageData' defaultRedirect: '#/components/schemas/ExperienceChangeDefaultRedirectData' fullStackFeature: '#/components/schemas/ExperienceChangeFullStackFeature' OsMatchRule: allOf: - $ref: '#/components/schemas/BaseRuleWithOsValue' - type: object required: - rule_type properties: rule_type: $ref: '#/components/schemas/OsMatchRulesTypes' matching: allOf: - $ref: '#/components/schemas/BaseMatch' - type: object properties: match_type: $ref: '#/components/schemas/ChoiceMatchingOptions' ExperienceChangeDefaultCodeData: type: object description: Represents a 'defaultCode' type change, including its system-assigned ID. allOf: - $ref: '#/components/schemas/ExperienceChangeIdReadOnly' - $ref: '#/components/schemas/ExperienceChangeDefaultCodeDataBase' - type: object properties: concurrency_key: $ref: '#/components/schemas/ConcurrencyKey' IntegrationProvider: type: string description: 'Identifies the third-party analytics, heatmap, or data platform with which Convert Experiences is integrated for this specific experience. This allows experiment data (like experience ID and variation ID/name) to be sent to the selected provider. Knowledge Base has many articles on integrations, e.g., "Integrate Convert Experiences with Google Analytics", "Hotjar Integration". ' enum: - baidu - clicktale - clicky - cnzz - crazyegg - econda - eulerian - google_analytics - gosquared - heapanalytics - hotjar - microsoft_clarity - mixpanel - mouseflow - piwik - segmentio - sitecatalyst - woopra - ysance JsConditionMatchRule: allOf: - $ref: '#/components/schemas/BaseRuleWithJsCodeValue' - type: object required: - rule_type properties: rule_type: $ref: '#/components/schemas/JsConditionMatchRulesTypes' matching: allOf: - $ref: '#/components/schemas/BaseMatch' - type: object properties: match_type: $ref: '#/components/schemas/ChoiceMatchingOptions' PaymentMethodInvoice: type: object description: Invoice payment method data properties: method: type: string enum: - invoice description: Payment method type identifier data: type: object description: Invoice payment method data (empty for now) additionalProperties: false required: - method - data GenericBoolMatchRule: allOf: - $ref: '#/components/schemas/BaseRuleWithBooleanValue' - type: object required: - rule_type properties: rule_type: $ref: '#/components/schemas/BoolMatchRulesTypes' matching: allOf: - $ref: '#/components/schemas/BaseMatch' - type: object properties: match_type: $ref: '#/components/schemas/ChoiceMatchingOptions' GenericBoolKeyValueMatchRulesTypes: type: string enum: - generic_bool_key_value BoolMatchRulesTypes: type: string enum: - bucketed_into_experience - is_desktop - is_mobile - is_tablet CountryMatchRulesTypes: type: string enum: - country ProjectExpandable: readOnly: true anyOf: - type: integer description: Project ID to which the data belongs to - $ref: '#/components/schemas/Project' ExperienceIntegrationPiwik: allOf: - $ref: '#/components/schemas/ExperienceIntegrationBase' - type: object properties: custom_dimension: type: string description: Custom dimension where experience data should be sent to. required: - custom_dimension GenericTextMatchRule: allOf: - $ref: '#/components/schemas/BaseRuleWithStringValue' - type: object required: - rule_type properties: rule_type: $ref: '#/components/schemas/TextMatchRulesTypes' matching: allOf: - $ref: '#/components/schemas/BaseMatch' - type: object properties: match_type: $ref: '#/components/schemas/TextMatchingOptions' PaymentMethod: description: Payment method information for billing purposes (used for both GET and UPDATE operations) type: object nullable: true oneOf: - $ref: '#/components/schemas/PaymentMethodCard' - $ref: '#/components/schemas/PaymentMethodPaypal' - $ref: '#/components/schemas/PaymentMethodApplePay' - $ref: '#/components/schemas/PaymentMethodWireTransfer' - $ref: '#/components/schemas/PaymentMethodVoucher' - $ref: '#/components/schemas/PaymentMethodInvoice' discriminator: propertyName: method mapping: card: '#/components/schemas/PaymentMethodCard' paypal: '#/components/schemas/PaymentMethodPaypal' apple_pay: '#/components/schemas/PaymentMethodApplePay' wire_transfer: '#/components/schemas/PaymentMethodWireTransfer' voucher: '#/components/schemas/PaymentMethodVoucher' invoice: '#/components/schemas/PaymentMethodInvoice' RuleObjectAudience: type: object nullable: true description: This one describes a logical rule that is being used inside the app for triggering goals, matching audiences etc properties: OR: description: This describes an outer set of blocks which are evaluated using OR's between them type: array items: type: object properties: AND: description: This describes a colections of logical blocks which are evaluated using AND's between them type: array items: type: object properties: OR_WHEN: description: This describes a colections of logical blocks which are evaluated using OR's between them type: array items: $ref: '#/components/schemas/RuleElementAudience' GenericNumericKeyValueMatchRulesTypes: type: string enum: - generic_numeric_key_value ExperienceSettings: allOf: - type: object description: Experience's settings list properties: split_url_settings: type: object description: A couple of settings only applicable to Split URL experiments properties: split_regex_support: type: boolean description: 'Whether regular expressions are supported in original/variation URLs of a split URL experiment or not. It only applies to **experience_type** - **split_url** ' split_add_query_params: type: boolean description: 'Whether original/variation urls have incorporated or not the needed regular expression to copy query string parameters from one to the other in the redirect process. It only applies to **experience_type** - **split_url** and it''s only used internally in Convert''s app ' split_query_params_hide_regex: type: boolean description: 'Whether the user selected to hide or not the part of the regular expression automatically added by enabling **split_add_query_params**. It only applies to **experience_type** - **split_url** and it''s only used internally in Convert''s app ' matching_options: type: object description: Various settings used for matching the list of Audiences and Locations properties: audiences: $ref: '#/components/schemas/GenericListMatchingOptions' locations: $ref: '#/components/schemas/GenericListMatchingOptions' visitor_insights: type: object readOnly: true description: 'Visitor Insights (Signals) settings for this experience. Heatmap IDs are stored here when heatmaps are created for the experience''s variations. ' nullable: true properties: heatmaps: type: object readOnly: true description: Map of variation ID to heatmap ID. Populated when heatmaps are created for this experience (one heatmap per variation). additionalProperties: type: string description: Heatmap ID for the variation. nullable: true example: '1003100122': 507f1f77bcf86cd799439012 - $ref: '#/components/schemas/ExperienceReportingSettings' LiveDataEvent: type: object description: Represents a single real-time tracking event, such as a visitor being exposed to an experience or triggering a conversion goal. properties: devices: description: 'A list of device categories the visitor''s device belongs to (e.g., "DESK" for desktop, "IPH" for iPhone, "ALLTAB" for any tablet). Based on User-Agent parsing. KB: "Targeting Mobile, Tablet, and Desktop". ' type: array items: $ref: '#/components/schemas/ReportingSegmentsDeviceCategories' browser: $ref: '#/components/schemas/ReportingSegmentsBrowser' country: $ref: '#/components/schemas/ReportingSegmentsCountry' visitor_type: $ref: '#/components/schemas/ReportingSegmentsVisitorType' campaign: allOf: - $ref: '#/components/schemas/ReportingSegmentsCampaign' nullable: true custom_segments: description: A list of custom Convert Audiences (of type 'segmentation') that this visitor is currently a member of. type: array items: $ref: '#/components/schemas/SimpleAudienceSegmentExpandable' nullable: true sources: description: The traffic source(s) attributed to the visitor's session (e.g., 'direct', 'referral', 'Search', 'Campaign'). Derived from UTM parameters or referrer. type: array items: $ref: '#/components/schemas/ReportingSegmentsSource' nullable: true event_type: $ref: '#/components/schemas/LiveDataEventTypes' experiences: type: array description: 'A list of experiences relevant to this event. - If `event_type` is ''view_experience'', this list contains the experience(s) the visitor was just bucketed into. - If `event_type` is ''conversion'' or ''transaction'', this list contains the experience(s) the visitor was part of when they triggered the goal/transaction. Each item can be an experience ID or an expanded simple experience object (ID, name, variation ID/name). ' items: $ref: '#/components/schemas/SimpleExperienceExpandable' nullable: true conversion: description: Details about the conversion event, present if `event_type` is 'conversion' or 'transaction'. type: object nullable: true properties: goals: type: array items: $ref: '#/components/schemas/SimpleGoalExpandable' products_ordered_count: type: integer description: For 'transaction' events, the number of distinct products included in the order. nullable: true revenue: type: number description: For 'transaction' events, the monetary value of the order. nullable: true project: allOf: - $ref: '#/components/schemas/SimpleProjectExpandable' timestamp: type: integer description: Unix timestamp (UTC) indicating precisely when this event occurred. BaseRuleWithStringValue: allOf: - $ref: '#/components/schemas/BaseRule' - type: object properties: value: description: The value used to match against 'rule_type' using 'matching' type: string ExperienceChangeRichStructureData: type: object description: Represents a 'richStructure' type change, including its system-assigned ID. allOf: - $ref: '#/components/schemas/ExperienceChangeIdReadOnly' - $ref: '#/components/schemas/ExperienceChangeRichStructureDataBase' - type: object properties: concurrency_key: $ref: '#/components/schemas/ConcurrencyKey' StartPaymentSetupResponseData: oneOf: - $ref: '#/components/schemas/StartPaymentSetupStripeResponseData' - $ref: '#/components/schemas/StartPaymentSetupPaddleResponseData' discriminator: propertyName: provider mapping: stripe: '#/components/schemas/StartPaymentSetupStripeResponseData' paddle: '#/components/schemas/StartPaymentSetupPaddleResponseData' VisualEditorUserAgents: description: Predefined User-Agent strings that the Visual Editor can emulate for responsive design and device-specific testing. type: string nullable: true enum: - chrome_desktop - chrome_ipad - chrome_iphone - chrome_android - safari_mac - safari_ipad - safari_iphone - firefox_desktop - firefox_ipad - firefox_iphone - firefox_android - edge_desktop - edge_tablet - brave_desktop - brave_ipad - brave_iphone - brave_android - opera_desktop - opera_ipad - opera_iphone - opera_android ChangeHistoryListResponseData: type: object properties: data: $ref: '#/components/schemas/ChangeHistoryList' extra: $ref: '#/components/schemas/Extra' PlanStatus: type: string description: Account billing status enum: - paid - trial - trialExpired - canceled - paused GenerateDebugTokenData: type: object readOnly: true properties: value: type: string ttl: type: integer description: Unix timestamp (UTC) indicating when this debug token will expire and become invalid. SortDirection: type: object properties: sort_direction: type: string nullable: true default: desc description: 'The direction for sorting the list results, based on the `sort_by` field. - `asc`: Ascending order (e.g., A-Z, 1-10, oldest to newest). - `desc`: Descending order (e.g., Z-A, 10-1, newest to oldest). Defaults to `desc` (newest/highest first) if not specified. ' enum: - asc - desc LocationRuleObject: type: object nullable: true description: 'Defines the logical structure for combining multiple rule conditions for a Location. It uses a nested OR -> AND -> OR_WHEN structure, similar to Audience rules, but `LocationRuleElement` types are restricted to page content/URL attributes. ' properties: OR: description: An array of AND-blocks. The location matches if any of these AND-blocks match. type: array items: type: object properties: AND: description: An array of OR_WHEN-blocks. This AND-block matches if all its OR_WHEN-blocks match. type: array items: type: object properties: OR_WHEN: description: An array of individual `LocationRuleElement` conditions. This OR_WHEN-block matches if any of its rule elements match. type: array items: $ref: '#/components/schemas/LocationRuleElement' AccountDetailsUpdate: oneOf: - $ref: '#/components/schemas/MainAccountDetailsUpdate' - $ref: '#/components/schemas/SubAccountDetailsUpdate' discriminator: propertyName: accountType mapping: main: '#/components/schemas/MainAccountDetailsUpdate' sub: '#/components/schemas/SubAccountDetailsUpdate' PaymentMethodCard: type: object description: Credit/debit card payment method data (used for both GET and UPDATE operations) properties: method: type: string enum: - card description: Payment method type identifier data: type: object description: Card payment method data properties: stripe_card_token: description: Stripe card token (required for Stripe provider when updating, not returned in GET responses) type: string maxLength: 200 writeOnly: true name_on_card: description: Name on the card type: string nullable: true maxLength: 100 time_added: description: Unix timestamp of the time when card was added into the system by the user, in UTC time type: number nullable: true last_digits: description: Last four digits of the card number (returned by backend, not required in updates) type: number readOnly: true required: - method - data GenericListMatchingOptions: type: string enum: - any - all description: 'Defines how multiple conditions within a list (e.g., multiple audiences or locations linked to an experience) are logically combined: - `any`: The overall condition is met if *at least one* item in the list matches (logical OR). - `all`: The overall condition is met only if *all* items in the list match (logical AND). Default is typically ''any'' (OR). ' default: any BaseRuleWithOsValue: allOf: - $ref: '#/components/schemas/BaseRule' - type: object properties: value: description: Operating System name used for matching type: string enum: - android - iphone - ipod - ipad - windows - macos - linux SubmitsFormGoalSettings: type: object additionalProperties: false properties: action: type: string description: 'The URL specified in the `action` attribute of the HTML form(s) to be tracked. When a form submitting to this URL is successfully submitted, the goal triggers. The page(s) where the form resides are defined in the goal''s `triggering_rule`. ' required: - action ExperienceTypes: type: string description: 'The type of optimization activity: - `a/b`: Standard A/B test comparing an original page/element against one or more variations. Changes made via Visual Editor or code. KB: "What is an Experiment?". - `a/a`: Tests the original page against an identical copy of itself to validate tracking setup and ensure no inherent bias. KB: "A/A Experiments". - `mvt`: Multivariate test, testing combinations of changes across multiple sections of a page. KB: "Creating a Multivariate Experiment". - `split_url`: Redirects traffic between different URLs to test entirely different page versions. KB: "How do Split URL Experiments work?". - `multipage`: Tests a consistent set of changes across a sequence of pages (funnel). KB: "Create Multipage Experiences". - `deploy`: Rolls out a specific set of changes to a targeted audience without A/B comparison reporting. KB: "What about Deployments?". - `a/b_fullstack`: An A/B test conducted using a Full Stack SDK, potentially involving server-side changes. KB: "Full Stack Experiments on Convert". - `feature_rollout`: A Full Stack experience for gradually rolling out a new feature, often using feature flags. ' enum: - a/b - a/a - mvt - split_url - multipage - deploy - a/b_fullstack - feature_rollout AccountHistoryFilteringOptions: allOf: - $ref: '#/components/schemas/SortDirection' - $ref: '#/components/schemas/ResultsPerPage' - type: object properties: methods: type: array nullable: true items: $ref: '#/components/schemas/ChangeHistoryMethods' projects: type: array nullable: true description: List of projects id to get data by items: type: integer objects: type: array nullable: true description: List of objects to get data by items: $ref: '#/components/schemas/ChangeHistoryObjectTypes' sort_by: type: string nullable: true default: timestamp description: "A value to sort history list by specific field(s)\n\n Defaults to **timestamp** if not provided\n" enum: - timestamp - project_id - event - object - $ref: '#/components/schemas/ChangeHistoryExpandParameter' ReportingSegmentsCustomSegment: description: 'The numerical ID of a custom Convert Audience (of type ''segmentation'') that the visitor is a member of. Allows report segmentation based on predefined custom segments (e.g., "High-Value Customers", "Engaged Users"). Knowledge Base: "Create Custom Segments". ' type: integer SubAccountCreate: allOf: - $ref: '#/components/schemas/SubAccountDetailsBase' - $ref: '#/components/schemas/SubAccountProductsCreate' - type: object properties: accountType: readOnly: true userName: type: string description: Name of the user that would own this account. userEmail: type: string description: 'Email of the user that would own this account. If the an user exists with that email, the respective user would be used. Otherwise, a new user would get created. ' sendUserEmail: type: boolean default: false description: 'Flag indicating whether an email to be sent or not to the user, notifying them that an account was created for them by main account. *An email with a complete sign-up link would be sent regardless if the user does not exist into the system and gets created.* ' customEmailText: type: string description: Custom text to be appended to the email that gets sent to the user if `sendUserEmail = true` maxLength: 1024 required: - name - billing - userName - userEmail GenericNumericMatchRule: allOf: - $ref: '#/components/schemas/BaseRuleWithNumericValue' - type: object required: - rule_type properties: rule_type: $ref: '#/components/schemas/NumericMatchRulesTypes' matching: allOf: - $ref: '#/components/schemas/BaseMatch' - type: object properties: match_type: $ref: '#/components/schemas/NumericMatchingOptions' TrackingScriptRelease: oneOf: - $ref: '#/components/schemas/TrackingScriptReleaseManual' - $ref: '#/components/schemas/TrackingScriptReleaseLatest' - $ref: '#/components/schemas/TrackingScriptReleaseScheduled' discriminator: propertyName: type mapping: manual: '#/components/schemas/TrackingScriptReleaseManual' latest: '#/components/schemas/TrackingScriptReleaseLatest' scheduled: '#/components/schemas/TrackingScriptReleaseScheduled' OsMatchRulesTypes: type: string enum: - os SimpleExperienceVariation: type: object properties: id: description: The unique numerical identifier of the variation. type: integer name: description: The user-defined, friendly name of the variation. type: string RevenueGoal: allOf: - $ref: '#/components/schemas/GoalBase' - type: object properties: type: enum: - revenue settings: $ref: '#/components/schemas/RevenueGoalSettings' ExperienceChangeFullStackFeature: type: object description: Represents a 'fullStackFeature' type change, including its system-assigned ID. allOf: - $ref: '#/components/schemas/ExperienceChangeIdReadOnly' - $ref: '#/components/schemas/ExperienceChangeFullStackFeatureBase' - type: object properties: concurrency_key: $ref: '#/components/schemas/ConcurrencyKey' ExperiencesListResponseData: type: object description: Response containing a list of experiences within a project, along with pagination details if applicable. properties: data: $ref: '#/components/schemas/ExperiencesList' extra: $ref: '#/components/schemas/Extra' Account: oneOf: - $ref: '#/components/schemas/MainAccount' - $ref: '#/components/schemas/SubAccount' discriminator: propertyName: accountType mapping: main: '#/components/schemas/MainAccount' sub: '#/components/schemas/SubAccount' ExperienceChangeCustomCodeDataBase: type: object description: Defines a change applied purely through custom-written CSS and/or JavaScript code, bypassing the Visual Editor's generated code. This offers maximum flexibility for developers. allOf: - $ref: '#/components/schemas/ExperienceChangeBase' - type: object properties: type: enum: - customCode data: type: object description: Describes structure for "defaultCode" type of experience change additionalProperties: false properties: css: type: string nullable: true description: CSS code to be applied by this change js: type: string description: Custom javascript code to be applied by this change nullable: true page_id: description: The **id** of the page connected to this change, in case this is a **multi-page** experiment type: string Project: description: 'Represents a Convert project, which is a container for organizing a set of related optimization activities (experiences), their goals, target audiences, associated website domains, and collaborators. Each project has its own unique tracking script. Knowledge Base: "What is a Project?". ' allOf: - $ref: '#/components/schemas/BaseProject' - type: object properties: id: type: integer description: Unique identifier representing a specific project in an user account. The project Id is part of the tracking snippet accessRole: $ref: '#/components/schemas/AccessRoleNames' owner_email: type: string description: Used only internally - An email of project owner. This field will exist only if project type is shared. account_id: type: integer description: The unique ID of the account under which this project is created. Account ID is also part of the tracking snippet created_at: type: integer description: Unix timestamp when project was created, in UTC time. modified_at: type: integer description: Unix timestamp when project was last modified, in UTC time. tracking_snippet: type: string description: The tracking code that needs to be placed on site in order to serve experiences from this project. updateMetadata: type: object description: 'Live update status for CDN invalidation of this project''s data and JS bundle. These fields allow the UI to inform the user when changes are pending and when they took effect. All timestamps are in seconds (UTC). ' properties: pendingChanges: type: object description: Flags indicating if changes are pending CDN invalidation. properties: data: type: boolean description: True if data changes are pending CDN invalidation. js: type: boolean description: True if JS bundle changes are pending CDN invalidation. lastInvalidation: type: object description: Timestamps for the last completed CDN invalidations. properties: js: type: integer nullable: true description: Timestamp (seconds) when the last JS CDN invalidation completed. data: type: integer nullable: true description: Timestamp (seconds) when the last Data CDN invalidation completed. nextInvalidation: type: object description: Timestamps for the nearest scheduled CDN invalidations. properties: js: type: integer nullable: true description: The nearest scheduled CDN invalidation time (seconds) for the JS bundle if pending. data: type: integer nullable: true description: The nearest scheduled CDN invalidation time (seconds) for Data if pending. type: type: string description: Used only internally - A value which describes project ownership. Can be own or shared. enum: - own - shared stats: type: object description: Various stats for this project. Optional field, controlled using [include fields](#tag/Optional-Fields) properties: visitor_data: type: object description: Visitor Data usage statistics for current project properties: visitor_profiles_count: type: integer description: The total count of Visitor Data records inside current project. visitor_profiles_fields_count: type: integer description: The total count of Visitor Data Placeholders inside current project. active_personalised_experiences_count: type: integer description: The total count of active experiences that use Visitor Data Placeholders inside current project. google_analytics: description: Various stats related to google analytics integration type: object properties: used_slots: description: List of Google Analytics Classic implementation slots used by experiences integrations type: array items: type: integer deprecated: true used_dimensions: description: List of Google Analytics Universal implementation custom dimensions used by experiences integrations type: array items: type: integer usage: type: object description: Usage metrics for the current billing period properties: used_tested_users: type: integer description: The number of tested users counted into the current project in the current billing interval. This counter is used towards account's usage quota for certain billing plans. used_tested_visitors: type: integer description: The number of tested visitors counted into the current project in the current billing interval. This counter is used towards account's usage quota for certain billing plans. active_segments_count: type: integer description: Total number of Audiences with type segment inside this project. segments_count: type: integer deprecated: true description: Total number of Audiences with type segment inside this project. experiences_count: type: integer description: The total number of experiences existing inside current project. active_experiences_count: type: integer description: The number of active experiences existing inside current project. active_experiments_count: type: integer description: The number of active experiments inside the project besides deploys. active_goals_count: type: integer description: The number of active goals existing inside current project. visitor_insights: type: object description: Visitor Insights usage statistics for Convert Signals session recordings and Heatmaps for the current project. properties: usage: type: number format: float nullable: true description: 'The proportion of the allocated capacity used for session recordings and heatmaps for this project in the current billing period, expressed as a decimal between 0 and 1 (for example 0.75 means 75% of the allocation is used). ' reset_at: type: string format: date-time nullable: true description: 'The date and time when the capacity allocation for session recordings and heatmaps resets for the current billing period. ' domains: type: array items: $ref: '#/components/schemas/Domain' description: The list of websites included in this project. sdk_key: type: string readOnly: true nullable: true description: An autogenerated hash key used to retrieve data of fullstack project. Available only for fullstack projects type. LocationTriggerUponRun: allOf: - $ref: '#/components/schemas/LocationTriggerBase' - type: object properties: type: type: string enum: - upon_run additionalProperties: false ExperienceIntegrationEulerian: allOf: - $ref: '#/components/schemas/ExperienceIntegrationBase' ClicksElementGoalSettings: type: object additionalProperties: false properties: selector: type: string description: 'A CSS selector that identifies the HTML element(s) to be tracked. When any element matching this selector is clicked, the goal triggers. The page(s) where the element(s) reside are defined in the goal''s `triggering_rule`. ' only_where_experience_runs: type: boolean description: 'If true, triggers only on pages where the associated experience runs (Experience Location). Does not apply sitewide or to unrelated pages. ' required: - selector ExperienceReportingSettings: type: object description: Comprehensive settings governing how an experience's results are reported and analyzed. properties: primary_metric: description: 'The key performance indicator (KPI) that the statistical engine will primarily use to evaluate variations and determine winners, especially for MAB allocation or automated decisions. - `conversion_rate`: Based on the conversion rate of the primary goal. (Default) - `avg_revenue_visitor`: Based on Revenue Per Visitor (RPV) from a revenue goal. - `avg_products_ordered_visitor`: Based on Average Products Per Visitor (APPV) from a revenue goal. ' default: conversion_rate allOf: - $ref: '#/components/schemas/MetricTypes' stats_engine_processing: $ref: '#/components/schemas/SE_ProcSettings' confidence: description: (Deprecated) Legacy setting for confidence level. Use `stats_engine_processing.confidence` for Frequentist settings instead. deprecated: true type: number minimum: 0 keep_winner: description: 'If true, after an experience is marked as ''Completed'' because a winning variation was found, that winning variation will continue to receive 100% of the experience traffic. If false (default), traffic might revert to the original or be evenly split, or the experience might simply stop serving. KB: "My Experiments Stopped, What Happened?" - "An experiment can keep winning variation running". ' type: boolean min_order_value: description: (Deprecated) Minimum order value for transaction outliers. Use `outliers.order_value.min` instead. type: number minimum: 0 deprecated: true max_order_value: description: (Deprecated) Maximum order value for transaction outliers. Use `outliers.order_value.max` instead. type: number deprecated: true minimum: 0 outliers: description: 'Configuration for handling statistical outliers in order-related data (revenue and product counts) to prevent skewed results. KB: "Setting limits for Order Outliers" and "How Outlier Detection Works in Convert Reports and Exports". ' type: object additionalProperties: false properties: order_value: description: Outlier detection settings for the monetary value of orders. allOf: - $ref: '#/components/schemas/NumericOutlier' products_ordered_count: description: Outlier detection settings for the number of products in an order. allOf: - $ref: '#/components/schemas/NumericOutlier' max_running_time: description: 'The maximum number of days the experience should run. If no clear winner is found by this time, the experience may be automatically completed or paused. Set to 0 for no maximum limit. KB: "Setting an end date for running an experiment." (Mentions max days in Stats section). ' type: integer minimum: 0 maximum: 999 max_variation_visitors: description: (Deprecated) Maximum number of visitors per variation. Use `max_experience_visitors` or rely on statistical significance. deprecated: true type: integer minimum: 0 max_experience_visitors: description: The maximum total number of unique visitors to be included in the entire experience. Once reached, the experience may be automatically paused or completed. Set to 0 for no limit. type: integer minimum: 0 min_variation_conversions: type: integer minimum: 0 description: 'The minimum number of conversions a variation must achieve before its statistical significance (confidence/chance to win) is calculated and displayed in reports. Default is often 5. Helps avoid premature conclusions based on very small conversion numbers. KB: "Experiment Report" - "Confidence Level (statistical significance)". ' min_conversion_value: description: (Deprecated or unclear) Minimum conversion value per variation. Might relate to revenue goals or be a legacy setting. type: integer minimum: 0 deprecated: true min_running_time: description: 'The minimum number of days the experience must run before it can be automatically completed, even if a winner is found earlier. Helps ensure stability and account for weekly variations. Set to 0 for no minimum. KB: "My Experiments Stopped, What Happened?". ' type: integer minimum: 0 maximum: 999 min_variation_visitors: description: 'The minimum number of unique visitors each variation (including the original) must receive before statistical significance is calculated. Helps ensure a sufficient sample size for reliable results. ' type: integer minimum: 0 stop_loser: description: 'If true, variations that are statistically determined to be performing significantly worse than the baseline (losing variations) will be automatically stopped. Their traffic is then redistributed among the remaining active variations. KB: "My Experiments Stopped, What Happened?" - "An experiment can stop losing variations". ' type: boolean keep_running_until_confidence: type: boolean description: 'If true, the experiment does not auto-complete when planned sample size (100% progress) is reached alone. It only auto-completes when both planned sample size is reached and the confidence threshold is met. If false, the experiment completes 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. ' srm_check: type: boolean nullable: true description: 'If true, enables Sample Ratio Mismatch (SRM) checks for the experience. SRM occurs when the distribution of visitors to variations significantly deviates from the intended traffic allocation, potentially indicating a problem with the experiment setup. If not provided at experience level, project-level setting is used. KB: "What is SRM?". ' visual_editor: description: Settings related to the behavior and configuration of Convert's Visual Editor when used for this experience. type: object properties: selector_blacklist: description: 'A list of keywords (newline-separated string). If an element''s attribute (class, ID) contains any of these keywords, that attribute part will be ignored when Convert generates CSS selectors for changes. Useful for avoiding dynamic or unstable selectors (e.g., from Squarespace, Bootstrap). KB: "My changes created on the Visual Editor don''t get saved when using Squarespace", "Issues while editing websites on Bootstrap". ' type: string nullable: true screen_width: description: The emulated screen width (in pixels) used when loading the page in the Visual Editor. Allows previewing and editing for different responsive views. type: number minimum: 240 maximum: 7680 nullable: true user_agent: $ref: '#/components/schemas/VisualEditorUserAgents' NumericOutlierTypes: description: 'The method used for detecting and handling order outliers in revenue or product count tracking: - `none`: No outlier detection is applied. - `min_max`: Orders with values below a specified minimum or above a specified maximum are capped at those boundaries. - `percentile`: Orders falling below a lower percentile or above an upper percentile are capped at the values corresponding to those percentiles. ' type: string enum: - none - min_max - percentile BaseRuleWithBooleanValue: allOf: - $ref: '#/components/schemas/BaseRule' - type: object properties: value: description: The value used to match against 'rule_type' using 'matching' type: boolean 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. MainAccount: description: Represents a main Convert account, which can own projects and sub-accounts, and manages its own billing. allOf: - $ref: '#/components/schemas/MainAccountBase' - $ref: '#/components/schemas/AccountProducts' ExperienceIntegrationSitecatalyst: allOf: - $ref: '#/components/schemas/ExperienceIntegrationBase' - type: object properties: evar: type: string description: Custom dimension where experience data should be sent to. required: - evar BillingPlanDataBase: allOf: - type: object properties: product: $ref: '#/components/schemas/Products' availableFeaturesIds: type: array description: List of feature IDs the current account has access to items: type: integer minimum: 1 deprecated: true readOnly: true RuleObject: type: object nullable: true description: 'Defines the logical structure for combining multiple rule conditions. It uses a nested OR -> AND -> OR_WHEN structure. - The top-level `OR` array means if *any* of its contained AND blocks evaluate to true, the entire rule set is true. - Each object within the `OR` array has an `AND` array. For this AND block to be true, *all* of its contained OR_WHEN blocks must evaluate to true. - Each object within the `AND` array has an `OR_WHEN` array. For this OR_WHEN block to be true, *any* of its individual `RuleElement` conditions must evaluate to true. This structure allows for complex logical expressions like `(CondA AND CondB) OR (CondC AND CondD)`. ' properties: OR: description: An array of AND-blocks. The overall rule matches if any of these AND-blocks match. type: array items: type: object properties: AND: description: An array of OR_WHEN-blocks. This AND-block matches if all its OR_WHEN-blocks match. type: array items: type: object properties: OR_WHEN: description: An array of individual rule elements. This OR_WHEN-block matches if any of its rule elements match. type: array items: $ref: '#/components/schemas/RuleElement' ScrollPercentageGoal: allOf: - $ref: '#/components/schemas/GoalBase' - type: object properties: type: enum: - scroll_percentage settings: $ref: '#/components/schemas/ScrollPercentageGoalSettings' WeatherConditionMatchRule: allOf: - $ref: '#/components/schemas/BaseRuleWithWeatherConditionValue' - type: object required: - rule_type properties: rule_type: $ref: '#/components/schemas/WeatherConditionMatchRulesTypes' matching: allOf: - $ref: '#/components/schemas/BaseMatch' - type: object properties: match_type: $ref: '#/components/schemas/TextMatchingOptions' ExperienceChangeFullStackFeatureBase: type: object description: Defines a change for a Full Stack experiment that involves enabling or configuring a specific 'Feature' and its variables for this variation. allOf: - $ref: '#/components/schemas/ExperienceChangeBase' - type: object properties: type: enum: - fullStackFeature data: type: object description: Describes structure for "fullStackFeature" type of experience change properties: feature_id: description: The **id** of the feature connected to this change type: integer variables_data: type: object description: A key-value object defined by user which describes the variables values. Where the key is variable name defined in connected feature and value is a variable's value with corresponding type SubmitsFormGoal: allOf: - $ref: '#/components/schemas/GoalBase' - type: object properties: type: enum: - submits_form settings: $ref: '#/components/schemas/SubmitsFormGoalSettings' 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 SimpleGoalExpandable: oneOf: - type: integer description: Goal ID - $ref: '#/components/schemas/SimpleGoal' ExperienceIntegrationBaidu: allOf: - $ref: '#/components/schemas/ExperienceIntegrationBase' - type: object properties: custom_dimension: type: string description: Custom dimension where experience data should be sent to. required: - custom_dimension ClicksLinkGoal: allOf: - $ref: '#/components/schemas/GoalBase' - type: object properties: type: enum: - clicks_link settings: $ref: '#/components/schemas/ClicksLinkGoalSettings' AudienceWithUrlMatching: allOf: - $ref: '#/components/schemas/AudienceBase' - type: object properties: type: $ref: '#/components/schemas/AudienceTypesWithUrl' rules: nullable: true allOf: - $ref: '#/components/schemas/RuleObjectAudience' 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 CollapsedExperienceVariationData: allOf: - type: object properties: id: description: Variation unique ID type: integer - type: object properties: changes: description: An array of changes that this variation would apply. type: array items: oneOf: - type: integer description: Change ID - $ref: '#/components/schemas/ExperienceChange' MainAccountDetails: allOf: - $ref: '#/components/schemas/MainAccountDetailsBase' - $ref: '#/components/schemas/AccountProducts' - $ref: '#/components/schemas/MainAccountStats' GenericTextKeyValueMatchRulesTypes: type: string enum: - generic_text_key_value GA_Settings: oneOf: - $ref: '#/components/schemas/ProjectIntegrationGA3' - $ref: '#/components/schemas/ProjectIntegrationGA4' discriminator: propertyName: type mapping: ga3: '#/components/schemas/ProjectIntegrationGA3' ga4: '#/components/schemas/ProjectIntegrationGA4' ClicksElementGoal: allOf: - $ref: '#/components/schemas/GoalBase' - type: object properties: type: enum: - clicks_element settings: $ref: '#/components/schemas/ClicksElementGoalSettings' SimpleLocation: type: object properties: id: type: integer description: The unique numerical identifier of the location. readOnly: true name: type: string description: The user-defined, friendly name of the location. maxLength: 100 SimpleExperienceExpandable: description: Represents an experience in a simplified form, either as its ID and a variation context, or including its name. oneOf: - $ref: '#/components/schemas/SimpleExperienceFlat' - $ref: '#/components/schemas/SimpleExperience' BaseMatch: type: object properties: negated: description: 'If `true`, the logical result of the match is inverted. For example, if `match_type` is ''contains'' and `value` is ''apple'', `negated: true` means the rule matches if the attribute *does not* contain ''apple''. ' type: boolean LocationBase: type: object properties: id: type: integer description: The unique numerical identifier for the location. readOnly: true description: type: string description: An optional, more detailed explanation of this location's purpose or the pages/conditions it targets. maxLength: 500 status: $ref: '#/components/schemas/LocationStatuses' name: type: string description: A user-defined, friendly name for the location (e.g., "All Product Pages", "Homepage Only", "Checkout Funnel"). This name appears in the Convert UI when selecting locations for experiences. maxLength: 100 preset: type: boolean description: Indicates if this location is a system-defined preset (e.g., "All Pages"). Preset locations cannot be modified directly but can be used as templates. readOnly: true selected_default: type: boolean description: If true, this location will be automatically pre-selected when creating new experiences within the project. Useful for commonly targeted site areas. stats: type: object readOnly: true description: Statistics related to the usage of this location. properties: experiences_usage: description: 'The number of currently active experiences that are using this location for targeting. This is an optional field, included if ''stats.experiences_usage'' is specified in the `include` parameter. ' type: number default: 0 ChangeHistory: type: object description: Represents a single logged change event, providing an audit trail for actions performed on Convert entities. properties: event: type: string description: The type of action performed (e.g., 'create', 'update', 'delete', 'activate', 'pause'). info: type: object description: (Deprecated) Additional context about the change. Modern implementations use the `changes` object. deprecated: true properties: isAdminChange: type: boolean description: Whether the change was made by a Convert super-admin. text: type: string description: Legacy textual description of the change. changes: type: object description: 'Detailed record of what was modified. Contains `old` and `new` value snapshots for the changed fields. For a ''create'' event, `old` will be null. For a ''delete'' event, `new` will be null. This allows tracking specific attribute modifications. ' properties: old: type: object description: A snapshot of the relevant fields and their values *before* the change was applied. Null for creation events. nullable: true new: type: object description: A snapshot of the relevant fields and their values *after* the change was applied. Null for deletion events. nullable: true method: type: string description: 'How the change was initiated: ''api'' (programmatic) or ''app'' (via Convert UI). ' items: $ref: '#/components/schemas/ChangeHistoryMethods' object: type: string description: 'The type of Convert entity that was changed (e.g., ''experience'', ''goal'', ''audience''). ' object_id: type: string description: The unique identifier of the specific entity that was changed. parent_object_id: type: string nullable: true description: The unique identifier of the parent entity related to this change. For example, for a 'variation' or 'change', this will be the corresponding 'experience' id. user: type: string description: The name or email of the user (or API key name) that performed the action. timestamp: type: integer description: Unix timestamp (UTC) indicating when the change occurred. request_id: type: string nullable: true description: A unique identifier for the specific API request or UI action that resulted in this change, useful for tracing and debugging. project: nullable: true allOf: - $ref: '#/components/schemas/SimpleProjectExpandable' BaseRuleWithWeatherConditionValue: allOf: - $ref: '#/components/schemas/BaseRule' - type: object properties: value: description: 'Weather Condition name used for matching. Full or partial condition. The weather provider used by Convert detects the following conditions: - Blizzard - Blowing snow - Cloudy - Fog - Freezing drizzle - Freezing fog - Heavy freezing drizzle - Heavy rain - Heavy rain at times - Light drizzle - Light freezing rain - Light rain - Mist - Moderate rain - Moderate rain at times - Overcast - Partly cloudy ' type: string LocationTriggerCallback: allOf: - $ref: '#/components/schemas/LocationTriggerBase' - type: object properties: type: type: string enum: - callback js: type: string description: "Describes the js callback that will be executed in order to fire the experience.\n\nIt is called with two arguments:\n- `activate` - a function that should be called when the experience should be activated\n- `options` - an object with the following properties:\n - `locationId` - id of the location that is being activated\n - `isActive` - boolean flag that indicates if the location is active\nExample:\n```\nfunction(activate, options) {\n if (options.isActive) {\n setTimeout(function() {\n /* it activates the experiences 1 second after the\n location trigger is initialized - at the load of the tracking script */\n activate();\n }, 1000);\n }\n}\n```\n" additionalProperties: false required: - js ExperienceIntegrationSegmentio: allOf: - $ref: '#/components/schemas/ExperienceIntegrationBase' TextMatchRulesTypes: type: string enum: - url - url_with_query - query_string - campaign - keyword - medium - source_name - city - region - browser_version - user_agent - page_tag_page_type - page_tag_category_id - page_tag_category_name - page_tag_product_sku - page_tag_product_name - page_tag_customer_id - page_tag_custom_1 - page_tag_custom_2 - page_tag_custom_3 - page_tag_custom_4 - visitor_id Percentiles: type: number description: 'Standard percentile values used for outlier detection thresholds. For example, a `min` of 5 and `max` of 95 means orders in the bottom 5% and top 5% of values are considered outliers and capped. ' enum: - 1 - 5 - 10 - 25 - 50 - 75 - 90 - 95 - 99 BaseRuleWithSegmentBucketedValue: allOf: - $ref: '#/components/schemas/BaseRule' - type: object properties: value: description: ID of the segment used for matching type: number NumericMatchingOptions: type: string enum: - equalsNumber - less - lessEqual NumericOutlier: oneOf: - $ref: '#/components/schemas/NumericOutlierNone' - $ref: '#/components/schemas/NumericOutlierMinMax' - $ref: '#/components/schemas/NumericOutlierPercentile' discriminator: propertyName: detection_type mapping: none: '#/components/schemas/NumericOutlierNone' min_max: '#/components/schemas/NumericOutlierMinMax' percentile: '#/components/schemas/NumericOutlierPercentile' GenericKey: type: object properties: key: description: The name of the key whose value will be retrieved and compared against the rule's `value`. type: string LocationTriggerBase: type: object properties: type: $ref: '#/components/schemas/LocationTriggerTypes' required: - type ExperienceIntegrationClicktale: allOf: - $ref: '#/components/schemas/ExperienceIntegrationBase' ChangeHistoryObjectTypes: type: string enum: - account - audience - feature - collaborator - domain - goal - hypothesis - experience - report - change - variation - project - tag AccountTypes: type: string description: 'Defines the type of the account: - `main`: A primary account that can have sub-accounts and manages its own billing. - `sub`: A secondary account existing under a `main` account, often used by agencies to manage client activities. Sub-accounts share quotas from the parent. ' enum: - main - sub SimpleAudienceSegmentExpandable: oneOf: - type: integer description: Segment ID - $ref: '#/components/schemas/SimpleAudienceSegment' SubAccountBillingPlanLimitsAndCapabilities: allOf: - $ref: '#/components/schemas/BillingPlanLimitsAndCapabilitiesBase' - type: object properties: usageLimits: type: object required: - domains - goals - deploys - projects - segments - testedUsers properties: domains: required: - limitValue allOf: - $ref: '#/components/schemas/BillingUsageLimitBase' description: This limits the number of domains that can be created **inside all the projects that belong to the account** goals: required: - limitValue allOf: - $ref: '#/components/schemas/BillingUsageLimitBase' description: This limits the number of active goals that can be created **inside one single project** deploys: required: - limitValue allOf: - $ref: '#/components/schemas/BillingUsageLimitBase' description: This limits the number of active deploys that can be created **inside all the projects that belong to the account** projects: required: - limitValue allOf: - $ref: '#/components/schemas/BillingUsageLimitBase' description: This limits the number of projects that can be created **inside the account** segments: required: - limitValue allOf: - $ref: '#/components/schemas/BillingUsageLimitBase' description: This limits the number of segments that can be created **inside one single project** pageViews: allOf: - $ref: '#/components/schemas/BillingUsageLimitBase' description: This limits the number of pageViews that can be tracked **inside the account** deprecated: true testedVisitors: required: - limitValue allOf: - $ref: '#/components/schemas/BillingUsageLimitBase' description: This limits the number of tested visitors that can be tracked **inside the account** testedUsers: required: - limitValue allOf: - $ref: '#/components/schemas/BillingUsageLimitBase' description: This limits the number of tested users that can be tracked **inside the account** AdvancedGoal: allOf: - $ref: '#/components/schemas/GoalBase' - type: object properties: type: enum: - advanced DayOfWeekMatchRule: allOf: - $ref: '#/components/schemas/BaseRuleWithDayOfWeekValue' - type: object required: - rule_type properties: rule_type: $ref: '#/components/schemas/DayOfWeekMatchRulesTypes' matching: allOf: - $ref: '#/components/schemas/BaseMatch' - type: object properties: match_type: $ref: '#/components/schemas/NumericMatchingOptions' SegmentBucketedMatchRule: allOf: - $ref: '#/components/schemas/BaseRuleWithSegmentBucketedValue' - type: object required: - rule_type properties: rule_type: $ref: '#/components/schemas/SegmentBucketedMatchRulesTypes' matching: allOf: - $ref: '#/components/schemas/BaseMatch' - type: object properties: match_type: $ref: '#/components/schemas/ChoiceMatchingOptions' ChangeHistoryExpandParameter: type: object properties: expand: type: array nullable: true description: 'Specifies linked objects to expand in the response, e.g., ''project''. Refer to the [Expanding Fields](#tag/Expandable-Fields) section. ' items: $ref: '#/components/schemas/ChangeHistoryExpandFields' Goal: oneOf: - $ref: '#/components/schemas/DomInteractionGoal' - $ref: '#/components/schemas/ScrollPercentageGoal' - $ref: '#/components/schemas/RevenueGoal' - $ref: '#/components/schemas/SubmitsFormGoal' - $ref: '#/components/schemas/ClicksLinkGoal' - $ref: '#/components/schemas/ClicksElementGoal' - $ref: '#/components/schemas/AdvancedGoal' - $ref: '#/components/schemas/NoSettingsGoal' - $ref: '#/components/schemas/GaGoal' discriminator: propertyName: type mapping: advanced: '#/components/schemas/AdvancedGoal' visits_page: '#/components/schemas/NoSettingsGoal' revenue: '#/components/schemas/RevenueGoal' clicks_link: '#/components/schemas/ClicksLinkGoal' submits_form: '#/components/schemas/SubmitsFormGoal' clicks_element: '#/components/schemas/ClicksElementGoal' dom_interaction: '#/components/schemas/DomInteractionGoal' scroll_percentage: '#/components/schemas/ScrollPercentageGoal' ga_import: '#/components/schemas/GaGoal' code_trigger: '#/components/schemas/NoSettingsGoal' MainAccountDetailsUpdate: allOf: - $ref: '#/components/schemas/MainAccountDetailsBase' - type: object properties: billing: type: object properties: payment: $ref: '#/components/schemas/PaymentMethod' products: type: object description: 'Object containing products that would get the plan updated inside the subscription. Possible products are **experiences**, **deploy**, and **addons**. An account can have a subscription to maximum one plan of each product. ' properties: experiences: $ref: '#/components/schemas/PlanUpdateBody' deploy: $ref: '#/components/schemas/PlanUpdateBody' addons: type: array description: List of add-on plan subscriptions to update with quantities. items: $ref: '#/components/schemas/AddonPlanUpdateBody' cancellation_reason: type: string maxLength: 200 description: 'Use this field to provide a cancellation reason. ' StartPaymentSetupRequestData: type: object nullable: true description: 'Options that could be used for initiating payment setup. Currently only the billing plans can be passed. ' properties: billingPlans: type: array items: type: integer description: "The IDs of the billing plans to be used for the payment setup, only if no subscription is already active. \nFor an active subscription, to only change plans, use the `updateAccountDetails()` endpoint.\nIf missing, the ones on the account will be used. If passed, all the plans need to have the same billing period.\n**Note:** Passing different plans then the ones on the account will result in the subscription to be changed in case the account already has a subscription(trial or paid).\n" TextMatchingOptions: type: string enum: - matches - regexMatches - contains - endsWith - startsWith AccountsListResponseData: type: object description: Response containing a list of accounts accessible to the authenticated user. For paginated results, refer to specific endpoint documentation if applicable. properties: data: $ref: '#/components/schemas/AccountsList' AudienceBase: type: object properties: id: type: integer description: The unique numerical identifier for the audience. readOnly: true description: type: string description: An optional, more detailed explanation of the audience's purpose or criteria, aiding in identification and management. maxLength: 500 status: $ref: '#/components/schemas/AudienceStatuses' name: type: string description: A user-defined, friendly name for the audience (e.g., "New Visitors from USA", "Repeat Purchasers - Mobile"). This name appears in the Convert UI when selecting audiences for experiences. maxLength: 100 preset: type: boolean description: Indicates if this audience is a system-defined preset (e.g., "All Visitors", "Mobile Users"). Preset audiences cannot be modified directly but can be used as templates. readOnly: true selected_default: type: boolean description: If true, this audience will be automatically pre-selected when creating new experiences within the project. Useful for commonly targeted segments. stats: type: object readOnly: true description: Statistics related to the usage of this audience. properties: experiences_usage: description: 'The number of currently active experiences that are using this audience for targeting. This is an optional field, included if ''stats.experiences_usage'' is specified in the `include` parameter. ' type: number default: 0 SubAccountDetailsUpdate: allOf: - type: object properties: accountType: type: string enum: - sub - $ref: '#/components/schemas/SubAccountDetailsBase' ExperienceIntegrationGosquared: allOf: - $ref: '#/components/schemas/ExperienceIntegrationBase' BillingUsageLimit: allOf: - $ref: '#/components/schemas/BillingUsageLimitBase' - type: object properties: overLimitCostPerUnit: type: integer readOnly: true description: If this is filled, if user allows overQuota charges, system will charge them automatically for every etra unit used unitSize: type: integer readOnly: true description: How many usage items are gonna be included in one billable unit. ExperienceIntegrationCnzz: allOf: - $ref: '#/components/schemas/ExperienceIntegrationBase' - type: object properties: custom_dimension: type: string description: Custom dimension where experience data should be sent to. required: - custom_dimension AddonPlanUpdateBody: type: object properties: plan_id: description: 'The ID of the add-on billing plan to subscribe to. Providing `null` cancels the existing subscription for this add-on. ' type: number nullable: true quantity: description: Number of units to subscribe to for this add-on plan. type: integer minimum: 1 VisitorInsightsBase: type: object properties: enabled: type: boolean description: 'If true, Convert Signals™ is enabled for the project, allowing the system to capture sessions exhibiting user frustration or usability issues. ' obfuscate_text: type: boolean default: true description: 'True when all text elements (apart from placeholders) should be obfuscated inside a recording. ' sampling_rate: type: integer default: 5 enum: - 5 - 10 - 20 - 30 - 40 - 50 description: 'The percentage of visitors included in sampling for Convert Signals session recordings and Heatmaps for this project. Higher values collect data from a larger share of traffic and consume allocation faster. ' BillingPlanLimitsAndCapabilities: allOf: - $ref: '#/components/schemas/BillingPlanLimitsAndCapabilitiesBase' - type: object properties: usageLimits: type: object properties: visitorData: type: object description: Visitor Data related usage limits properties: visitorProfiles: allOf: - $ref: '#/components/schemas/BillingUsageLimit' description: Maximum number of visitor profiles that can be created per project. visitorProfilesFields: allOf: - $ref: '#/components/schemas/BillingUsageLimit' description: Maximum number of visitor data placeholders that can be created per project. activePersonalisedExperiences: allOf: - $ref: '#/components/schemas/BillingUsageLimit' description: Maximum number of active experiences that use visitor data placeholders per project. domains: allOf: - $ref: '#/components/schemas/BillingUsageLimit' description: This limits the number of domains that can be created **inside all the projects that belong to the account** goals: allOf: - $ref: '#/components/schemas/BillingUsageLimit' description: This limits the number of active goals that can be created **inside one single project** deploys: allOf: - $ref: '#/components/schemas/BillingUsageLimit' description: This limits the number of active deploys that can be created **inside all the projects that belong to the account** projects: allOf: - $ref: '#/components/schemas/BillingUsageLimit' description: This limits the number of projects that can be created **inside the account** environments: allOf: - $ref: '#/components/schemas/BillingUsageLimit' description: Maximum number of environments allowed to be created under one **individual project.** segments: allOf: - $ref: '#/components/schemas/BillingUsageLimit' description: This limits the number of segments that can be created **inside one single project** experiments: allOf: - $ref: '#/components/schemas/BillingUsageLimit' description: The number of active experiments inside the project. customDomains: allOf: - $ref: '#/components/schemas/BillingUsageLimit' description: The number of custom domains allowed for the account. pageViews: allOf: - $ref: '#/components/schemas/BillingUsageLimit' description: This limits the number of pageViews that can be tracked **inside the account** deprecated: true testedVisitors: allOf: - $ref: '#/components/schemas/BillingUsageLimit' description: This limits the number of tested visitors that can be tracked **inside the account** testedUsers: allOf: - $ref: '#/components/schemas/BillingUsageLimit' description: This limits the number of tested users that can be tracked **inside the account** SubAccountDetails: allOf: - $ref: '#/components/schemas/SubAccountDetailsBase' - $ref: '#/components/schemas/SubAccountProducts' - $ref: '#/components/schemas/SubAccountStats' - type: object properties: limitsAndCapabilities: allOf: - readOnly: true - $ref: '#/components/schemas/SubAccountBillingPlanLimitsAndCapabilities' LocationTriggerDomElement: allOf: - $ref: '#/components/schemas/LocationTriggerBase' - type: object properties: type: type: string enum: - dom_element selector: description: Describes html selector type: string events: type: array description: Events for LocationTriggerDomElement items: $ref: '#/components/schemas/LocationDomTriggerEvents' additionalProperties: false required: - selector - events DomInteractionGoal: allOf: - $ref: '#/components/schemas/GoalBase' - type: object properties: type: enum: - dom_interaction settings: $ref: '#/components/schemas/DomInteractionGoalSettings' ExperienceIntegrationMicrosoftClarity: description: 'Configuration for Microsoft Clarity. When enabled, experiment context can be sent for segmentation in Clarity recordings and heatmaps. No provider-specific settings beyond `enabled` are required; the Clarity project ID is configured in your site’s global JavaScript. ' allOf: - $ref: '#/components/schemas/ExperienceIntegrationBase' ChoiceMatchingOptions: type: string enum: - equals RevenueGoalSettings: type: object additionalProperties: false properties: triggering_type: type: string description: 'How this revenue goal is triggered: - `manual`: The goal is triggered by a specific JavaScript call (`_conv_q.push(["pushRevenue", ...])`) on the purchase confirmation page, which includes revenue amount and product count. The `triggering_rule` should be empty or not set. - `ga`: Convert attempts to automatically capture revenue data from a standard Google Analytics E-commerce tracking implementation when the `triggering_rule` (e.g., matching the confirmation page URL) is met. ' enum: - manual - ga required: - triggering_type NumericMatchRulesTypes: type: string enum: - avg_time_page - days_since_last_visit - pages_visited_count - visit_duration - visits_count - page_tag_product_price ProjectGASettingsBase: allOf: - $ref: '#/components/schemas/GA_SettingsBase' - type: object properties: auto_revenue_tracking: type: boolean description: Attempt to pull revenue data from Google Analytics Revenue Tracking code. VisitorDataExistsMatchRule: allOf: - $ref: '#/components/schemas/BaseRuleWithBooleanValue' - type: object required: - rule_type properties: rule_type: $ref: '#/components/schemas/VisitorDataExistsMatchRulesTypes' matching: allOf: - $ref: '#/components/schemas/BaseMatch' - type: object properties: match_type: $ref: '#/components/schemas/ChoiceMatchingOptions' ResultsPerPage: type: object properties: results_per_page: type: integer nullable: true minimum: 0 maximum: 50 default: 30 description: 'Specifies the maximum number of items to return in a single page of results. Used for pagination. Default is 30, maximum is 50. ' MainAccountBase: allOf: - $ref: '#/components/schemas/SubAccountBase' - type: object description: Base account object properties: accountType: type: string enum: - main id: readOnly: true billing: type: object description: Billing related data and settings properties: id: type: string nullable: true readOnly: true description: id of the account into the billing system details: description: Account billing details type: object properties: isPausedByQuota: type: boolean readOnly: true description: 'Flag indicating whether this account is marked as paused by the system due to usage quota being reached and settings.overQuota_charges == false ' nextBillingCycleStart: type: integer readOnly: true description: Unix timestamp for the time when current billing cycle ends and next one starts, in UTC time currentBillingCycleStart: type: integer readOnly: true description: Unix timestamp for the time when current billing cycle started, in UTC time pending_cancellation: type: boolean readOnly: true default: false description: Flag indicating whether subscription is in cancellation state cancellation_request_timestamp: type: integer readOnly: true nullable: true description: Unix timestamp indicating date and time when cancellation was requested, in UTC time billingType: allOf: - $ref: '#/components/schemas/PlanStatus' - readOnly: true description: Describes current billing's type, whether this is a free trial, paid, canceled etc - paid - Active paid account - trial - Free trial account - trialExpired - Free trial account which expired - canceled - account canceled, data will be deleted 30 days after current billing end time - paused - account paused on user request until "pausedUntil" contract: type: object nullable: true readOnly: true description: Services contract related properties properties: start_time: type: integer description: Unix timestamp for the contract start time end_time: type: integer description: Unix timestamp for the contract start time settings: description: Various settings that the user can tweak to control billing type: object properties: overQuota_charges: description: Flag indicating whether Convert can allow account's usage to go over the included quota and charge extra type: boolean subscription_paused_until: description: Unix timestamp representing the time until which the subscription is paused, in UTC time, null if subscription not in paused mode nullable: true type: number limitsAndCapabilities: allOf: - readOnly: true - $ref: '#/components/schemas/BillingPlanLimitsAndCapabilities' ReportingSegmentsBrowser: type: string description: 'The web browser used by the visitor. Used for segmenting reports to understand how experiences perform across different browsers. Knowledge Base: "Using Basic and Advanced Post segmentation". ' enum: - internet_explorer - chrome - firefox - safari - edge - other MainAccountStats: type: object properties: stats: allOf: - $ref: '#/components/schemas/AccountGeneralStats' - type: object properties: subAccounts_usage: type: object description: Sub-accounts Usage metrics for the current billing period. Omitted when account doesn't have Sub Accounts properties: used_tested_users: type: integer description: The number of tested users counted for all the sub-accounts in the current billing interval. This counter is used towards account's usage quota for certain billing plans. used_tested_visitors: type: integer description: The number of tested visitors counted for all the sub-accounts in the current billing interval. This counter is used towards account's usage quota for certain billing plans. ExperienceIntegrationBase: type: object properties: provider: $ref: '#/components/schemas/IntegrationProvider' enabled: description: 'If `true`, this integration is active for the experience, and Convert will attempt to send experiment data to the specified provider. If `false` or omitted when updating, the integration is disabled. ' type: boolean nullable: true required: - provider 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. LocationTriggerManual: allOf: - $ref: '#/components/schemas/LocationTriggerBase' - type: object properties: type: type: string enum: - manual additionalProperties: false LocationStatuses: type: string description: 'The current status of a location: - `active`: The location is active and can be used for targeting experiences. - `archived`: The location is archived and no longer available for new experiences, but its definition is preserved. Archived locations can often be cloned. Knowledge Base: "Benefits of Archiving Unused Goals, Locations, and Audiences." ' enum: - active - archived default: active PaymentMethodApplePay: type: object description: Apple Pay payment method data properties: method: type: string enum: - apple_pay description: Payment method type identifier data: type: object description: Apple Pay payment method data (empty for now) additionalProperties: false required: - method - data 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' LiveDataEventsListResponseData: type: object description: Response containing a list of recent live tracking events for a project or account. properties: data: $ref: '#/components/schemas/LiveDataEventsList' NumericOutlierNone: allOf: - $ref: '#/components/schemas/NumericOutlierBase' - type: object additionalProperties: false properties: detection_type: enum: - none JsConditionMatchRulesTypes: type: string enum: - js_condition 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. BaseRuleWithVisitorTypeValue: allOf: - $ref: '#/components/schemas/BaseRule' - type: object properties: value: description: Type of the visitors type: string enum: - new - returning ScrollPercentageGoalSettings: type: object additionalProperties: false properties: percentage: type: number description: The scroll depth percentage (e.g., 25, 50, 75, 100) that a visitor must reach on a page for this goal to trigger. The page(s) are defined in the goal's `triggering_rule`. required: - percentage 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' ExperienceVariationStatuses: type: string enum: - stopped - running AccountExperiencesListFilteringOptions: type: object allOf: - $ref: '#/components/schemas/ResultsPerPage' - $ref: '#/components/schemas/SortDirection' - type: object properties: projects: type: array nullable: true description: 'Project IDs list to be used to filter experiences ' items: type: integer sort_by: type: string nullable: true default: id description: 'A value used to sort experiences by specific field Defaults to **id** if not provided ' enum: - id - conversions - improvement - name - start_time - end_time - status - project_id - primary_goal search: type: string nullable: true description: A search string that would be used to search against Experience's name and description type: type: array nullable: true description: The type of the experiences to be returned; either of the below can be provided items: $ref: '#/components/schemas/ExperienceTypes' Audience: oneOf: - $ref: '#/components/schemas/AudienceWithoutUrlMatching' - $ref: '#/components/schemas/AudienceWithUrlMatching' discriminator: propertyName: type mapping: permanent: '#/components/schemas/AudienceWithoutUrlMatching' segmentation: '#/components/schemas/AudienceWithUrlMatching' transient: '#/components/schemas/AudienceWithoutUrlMatching' AccountsList: type: array description: List of accounts items: $ref: '#/components/schemas/Account' BillingPlanLimitsAndCapabilitiesBase: type: object properties: usage_limit_by: allOf: - readOnly: true - $ref: '#/components/schemas/BillingPlanBillByEnum' availableFeaturesNiceNames: description: A list of human-readable names for features enabled by this plan (e.g., 'advanced_segmentation', 'api_access', 'multivariate_testing'). readOnly: true type: array items: type: string enum: - advanced_segmentation - api - basic_segmentation - change_history - chat support - custom_domains - cookie_targeting - csv_export - experience_raw_export - dmp_profiling - email_support - geo_targeting - kissmetrics_integration - live_data - multipage_experience - multivariate_testing - phone_support - scroll_goal - single_sign_on - triggered_goal_targeting - weather_targeting - experience_report_predictions - collaborators - forum_access - fullstack - bayesian_stats - ve_ai_text - create_subaccounts - sequential_testing - other_goals_test_progress - export_project - import_project - experience_collaborators - bulk_actions - dynamic_web_triggers - advanced_tracking_script_release - remove_report_data - mab - composed_audience - visitor_insights - visitor_data - ui_widgets - ve_version_history AccountProducts: type: object properties: billing: type: object properties: products: type: object description: Object detailing subscribed plans for each Convert product. properties: experiences: type: object description: Billing plan data for the 'Experiences' product. properties: plan: allOf: - $ref: '#/components/schemas/BillingPlanData' nullable: true deploy: type: object description: Billing plan data for the 'Deploy' product. properties: plan: allOf: - $ref: '#/components/schemas/BillingPlanData' nullable: true addons: type: array description: List of subscribed add-on plans with their quantities. items: type: object properties: plan: allOf: - $ref: '#/components/schemas/BillingPlanData' nullable: true quantity: type: integer minimum: 1 description: Number of units subscribed for this add-on plan. Extra: type: object properties: pagination: $ref: '#/components/schemas/Pagination' Location: allOf: - $ref: '#/components/schemas/LocationBase' - type: object properties: rules: nullable: true allOf: - $ref: '#/components/schemas/LocationRuleObject' trigger: $ref: '#/components/schemas/LocationTrigger' WeatherConditionMatchRulesTypes: type: string enum: - weather_condition BaseRuleWithDayOfWeekValue: allOf: - $ref: '#/components/schemas/BaseRule' - type: object properties: value: description: Day of week used for matching type: number minimum: 1 maximum: 7 SE_ProcSettingsFrequentist: allOf: - $ref: '#/components/schemas/SE_ProcSettingsBase' - type: object description: Stats Engine Settings needed for the Frequentist processing properties: stats_type: enum: - frequentist confidence: description: Confidence value to be used (in percent) type: number minimum: 50 maximum: 99 multipleOf: 1 power: description: Statistical power value to be used (in percent) type: number minimum: 10 maximum: 99 multipleOf: 1 test_type: description: The type of test applied to the data type: string default: two_tails enum: - one_tail - one_tail_left - one_tail_right - two_tails - sequential multiple_comparison_correction: description: Multiple comparison correction type: string enum: - none - bonferroni - sidak power_calculation_type: description: Power calculation type type: string default: dynamic_mde enum: - dynamic_mde - fixed_mde fixed_mde: description: Fixed minimum detectable effect (corresponding to the relative improvement in percent) type: number minimum: 0 maximum: 10000 mab_settings: allOf: - $ref: '#/components/schemas/SE_MabSettings' nullable: true RuleElementNoUrl: oneOf: - $ref: '#/components/schemas/GenericTextMatchRule' - $ref: '#/components/schemas/GenericNumericMatchRule' - $ref: '#/components/schemas/GenericBoolMatchRule' - $ref: '#/components/schemas/CookieMatchRule' - $ref: '#/components/schemas/GenericTextKeyValueMatchRule' - $ref: '#/components/schemas/GenericNumericKeyValueMatchRule' - $ref: '#/components/schemas/GenericBoolKeyValueMatchRule' - $ref: '#/components/schemas/CountryMatchRule' - $ref: '#/components/schemas/LanguageMatchRule' - $ref: '#/components/schemas/GoalTriggeredMatchRule' - $ref: '#/components/schemas/SegmentBucketedMatchRule' - $ref: '#/components/schemas/DayOfWeekMatchRule' - $ref: '#/components/schemas/HourOfDayMatchRule' - $ref: '#/components/schemas/MinuteOfHourMatchRule' - $ref: '#/components/schemas/BrowserNameMatchRule' - $ref: '#/components/schemas/OsMatchRule' - $ref: '#/components/schemas/WeatherConditionMatchRule' - $ref: '#/components/schemas/VisitorTypeMatchRule' - $ref: '#/components/schemas/JsConditionMatchRule' - $ref: '#/components/schemas/VisitorDataExistsMatchRule' discriminator: propertyName: rule_type mapping: campaign: '#/components/schemas/GenericTextMatchRule' keyword: '#/components/schemas/GenericTextMatchRule' medium: '#/components/schemas/GenericTextMatchRule' source_name: '#/components/schemas/GenericTextMatchRule' avg_time_page: '#/components/schemas/GenericNumericMatchRule' city: '#/components/schemas/GenericTextMatchRule' country: '#/components/schemas/CountryMatchRule' region: '#/components/schemas/GenericTextMatchRule' days_since_last_visit: '#/components/schemas/GenericNumericMatchRule' language: '#/components/schemas/LanguageMatchRule' pages_visited_count: '#/components/schemas/GenericNumericMatchRule' goal_triggered: '#/components/schemas/GoalTriggeredMatchRule' visit_duration: '#/components/schemas/GenericNumericMatchRule' cookie: '#/components/schemas/CookieMatchRule' visitor_type: '#/components/schemas/VisitorTypeMatchRule' visits_count: '#/components/schemas/GenericNumericMatchRule' bucketed_into_experience: '#/components/schemas/GenericBoolMatchRule' bucketed_into_segment: '#/components/schemas/SegmentBucketedMatchRule' local_time_day_of_week: '#/components/schemas/DayOfWeekMatchRule' local_time_hour_of_day: '#/components/schemas/HourOfDayMatchRule' local_time_minute_of_hour: '#/components/schemas/MinuteOfHourMatchRule' project_time_day_of_week: '#/components/schemas/DayOfWeekMatchRule' project_time_hour_of_day: '#/components/schemas/HourOfDayMatchRule' project_time_minute_of_hour: '#/components/schemas/MinuteOfHourMatchRule' browser_name: '#/components/schemas/BrowserNameMatchRule' browser_version: '#/components/schemas/GenericTextMatchRule' os: '#/components/schemas/OsMatchRule' user_agent: '#/components/schemas/GenericTextMatchRule' is_desktop: '#/components/schemas/GenericBoolMatchRule' is_mobile: '#/components/schemas/GenericBoolMatchRule' is_tablet: '#/components/schemas/GenericBoolMatchRule' js_condition: '#/components/schemas/JsConditionMatchRule' page_tag_page_type: '#/components/schemas/GenericTextMatchRule' page_tag_category_id: '#/components/schemas/GenericTextMatchRule' page_tag_category_name: '#/components/schemas/GenericTextMatchRule' page_tag_product_sku: '#/components/schemas/GenericTextMatchRule' page_tag_product_name: '#/components/schemas/GenericTextMatchRule' page_tag_product_price: '#/components/schemas/GenericNumericMatchRule' page_tag_customer_id: '#/components/schemas/GenericTextMatchRule' page_tag_custom_1: '#/components/schemas/GenericTextMatchRule' page_tag_custom_2: '#/components/schemas/GenericTextMatchRule' page_tag_custom_3: '#/components/schemas/GenericTextMatchRule' page_tag_custom_4: '#/components/schemas/GenericTextMatchRule' weather_condition: '#/components/schemas/WeatherConditionMatchRule' generic_text_key_value: '#/components/schemas/GenericTextKeyValueMatchRule' generic_numeric_key_value: '#/components/schemas/GenericNumericKeyValueMatchRule' generic_bool_key_value: '#/components/schemas/GenericBoolKeyValueMatchRule' visitor_id: '#/components/schemas/GenericTextMatchRule' visitor_data_exists: '#/components/schemas/VisitorDataExistsMatchRule' MetricTypes: type: string description: 'The primary types of performance metrics calculated by the reporting engine for each goal. - `conversion_rate`: The percentage of visitors who completed the goal (Conversions / Visitors). - `avg_revenue_visitor`: Average Revenue Per Visitor (RPV = Total Revenue / Total Visitors). Applicable for revenue goals. - `avg_products_ordered_visitor`: Average Products Per Visitor (APPV = Total Products Ordered / Total Visitors). Applicable for revenue goals tracking product counts. - `average_order_value`: Average Order Value (AOV = Total Revenue / Total Conversions). Applicable for revenue goals tracking order value. - `average_products_per_order`: Average Products Per Order (APPO = Total Products Ordered Per Visitor / Total Conversions). Applicable for revenue goals tracking product counts. Knowledge Base: "Understanding Report Metrics in Convert". ' enum: - conversion_rate - avg_revenue_visitor - avg_products_ordered_visitor - average_order_value - average_products_per_order ChangeHistoryExpandFields: type: string enum: - project ProjectIntegrationGA3: allOf: - $ref: '#/components/schemas/ProjectGASettingsBase' - $ref: '#/components/schemas/IntegrationGA3' ExperienceChangeDefaultCodeDataBase: type: object description: Defines a standard code-based change, typically generated by the Visual Editor for modifications like text replacement, style changes, or element removal. It can include CSS, Convert's internal JS representation, and custom JS. allOf: - $ref: '#/components/schemas/ExperienceChangeBase' - type: object properties: type: enum: - defaultCode data: type: object description: Describes structure for "defaultCode" type of experience change additionalProperties: false properties: css: type: string nullable: true description: CSS code to be applied by this change js: type: string nullable: true description: Javascript code generated by the visual editor or written in the same structure, to be applied by this experience change custom_js: type: string description: Custom javascript code to be applied by this change nullable: true NumericOutlierPercentile: allOf: - $ref: '#/components/schemas/NumericOutlierBase' - type: object additionalProperties: false properties: detection_type: enum: - percentile min: allOf: - description: Minimum percentile value for the outlier detection; values outside this percentile are considered outliers - $ref: '#/components/schemas/Percentiles' max: allOf: - description: Maximum percentile value for the outlier detection; values outside this percentile are considered outliers - $ref: '#/components/schemas/Percentiles' GenericNumericKeyValueMatchRule: allOf: - $ref: '#/components/schemas/BaseRuleWithNumericValue' - type: object required: - rule_type properties: rule_type: $ref: '#/components/schemas/GenericNumericKeyValueMatchRulesTypes' matching: allOf: - $ref: '#/components/schemas/BaseMatch' - type: object properties: match_type: $ref: '#/components/schemas/NumericMatchingOptions' - $ref: '#/components/schemas/GenericKey' HourOfDayMatchRulesTypes: type: string enum: - local_time_hour_of_day - project_time_hour_of_day ExperienceChangeRichStructureDataBase: type: object description: Defines a complex change, often involving multiple DOM manipulations or structured data, typically generated by advanced Visual Editor interactions or specific integrations. (Primarily for internal or advanced programmatic use). allOf: - $ref: '#/components/schemas/ExperienceChangeBase' - type: object properties: type: enum: - richStructure data: type: object description: Describes structure for "defaultCode" type of experience change additionalProperties: type: string description: Various key - value data properties: js: type: string nullable: true description: Javascript code generated by the visual editor or written in the same structure, to be applied by this experience change selector: type: string description: CSS selector of the element to which the change refers to, if this is a change concerning one DOM element page_id: description: The **id** of the page connected to this change, in case this is a **multi-page** experiment type: string SimpleExperienceFlat: type: object properties: id: description: The unique numerical identifier of the experience. type: integer variation: $ref: '#/components/schemas/SimpleExperienceVariationExpandable' GoalBase: type: object description: Base properties common to all types of conversion goals. properties: id: description: The unique numerical identifier for the goal. readOnly: true type: integer name: description: A user-defined, friendly name for the goal (e.g., "Completed Purchase", "Newsletter Signup", "Viewed Pricing Page"). This name appears in reports and when selecting goals for experiences. type: string maxLength: 100 key: description: 'A unique, machine-readable string key for this goal within the project. Often auto-generated from the name if not specified, but can be user-defined for easier programmatic reference. Example: "completed_purchase_main_flow". ' type: string maxLength: 32 description: description: An optional, more detailed explanation of what this goal measures or its significance to business objectives. type: string maxLength: 500 is_system: type: boolean readOnly: true description: Indicates if this is a system-defined default goal (e.g., "Decrease Bounce Rate", "Increase Engagement"). System goals cannot be deleted but their usage can be controlled. stats: $ref: '#/components/schemas/GoalStats' triggering_rule: nullable: true allOf: - $ref: '#/components/schemas/RuleObject' selected_default: type: boolean description: If true, this goal will be automatically pre-selected when creating new experiences within the project. Useful for commonly tracked primary conversions. status: $ref: '#/components/schemas/GoalStatuses' GoalExpandable: oneOf: - type: integer description: Goal ID - $ref: '#/components/schemas/Goal' ConcurrencyKey: type: string nullable: true description: A server-generated hash that represents the object's state at the time of retrieval. When included in an update request, the operation will only succeed if the object hasn't been modified since this key was obtained. If another update has occurred in the meantime, the request will fail with a conflict error, requiring you to fetch the latest version and retry your update with the new concurrency_key. This implements optimistic concurrency control to prevent lost updates in concurrent scenarios. ExperienceStatuses: type: string enum: - draft - active - paused - completed - scheduled - archived - deleted PaymentMethodWireTransfer: type: object description: Wire transfer payment method data properties: method: type: string enum: - wire_transfer description: Payment method type identifier data: type: object description: Wire transfer payment method data (empty for now) additionalProperties: false required: - method - data GoalStatuses: type: string description: 'The current status of a goal: - `active`: The goal is active and will track conversions for experiences it''s attached to. - `archived`: The goal is archived and will not track new conversions. Its historical data remains accessible in reports for experiences that previously used it. Archived goals can often be cloned or unarchived. Knowledge Base: "Benefits of Archiving Unused Goals, Locations, and Audiences." ' enum: - active - archived ExperienceIntegrationWoopra: allOf: - $ref: '#/components/schemas/ExperienceIntegrationBase' DNSRecordTypes: description: The type of the DNS record. type: string enum: - TXT - CNAME SubAccountProducts: type: object properties: billing: type: object properties: products: type: object description: Object detailing subscribed plans for each Convert product. properties: experiences: type: object description: Billing plan data for the 'Experiences' product (A/B testing, MVT, etc.). properties: plan: allOf: - $ref: '#/components/schemas/SubAccountBillingPlanData' nullable: true deploy: type: object description: Billing plan data for the 'Deploy' product. properties: plan: allOf: - $ref: '#/components/schemas/SubAccountBillingPlanData' nullable: true TrackingScriptReleaseBase: type: object description: Base settings for managing how new versions of the Convert tracking script are applied to the project. properties: type: type: string description: 'The chosen strategy for updating the tracking script: ''manual'', ''latest'' (auto-update), or ''scheduled''. ' TrackingScriptReleaseManual: allOf: - $ref: '#/components/schemas/TrackingScriptReleaseBase' - type: object additionalProperties: false properties: type: enum: - manual SimpleAudienceExpandable: anyOf: - type: integer description: Audience ID - $ref: '#/components/schemas/SimpleAudience' ExperienceChangeCustomCodeData: type: object description: Represents a 'customCode' type change, including its system-assigned ID. allOf: - $ref: '#/components/schemas/ExperienceChangeIdReadOnly' - $ref: '#/components/schemas/ExperienceChangeCustomCodeDataBase' - type: object properties: concurrency_key: $ref: '#/components/schemas/ConcurrencyKey' CookieMatchingOptions: type: string enum: - matches - regexMatches - contains - endsWith - startsWith - exists - doesNotExist BaseRuleWithLanguageCodeValue: allOf: - $ref: '#/components/schemas/BaseRule' - type: object properties: value: description: The 2 letter ISO language code used for matching type: string minLength: 2 maxLength: 2 Products: description: 'The Convert product line this billing plan pertains to. - `experiences`: Relates to A/B testing, MVT, Split URL, and personalization features. - `deploy`: Relates to the "Deploy" feature for rolling out changes to specific audiences without A/B testing reports. Knowledge Base: "Deployments have the potential to contain small segments...and this could be interpreted by Privacy Authorities in Europe as identification of data subjects." - `addons`: Relates to add-on products that extend the core platform capabilities. ' type: string enum: - experiences - deploy - addons SE_ProcSettingsBase: type: object properties: stats_type: $ref: '#/components/schemas/SE_ProcTypes' RuleElementAudience: oneOf: - $ref: '#/components/schemas/GenericTextMatchRule' - $ref: '#/components/schemas/GenericNumericMatchRule' - $ref: '#/components/schemas/GenericBoolMatchRule' - $ref: '#/components/schemas/GenericTextKeyValueMatchRule' - $ref: '#/components/schemas/GenericNumericKeyValueMatchRule' - $ref: '#/components/schemas/GenericBoolKeyValueMatchRule' - $ref: '#/components/schemas/CookieMatchRule' - $ref: '#/components/schemas/CountryMatchRule' - $ref: '#/components/schemas/LanguageMatchRule' - $ref: '#/components/schemas/GoalTriggeredMatchRule' - $ref: '#/components/schemas/SegmentBucketedMatchRule' - $ref: '#/components/schemas/DayOfWeekMatchRule' - $ref: '#/components/schemas/HourOfDayMatchRule' - $ref: '#/components/schemas/MinuteOfHourMatchRule' - $ref: '#/components/schemas/BrowserNameMatchRule' - $ref: '#/components/schemas/OsMatchRule' - $ref: '#/components/schemas/WeatherConditionMatchRule' - $ref: '#/components/schemas/VisitorTypeMatchRule' - $ref: '#/components/schemas/JsConditionMatchRule' - $ref: '#/components/schemas/VisitorDataExistsMatchRule' discriminator: propertyName: rule_type mapping: url: '#/components/schemas/GenericTextMatchRule' url_with_query: '#/components/schemas/GenericTextMatchRule' query_string: '#/components/schemas/GenericTextMatchRule' campaign: '#/components/schemas/GenericTextMatchRule' keyword: '#/components/schemas/GenericTextMatchRule' medium: '#/components/schemas/GenericTextMatchRule' source_name: '#/components/schemas/GenericTextMatchRule' avg_time_page: '#/components/schemas/GenericNumericMatchRule' city: '#/components/schemas/GenericTextMatchRule' country: '#/components/schemas/CountryMatchRule' region: '#/components/schemas/GenericTextMatchRule' days_since_last_visit: '#/components/schemas/GenericNumericMatchRule' language: '#/components/schemas/LanguageMatchRule' pages_visited_count: '#/components/schemas/GenericNumericMatchRule' goal_triggered: '#/components/schemas/GoalTriggeredMatchRule' visit_duration: '#/components/schemas/GenericNumericMatchRule' cookie: '#/components/schemas/CookieMatchRule' visitor_type: '#/components/schemas/VisitorTypeMatchRule' visits_count: '#/components/schemas/GenericNumericMatchRule' bucketed_into_experience: '#/components/schemas/GenericBoolMatchRule' bucketed_into_segment: '#/components/schemas/SegmentBucketedMatchRule' local_time_day_of_week: '#/components/schemas/DayOfWeekMatchRule' local_time_hour_of_day: '#/components/schemas/HourOfDayMatchRule' local_time_minute_of_hour: '#/components/schemas/MinuteOfHourMatchRule' project_time_day_of_week: '#/components/schemas/DayOfWeekMatchRule' project_time_hour_of_day: '#/components/schemas/HourOfDayMatchRule' project_time_minute_of_hour: '#/components/schemas/MinuteOfHourMatchRule' browser_name: '#/components/schemas/BrowserNameMatchRule' browser_version: '#/components/schemas/GenericTextMatchRule' os: '#/components/schemas/OsMatchRule' user_agent: '#/components/schemas/GenericTextMatchRule' is_desktop: '#/components/schemas/GenericBoolMatchRule' is_mobile: '#/components/schemas/GenericBoolMatchRule' is_tablet: '#/components/schemas/GenericBoolMatchRule' js_condition: '#/components/schemas/JsConditionMatchRule' page_tag_page_type: '#/components/schemas/GenericTextMatchRule' page_tag_category_id: '#/components/schemas/GenericTextMatchRule' page_tag_category_name: '#/components/schemas/GenericTextMatchRule' page_tag_product_sku: '#/components/schemas/GenericTextMatchRule' page_tag_product_name: '#/components/schemas/GenericTextMatchRule' page_tag_product_price: '#/components/schemas/GenericNumericMatchRule' page_tag_customer_id: '#/components/schemas/GenericTextMatchRule' page_tag_custom_1: '#/components/schemas/GenericTextMatchRule' page_tag_custom_2: '#/components/schemas/GenericTextMatchRule' page_tag_custom_3: '#/components/schemas/GenericTextMatchRule' page_tag_custom_4: '#/components/schemas/GenericTextMatchRule' weather_condition: '#/components/schemas/WeatherConditionMatchRule' generic_text_key_value: '#/components/schemas/GenericTextKeyValueMatchRule' generic_numeric_key_value: '#/components/schemas/GenericNumericKeyValueMatchRule' generic_bool_key_value: '#/components/schemas/GenericBoolKeyValueMatchRule' visitor_id: '#/components/schemas/GenericTextMatchRule' visitor_data_exists: '#/components/schemas/VisitorDataExistsMatchRule' TrackingScriptReleaseAutomaticApplyOn: type: object description: Configuration for scheduled tracking script updates, specifying the day of the week and time for automatic application of new versions. additionalProperties: false properties: day: type: integer description: Day of the week for scheduled updates (e.g., 1 for Monday, 7 for Sunday - convention needs to be clear). minimum: 1 maximum: 7 time: type: string pattern: ^([01]?[0-9]|2[0-4]):([0-5][0-9])$ description: Time of day (in project's timezone or UTC, needs clarification) in HH:MM format for scheduled updates (e.g., "03:00" for 3 AM). required: - day - time SimpleExperience: allOf: - $ref: '#/components/schemas/SimpleExperienceFlat' - type: object properties: name: description: Experience name type: string required: - name ExperienceVariationBaseExtended: allOf: - type: object properties: id: description: Variation unique ID type: integer readOnly: true - $ref: '#/components/schemas/ExperienceVariationBase' - type: object properties: status: $ref: '#/components/schemas/ExperienceVariationStatuses' BillingPortalResponseData: type: object description: Wrapper object for the billing portal response. properties: data: $ref: '#/components/schemas/BillingPortal' AudienceStatuses: type: string description: 'The status of an audience: - `active`: The audience is currently active and can be used for targeting experiences. - `archived`: The audience is no longer active and cannot be used for new experiences, but its definition and past usage data are preserved. Archived audiences can often be cloned. Knowledge Base: "Benefits of Archiving Unused Goals, Locations, and Audiences." ' enum: - active - archived AccountAddonsTypes: type: string enum: - one_time_convert_launch - conversionXl_mini_course - convert_remote_1h - goodUi_annual_solo LiveDataExpandParameter: type: object properties: expand: type: array nullable: true description: 'Specifies linked objects to expand in the live data response. Refer to the [Expanding Fields](#tag/Expandable-Fields) section. ' items: $ref: '#/components/schemas/LiveDataExpandFields' SE_ProcSettingsBayesian: allOf: - $ref: '#/components/schemas/SE_ProcSettingsBase' - type: object description: Stats Engine Settings needed for the Bayesian processing properties: stats_type: enum: - bayesian decision_threshold: description: Threshold after which a decision can be made type: number minimum: 50 maximum: 99 multipleOf: 1 risk_threshold: description: The maximum acceptable level of potential loss if the chosen variant turns out to be worse than the control. It represents the threshold below which the relative risk of preferring a variant over the control must fall to consider the variant as a strong and relatively safe choice. type: number minimum: 1 maximum: 100 multipleOf: 1 mab_settings: allOf: - $ref: '#/components/schemas/SE_MabSettings' nullable: true AudienceTypesWithUrl: description: 'Defines the behavior for an audience that *includes* URL-based conditions in its rules. - `segmentation`: Once a visitor matches the audience criteria (which can include URL rules), they are tagged and permanently added to this segment. This segment membership persists across sessions and can be used for long-term targeting or analysis. URL rules are evaluated to determine initial entry into the segment. Knowledge Base: "A segment basically allows a visitor to qualify for an audience on subsequent visits even if they do not meet the audience conditions." ' type: string enum: - segmentation GoalTriggeredMatchRulesTypes: type: string enum: - goal_triggered NumericOutlierBase: type: object properties: detection_type: $ref: '#/components/schemas/NumericOutlierTypes' required: - detection_type ReportingSegmentsDeviceCategories: type: string description: 'The category of device used by the visitor. Enables report segmentation by device type. - `iPhone`, `other_phones`, `all_phones`: Mobile phone categories. - `desktop`: Desktop or laptop computer. - `iPad`, `other_tablets`, `all_tablets`: Tablet categories. Note: Some devices might fall into multiple categories (e.g., an iPhone is both ''iPhone'' and ''all_phones''). Knowledge Base: "Targeting Mobile, Tablet, and Desktop". ' enum: - iPhone - all_phones - other_phones - desktop - iPad - all_tablets - other_tablets SimpleProject: type: object properties: id: description: The unique numerical identifier of the project. type: integer name: description: The user-defined, friendly name of the project. type: string reporting_settings: type: object description: Essential reporting settings for the project. properties: currency_symbol: type: string description: The default currency symbol used in reports for this project (e.g., "$", "€"). maxLength: 10 settings: type: object description: Essential general settings for the project. properties: time_zone: type: string description: The configured timezone for the project (e.g., "America/New_York"). utc_offset: $ref: '#/components/schemas/UTC_Offset' time_format: type: string description: Preferred time display format ('12h' or '24h') in the UI for this project. enum: - 12h - 24h BillingPlanBillByEnum: type: string description: 'Indicates the primary metric used for billing and quota calculation for the plan: - `testedUsers`: Billing is based on the number of unique identified users participating in experiments (common in Full Stack). - `testedVisitors`: Billing is based on the number of unique anonymous or identified visitors participating in experiments (common for web A/B testing). ' enum: - testedUsers - testedVisitors ChangeHistoryList: type: array description: A list of change history records. items: $ref: '#/components/schemas/ChangeHistory' BaseRuleWithMinuteOfHourValue: allOf: - $ref: '#/components/schemas/BaseRule' - type: object properties: value: description: Minute of hour used for matching type: number minimum: 1 maximum: 60 IntegrationGA4Base: type: object properties: type: enum: - ga4 measurementId: type: string description: The GA4 Measurement ID (e.g., "G-XXXXXXXXXX") for the data stream where Convert experiment data will be sent. SubAccountBillingPlanData: allOf: - $ref: '#/components/schemas/BillingPlanDataBase' - $ref: '#/components/schemas/SubAccountBillingPlanLimitsAndCapabilities' AccountGeneralStats: type: object description: General usage statistics for the account, typically for the current billing period. This is an optional field in API responses, included via `include[]=stats`. readOnly: true nullable: true properties: active_projects_count: type: number description: The number of currently active projects within this account. active_domains_count: type: number description: The total number of unique domains associated with active projects in this account. active_deploys_count: type: number description: The number of currently active "Deploy" type experiences across all projects in this account. usage: type: object description: Current usage metrics for the account against its plan quotas. properties: used_tested_users: type: integer description: The number of unique identified users who have participated in Full Stack experiments or specific web tests within the current billing cycle. used_tested_visitors: type: integer description: The number of unique visitors (anonymous or identified) who have participated in any web experiment or deploy within the current billing cycle. This is a primary quota metric. experiences_count: type: integer description: 'The total number of experiences (all statuses: draft, active, paused, completed, archived) within this account. ' active_experiences_count: type: integer description: The number of experiences currently in 'active' status across all projects in this account. SimpleAudience: type: object properties: id: description: The unique numerical identifier of the audience. type: integer name: description: The user-defined, friendly name of the audience. type: string HourOfDayMatchRule: allOf: - $ref: '#/components/schemas/BaseRuleWithHourOfDayValue' - type: object required: - rule_type properties: rule_type: $ref: '#/components/schemas/HourOfDayMatchRulesTypes' matching: allOf: - $ref: '#/components/schemas/BaseMatch' - type: object properties: match_type: $ref: '#/components/schemas/NumericMatchingOptions' BillingPlansListResponseData: type: object description: Contains a list of all active billing plans that an account can subscribe to. properties: data: type: array items: $ref: '#/components/schemas/BillingPlanData' TrackingScriptAvailableVersions: type: array description: A list of available versions for the Convert tracking script, each with a version tag, changelog, release date, and potentially the date it was or will be applied to the project. readOnly: true items: type: object properties: version: type: string description: The version tag string (e.g., "v2.11.3", "v3.0.0-beta1"). changelog: type: string nullable: true description: A summary of changes, improvements, and bug fixes included in this script version. released_date: type: integer format: int64 description: Unix timestamp (UTC) when this script version was officially released by Convert. apply_date: type: integer format: int64 nullable: true description: Unix timestamp (UTC) when this version was (or is scheduled to be) applied to the project, if using manual or scheduled updates. LiveDataEventsList: type: array description: A list of live data event objects, showing real-time interactions. items: $ref: '#/components/schemas/LiveDataEvent' AccountExperiencesListRequestData: allOf: - $ref: '#/components/schemas/OnlyCount' - $ref: '#/components/schemas/AccountExperiencesListFilteringOptions' - $ref: '#/components/schemas/PageNumber' - type: object properties: include: description: 'Specifies the list of fields to be included in the response, which otherwise would not be sent. Read more in the section related to [Optional Fields](#tag/Optional-Fields) ' type: array items: $ref: '#/components/schemas/ExperienceIncludeFields' expand: 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)' type: array items: $ref: '#/components/schemas/ExperienceExpandFields' PlanUpdateBody: type: object properties: plan_id: description: 'The ID of the new billing plan to subscribe to. If the account is in trial, the new plan activates after the trial. If already on a paid plan, this may result in pro-rata charges or credits. Providing `null` typically cancels the existing subscription for this product. ' type: number nullable: true BaseRuleWithGoalTriggeredValue: allOf: - $ref: '#/components/schemas/BaseRule' - type: object properties: value: description: ID of the goal used for matching type: number DomInteractionGoalSettings: type: object additionalProperties: false properties: tracked_items: type: array description: An array defining one or more DOM elements and the interaction events on them that should trigger this goal. items: type: object description: Defines a single DOM element and event to track. properties: selector: type: string description: A CSS selector that identifies the HTML element(s) to monitor for interactions (e.g., "#submitButton", ".product-image"). event: type: string description: The specific DOM event to listen for on the selected element(s) (e.g., "click", "mouseover", "change", "focus"). required: - tracked_items BaseRuleWithJsCodeValue: allOf: - $ref: '#/components/schemas/BaseRule' - type: object properties: value: description: 'The JS code that would be executed when rule is checked. The return value of this JS code is what is gonna be matched against **true**(or **false** if **matching.negated = true** is provided) ' type: string StartPaymentSetupStripeResponseData: type: object description: Stripe payment setup response. properties: provider: type: string enum: - stripe description: Billing provider identifier. Always `stripe` for this schema. client_secret: type: string description: Stripe SetupIntent client secret used by Stripe.js to complete payment setup. required: - provider - client_secret SimpleExperienceVariationExpandable: oneOf: - type: integer description: Variation ID - $ref: '#/components/schemas/SimpleExperienceVariation' AudienceWithoutUrlMatching: allOf: - $ref: '#/components/schemas/AudienceBase' - type: object properties: type: $ref: '#/components/schemas/AudienceTypesNoUrl' rules: nullable: true allOf: - $ref: '#/components/schemas/RuleObjectNoUrl' GenericBoolKeyValueMatchRule: allOf: - $ref: '#/components/schemas/BaseRuleWithBooleanValue' - type: object required: - rule_type properties: rule_type: $ref: '#/components/schemas/GenericBoolKeyValueMatchRulesTypes' matching: allOf: - $ref: '#/components/schemas/BaseMatch' - type: object properties: match_type: $ref: '#/components/schemas/ChoiceMatchingOptions' - $ref: '#/components/schemas/GenericKey' ExperienceChangeDefaultCodeMultipageData: type: object description: Represents a 'defaultCodeMultipage' type change, including its system-assigned ID. allOf: - $ref: '#/components/schemas/ExperienceChangeIdReadOnly' - $ref: '#/components/schemas/ExperienceChangeDefaultCodeMultipageDataBase' - type: object properties: concurrency_key: $ref: '#/components/schemas/ConcurrencyKey' requestBodies: RequestAccountAddonsRequest: required: true description: A JSON object specifying the `addon` being requested (e.g., 'one_time_convert_launch' for a managed service) and, if applicable, collaborator details for whom the add-on is intended. content: application/json: schema: $ref: '#/components/schemas/RequestAccountAddonsData' StartPaymentSetupRequest: required: true description: An optional JSON object, though typically empty for this request. The primary action is to initiate a secure session with the payment provider for adding or updating payment methods. content: application/json: schema: $ref: '#/components/schemas/StartPaymentSetupRequestData' GetAccountLiveDataRequest: content: application/json: schema: $ref: '#/components/schemas/AccountLiveDataRequestData' description: Optional filters for retrieving live tracking events for an entire account. You can specify particular project IDs or event types (e.g., 'view_experience', 'conversion') to narrow down the results. Useful for a real-time overview of all activities. UpdateAccountDetailsRequest: required: true description: A JSON object containing the account details to be updated, such as company name, address, tax information, billing contact emails, or settings like allowing over-quota charges. content: application/json: schema: $ref: '#/components/schemas/AccountDetailsUpdate' GetAccountHistoryRequest: content: application/json: schema: $ref: '#/components/schemas/AccountHistoryRequestData' description: Filters for retrieving the change history log for an account. Allows specifying date ranges, the user who made changes, types of objects changed (e.g., 'project', 'billing'), and methods of change (API or app UI). CreateSubAccountRequest: required: true description: A JSON object with details for the new sub-account, including its name, the initial owner's name and email, and specific billing plan configurations and usage limits. content: application/json: schema: $ref: '#/components/schemas/SubAccountCreate' GetAccountActiveCompletedExperiencesListRequest: content: application/json: schema: $ref: '#/components/schemas/AccountExperiencesListRequestData' responses: AccountsListResponse: description: A list of accounts that the authenticated user has access to. Each account object includes basic details like ID, name, and the user's access role for that account. content: application/json: schema: $ref: '#/components/schemas/AccountsListResponseData' StartPaymentSetupResponse: description: Contains a `client_secret` (e.g., from Stripe) required by the frontend UI to securely complete the process of adding or updating an account's payment method. content: application/json: schema: $ref: '#/components/schemas/StartPaymentSetupResponseData' ChangeHistoryListResponse: description: A log of changes made within an account or project. Each entry details the `event` (e.g., 'create', 'update', 'delete'), the `object` changed (e.g., 'experience', 'goal'), `object_id`, `user` who made the change, `timestamp`, and `changes` (old and new values). content: application/json: schema: $ref: '#/components/schemas/ChangeHistoryListResponseData' SuccessResponse: description: 'A generic success response, typically used for operations that don''t return specific data (like deletions or some updates). The `code` is usually 200, and `message` confirms the successful action. ' content: application/json: schema: $ref: '#/components/schemas/SuccessData' BillingPlansListResponse: description: A list of all active billing plans offered by Convert, detailing features, usage limits (e.g., tested visitors, projects), and pricing for each plan. content: application/json: schema: $ref: '#/components/schemas/BillingPlansListResponseData' BillingPortalResponse: description: Authenticated Paddle billing portal URL for the given account. content: application/json: schema: $ref: '#/components/schemas/BillingPortalResponseData' PlanSetupUsersResponse: description: A list of users associated with an account, typically retrieved for notifying them about billing plan setup or changes. Includes user ID, email, and name. content: application/json: schema: $ref: '#/components/schemas/PlanSetupUsersResponseData' ErrorResponse: description: 'Indicates an error occurred while processing the request. The `code` provides an HTTP status code, `message` offers a human-readable explanation or an array of validation errors, and `fields` (if present) specifies which input fields were problematic. ' content: application/json: schema: $ref: '#/components/schemas/ErrorData' AccountDetailsResponse: description: Detailed information for a specific account, including its name, type (main/sub), billing information, usage limits, subscribed products (Experiences, Deploy), and general settings. content: application/json: schema: $ref: '#/components/schemas/AccountDetailsResponseData' LiveDataEventsListResponse: description: A list of recent live tracking events, each detailing the event type (view_experience, conversion, transaction), associated experience/variation, visitor segments (device, browser, country), and timestamp. content: application/json: schema: $ref: '#/components/schemas/LiveDataEventsListResponseData' ExperiencesListResponse: description: A list of experiences (A/B tests, personalizations, etc.) within a project. Each entry includes summary information like ID, name, type, status, and potentially high-level stats depending on `include` parameters. content: application/json: schema: $ref: '#/components/schemas/ExperiencesListResponseData' parameters: AccountId: name: account_id in: path required: true description: ID of the account that owns the retrieved/saved data schema: type: integer securitySchemes: requestSigning: type: apiKey x-name-applicationId: Convert-Application-ID x-name-expire: Expire name: Authorization in: header description: 'See **[API Key Authentication](#tag/API-KEY-Authentication)** for more information. ' secretKey: type: http scheme: bearer description: 'See **[API Key Authentication](#tag/API-KEY-Authentication)** for more information. ' cookieAuthentication: type: apiKey in: cookie name: sid description: Cookie authentication is used against Convert's own IdentityProvider or third party identity providers and is described more in the "[Cookie Authentication](#tag/Cookie-Authentication)" section x-tagGroups: - name: Client Authentication tags: - API KEY Authentication - Cookie Authentication - OAuth Authorization - name: Common Parameters tags: - Optional Fields - Expandable Fields - name: Requests tags: - User - Accounts - AI content - Collaborators - API Keys - Projects - SDK Keys - Experiences - Experience Variations - Experience Sections - Section Versions - Version Changes - Experiences Reports - Experiences Heatmaps - Goals - Hypotheses - Knowledge Bases - Observations - Locations - Audiences - Domains - Cdn Images - Files - Tags - Features - Visitor Insights - Visitors Data - Visitor Data Placeholders - OAuth