Intelligems Perform Experience Action API

Lifecycle actions for managing experience state transitions (start, pause, end).

Operations 1

POST /v25-10-beta/experiences/{experienceId}/actions/{action} Create v25 10 beta experiences by experience id actions by action #

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

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

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/intelligems-perform-experience-action-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

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

Get an API key

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

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

OpenAPI Specification

intelligems-perform-experience-action-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Intelligems External Perform Experience Action API
  version: v25-10-beta
  description: Programmatic access to manage Intelligems A/B tests, personalizations, and experiences, to define custom events, and to pull experiment and sitewide analytics for a Shopify store. Authenticate with an API key in the `intelligems-access-token` header.
  contact:
    name: Intelligems
    url: https://docs.intelligems.io/developer-resources/external-api
servers:
- url: https://api.intelligems.io
  description: Production
security:
- intelligems_access_token: []
tags:
- name: Perform Experience Action
  description: Lifecycle actions for managing experience state transitions (start, pause, end).
paths:
  /v25-10-beta/experiences/{experienceId}/actions/{action}:
    post:
      tags:
      - Perform Experience Action
      description: 'Performs an action on an experience to control its lifecycle.


        ### Supported Actions


        - `start` - Activate the experience and begin serving it to visitors

        - `pause` - Temporarily stop serving the experience (can be resumed with start)

        - `end` - Permanently end the experience


        ### Important Notes


        - The experience must exist and belong to your organization

        - Starting an experience sets it live and removes preview mode

        - Pausing or ending an experience returns it to preview mode

        - Only certain state transitions are valid (e.g., cannot pause an already ended experience)


        ### Request Body Fields


        - `variationId` (string UUID, optional) — The ID of the variation to apply. When ending an experience, this selects the winning variation.


        ### Usage Examples


        **Start an experience** (no body fields needed):


        ```

        POST /v25-10-beta/experiences/{experienceId}/actions/start

        Body: {}

        ```


        **Pause an experience** (no body fields needed for content tests):


        ```

        POST /v25-10-beta/experiences/{experienceId}/actions/pause

        Body: {}

        ```


        **End an experience** with a winning variation:


        ```

        POST /v25-10-beta/experiences/{experienceId}/actions/end

        Body: { "variationId": "", "updatePricesToVariation": true }

        ```'
      parameters:
      - in: path
        name: experienceId
        schema:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        required: true
      - in: path
        name: action
        schema:
          type: string
          enum:
          - start
          - pause
          - end
        required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                variationId:
                  anyOf:
                  - type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  - type: 'null'
                updatePricesToVariation:
                  type: boolean
      responses:
        '200':
          description: OK
          headers:
            access-control-allow-origin:
              schema:
                type: string
              description: CORS allow-origin header.
            access-control-allow-credentials:
              schema:
                type: string
              description: CORS allow-credentials header.
            content-type:
              schema:
                type: string
              description: Response content type.
            Timing-Allow-Origin:
              schema:
                type: string
              description: Allowed origin for Timing headers.
          content:
            application/json:
              schema:
                type: object
                properties:
                  experience:
                    anyOf:
                    - type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          description: Server-generated. Read-only.
                        name:
                          type: string
                          description: Display name shown in dashboards and reports.
                        isPreview:
                          default: true
                          description: True while in draft mode. Must be set to false before the experience can be started.
                          type: boolean
                        description:
                          description: Internal note explaining what this experience tests.
                          anyOf:
                          - type: string
                          - type: 'null'
                        devicePreview:
                          description: Device and path configuration for the preview iframe.
                          anyOf:
                          - type: object
                            properties:
                              device:
                                default: desktop
                                description: Viewport to simulate when rendering the preview.
                                type: string
                                enum:
                                - any
                                - mobile
                                - desktop
                              path:
                                default: /
                                description: Storefront URL path to load in the preview (e.g., '/products/example').
                                type: string
                            required:
                            - device
                            - path
                            additionalProperties: false
                            description: Device and path configuration for previewing the experience.
                          - type: 'null'
                        organizationId:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          description: Server-generated. Read-only. The Shopify store that owns this experience.
                        type:
                          type: string
                          enum:
                          - content/advanced
                          - content/onsiteEdits
                          - content/url
                          - content/theme
                          - content/template
                          - personalization
                          - personalization/offer
                          - pricing
                          - checkoutBlock
                          - shipping
                          - sitewide
                          - postPurchase
                          - onsiteUpsell
                          description: 'Determines which variation fields are relevant: content/onsiteEdits for DOM edits, content/advanced for CSS/JS injection, content/url for redirect split tests, content/theme for theme tests, content/template for template tests.'
                        category:
                          type: string
                          enum:
                          - experiment
                          - personalization
                          description: Distinguishes A/B experiments (statistical testing) from personalization rules (deterministic targeting).
                        status:
                          type: string
                          enum:
                          - pending
                          - started
                          - ended
                          - paused
                          description: 'Server-managed lifecycle state. Transitions via start/pause/end actions: pending -> started -> paused/ended.'
                        testTypes:
                          type: object
                          properties:
                            hasTestPricing:
                              type: boolean
                              description: Server-generated. Read-only. True when price testing is active.
                            hasTestShipping:
                              type: boolean
                              description: Server-generated. Read-only. True when shipping rate testing is active.
                            hasTestCampaign:
                              type: boolean
                              description: Server-generated. Read-only. True when campaign/offer testing is active.
                            hasTestContent:
                              type: boolean
                              description: Server-generated. Read-only. True when any content variation type is enabled.
                            hasTestContentUrl:
                              type: boolean
                              description: Server-generated. Read-only. True when URL redirect variations are in use.
                            hasTestContentAdvanced:
                              type: boolean
                              description: Server-generated. Read-only. True when custom JS/CSS variations are in use.
                            hasTestContentOnsite:
                              type: boolean
                              description: Server-generated. Read-only. True when visual onsite edit variations are in use.
                            hasTestContentTemplate:
                              type: boolean
                              description: Server-generated. Read-only. True when Shopify template variations are in use.
                            hasTestContentTheme:
                              type: boolean
                              description: Server-generated. Read-only. True when Shopify theme variations are in use.
                            hasTestOnsiteInjections:
                              type: boolean
                              description: Server-generated. Read-only. True when CSS/JS injection variations are in use.
                            hasTestCheckoutBlocks:
                              type: boolean
                              description: Server-generated. Read-only. True when checkout block variations are in use.
                            hasTestPostPurchase:
                              type: boolean
                              description: Server-generated. Read-only. True when post-purchase upsell variations are in use.
                            hasTestOnsiteUpsell:
                              type: boolean
                              description: Server-generated. Read-only. True when onsite upsell components are in use.
                          required:
                          - hasTestPricing
                          - hasTestShipping
                          - hasTestCampaign
                          - hasTestContent
                          - hasTestContentUrl
                          - hasTestContentAdvanced
                          - hasTestContentOnsite
                          - hasTestContentTemplate
                          - hasTestContentTheme
                          - hasTestOnsiteInjections
                          - hasTestCheckoutBlocks
                          - hasTestPostPurchase
                          - hasTestOnsiteUpsell
                          additionalProperties: false
                          description: Server-generated. Read-only. Flags derived from 'type' indicating which variation capabilities are active.
                        experiencePageTargeting:
                          default: []
                          description: Rules controlling where this experience activates. Primarily URL/path rules, but the same expression format also supports 'device', 'country', 'visitor', 'trafficSource', 'referrer', and 'cookie'. Empty means all pages. To target the whole experience at a device (e.g. desktop only), prefer an `audience` filter over a page-targeting rule.
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                                format: uuid
                                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              filter:
                                anyOf:
                                - type: string
                                  enum:
                                  - equals
                                  - contains
                                  - startsWith
                                  - endsWith
                                  - doesNotEqual
                                  - doesNotContain
                                  - doesNotStartWith
                                  - doesNotEndWith
                                  - isNull
                                  - isNotNull
                                  - regex
                                - type: 'null'
                              filterType:
                                default: url
                                type: string
                                enum:
                                - utm
                                - url
                                - device
                                - visitor
                                - jsExpression
                                - trafficSource
                                - country
                                - referrer
                                - cookie
                              value:
                                type: string
                              order:
                                type: number
                              expression:
                                anyOf:
                                - type: array
                                  items:
                                    type: object
                                    properties:
                                      query:
                                        type: object
                                        properties:
                                          key:
                                            type: string
                                            description: Visitor attribute or parameter name to match (e.g., 'utm_source', 'device_type').
                                          value:
                                            type: string
                                            description: 'Expected value to compare against the visitor''s actual value for this key. Constrained by `type`: when type is ''device'' this must be exactly ''any'', ''mobile'', or ''desktop''.'
                                          filter:
                                            description: Comparison operator (e.g., equals, contains, startsWith).
                                            anyOf:
                                            - type: string
                                              enum:
                                              - equals
                                              - contains
                                              - startsWith
                                              - endsWith
                                              - doesNotEqual
                                              - doesNotContain
                                              - doesNotStartWith
                                              - doesNotEndWith
                                              - isNull
                                              - isNotNull
                                              - regex
                                            - type: 'null'
                                          type:
                                            default: utm
                                            description: Category of the parameter being matched. Determines which keys are valid. Use 'device' for device targeting (pair with key 'device', filter 'equals', and value 'any' | 'mobile' | 'desktop'); 'utm'/'url' for query params; 'urlPath' for the path; and 'country', 'visitor', 'trafficSource', 'referrer', 'cookie', 'landingPage', 'klaviyo', or 'jsExpression' for the rest.
                                            type: string
                                            enum:
                                            - utm
                                            - url
                                            - urlPath
                                            - device
                                            - visitor
                                            - jsExpression
                                            - trafficSource
                                            - country
                                            - referrer
                                            - cookie
                                            - klaviyo
                                            - landingPage
                                        required:
                                        - key
                                        - value
                                        - type
                                        additionalProperties: false
                                      operator:
                                        type: string
                                        enum:
                                        - and
                                        - or
                                        - start_paren
                                        - end_paren
                                    additionalProperties: false
                                - type: 'null'
                              experienceId:
                                type: string
                                format: uuid
                                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                            required:
                            - id
                            - filterType
                            - value
                            - order
                            additionalProperties: false
                        experienceProductTargeting:
                          default: []
                          description: Product attribute rules controlling which products this experience applies to. Empty means all products.
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                                format: uuid
                                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                description: Server-generated. Read-only.
                              experienceId:
                                type: string
                                format: uuid
                                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                description: References the parent experience.
                              target:
                                type: string
                                enum:
                                - productPage
                                - productCard
                                description: Storefront context where targeting rules are evaluated (product detail pages vs collection/search listings).
                              expression:
                                description: Boolean expression tree of product attribute conditions. Each node has either a 'query' (leaf) or 'operator' (combinator).
                                anyOf:
                                - type: array
                                  items:
                                    type: object
                                    properties:
                                      query:
                                        type: object
                                        properties:
                                          key:
                                            type: string
                                            enum:
                                            - productId
                                            - collection
                                            - tag
                                            - price
                                            - inventory
                                            description: Product attribute to filter on. Determines which product property is evaluated.
                                          value:
                                            anyOf:
                                            - type: string
                                            - type: number
                                            description: Expected value. String for text attributes (productId, collection, tag); number for numeric attributes (price, inventory).
                                          filter:
                                            type: string
                                            enum:
                                            - includes
                                            - doesNotInclude
                                            - greaterThan
                                            - lessThan
                                            description: Comparison operator for evaluating the product attribute against the value.
                                          type:
                                            type: string
                                            enum:
                                            - productId
                                            - collection
                                            - tag
                                            - price
                                            - inventory
                                            description: Mirrors the key field. Determines attribute category for validation.
                                        required:
                                        - key
                                        - value
                                        - filter
                                        - type
                                        additionalProperties: false
                                      operator:
                                        type: string
                                        enum:
                                        - and
                                        - or
                                        - start_paren
                                        - end_paren
                                    additionalProperties: false
                                - type: 'null'
                            required:
                            - id
                            - experienceId
                            - target
                            additionalProperties: false
                        experienceActions:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                                format: uuid
                                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              experienceId:
                                type: string
                                format: uuid
                                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              action:
                                type: string
                                enum:
                                - start
                                - pause
                                - end
                                - delete
                                - reset
                              actionTs:
                                type: number
                              performedBy:
                                description: Email of the user who triggered this lifecycle event. Resolved from History records by matching action type and timestamp within a 5-minute window. Null if no matching History record is found, or if the record has no associated user. Currently only populated by GET /experiences/{experienceId}; list endpoints return null.
                                anyOf:
                                - type: string
                                - type: 'null'
                            required:
                            - id
                            - experienceId
                            - action
                            - actionTs
                            additionalProperties: false
                          description: Server-generated. Read-only. Lifecycle state transitions (start, pause, end, delete, reset) recorded for this experience. On GET /experiences/{experienceId}, each entry includes a `performedBy` field with the triggering user's email, resolved from History records (may be null if unresolvable). Distinct from the list endpoint's raw `history` field, which contains broader user-action records.
                        experienceIntegrations:
                          default: []
                          description: Connected third-party integrations (e.g., Google Analytics, Segment).
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                                format: uuid
                                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              createdAtTs:
                                type: number
                              integration:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    format: uuid
                                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                  name:
                                    type: string
                                    enum:
                                    - Recharge
                                    - StayAi
                                    - GrowLTV
                                    - OneClickUpsell
                                    - Google
                                    - Amped
                                    - Clarity
                                    - Hotjar
                                    - Heatmap
                                    - CustomApi
                                    - Klaviyo
                                    - Slack
                                    - Amplitude
                                    - Heap
                                    - Segment
                                    - IntelligemsAPI
                                    - IntelligemsMcp
                                  description:
                                    type: string
                                  enabled:
                                    type: boolean
                                  globalSettings: {}
                                  apis:
                                    default: []
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        id:
                                          type: string
                                          format: uuid
                                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                        name:
                                          type: string
                                        description:
                                          anyOf:
                                          - type: string
                                          - type: 'null'
                                        accessToken:
                                          type: string
                                        scopes:
                                          type: array
                                          items:
                                            type: string
                                            enum:
                                            - read_experiments
                                            - write_experiments
                                            - write_test_groups
                                            - read_integrations
                                        organization:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                              format: uuid
                                              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                            name:
                                              type: string
                                          required:
                                          - id
                                          - name
                                          additionalProperties: false
                                      required:
                                      - id
                                      - name
                                      - accessToken
                                      - scopes
                                      - organization
                                      additionalProperties: false
                                  createdAtTs:
                                    type: number
                                  lastUpdateTs:
                                    type: number
                                required:
                                - id
                                - name
                                - description
                                - enabled
                                - globalSettings
                                - apis
                                additionalProperties: false
                              experience

# --- truncated at 32 KB (337 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/intelligems/refs/heads/main/openapi/intelligems-perform-experience-action-api-openapi.yml