Intelligems Custom Events API

Define the client-side behaviors Intelligems tracks on a storefront — click events, scroll depth, page views, product and collection page views, element-viewed and custom JavaScript events — so they can be attached to an experience as a success metric or used as an analytics filter.

Operations 1

PUT /v25-10-beta/custom-events Create or update custom event #

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-custom-events-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-custom-events-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Intelligems External Custom Events 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:
- accessToken: []
tags:
- name: Custom Events
  description: Define client-side custom events (clicks, scroll depth, page views) used as goals and triggers on experiences.
paths:
  /v25-10-beta/custom-events:
    put:
      tags:
      - Custom Events
      description: Create a new custom event (click, scroll depth, page view, element viewed, JavaScript event), or update an existing one in place by passing back its id. Accepts a single event object or an array of up to 50.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                customEvent:
                  anyOf:
                  - oneOf:
                    - 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: Display name shown in the Events Manager and when selecting metrics for an experience.
                        description:
                          description: Internal note explaining what this event tracks.
                          anyOf:
                          - type: string
                          - type: 'null'
                        applyToUrls:
                          minItems: 1
                          type: array
                          items:
                            type: object
                            properties:
                              matchBy:
                                type: string
                                enum:
                                - equals
                                - contains
                                - startsWith
                                - endsWith
                                - doesNotEqual
                                - doesNotContain
                                - doesNotStartWith
                                - doesNotEndWith
                                - isNull
                                - isNotNull
                                - regex
                              value:
                                type: string
                              error:
                                anyOf:
                                - type: string
                                - type: 'null'
                            required:
                            - matchBy
                            - value
                          description: Optional URL rules restricting which pages this event fires on. Omit to track on all pages.
                        type:
                          type: string
                          const: pageView
                          description: Determines which visitor behavior is tracked and which `settings` shape is required. Use pageView for any page visit, productPageView/collectionPageView for specific product or collection pages, clickEvent/elementViewed for CSS-selector-targeted DOM interactions, scrollDepth for scroll-percentage milestones, and javascriptEvent for a custom JS snippet that fires the event.
                        settings:
                          type: object
                          properties: {}
                      required:
                      - name
                      - applyToUrls
                      - type
                      - settings
                    - 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: Display name shown in the Events Manager and when selecting metrics for an experience.
                        description:
                          description: Internal note explaining what this event tracks.
                          anyOf:
                          - type: string
                          - type: 'null'
                        type:
                          type: string
                          const: productPageView
                          description: Determines which visitor behavior is tracked and which `settings` shape is required. Use pageView for any page visit, productPageView/collectionPageView for specific product or collection pages, clickEvent/elementViewed for CSS-selector-targeted DOM interactions, scrollDepth for scroll-percentage milestones, and javascriptEvent for a custom JS snippet that fires the event.
                        settings:
                          minItems: 1
                          type: array
                          items:
                            type: object
                            properties:
                              productId:
                                type: string
                                description: Shopify product ID to track page views for.
                              handle:
                                type: string
                                description: Shopify product handle to track page views for.
                            required:
                            - productId
                            - handle
                      required:
                      - name
                      - type
                      - settings
                    - 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: Display name shown in the Events Manager and when selecting metrics for an experience.
                        description:
                          description: Internal note explaining what this event tracks.
                          anyOf:
                          - type: string
                          - type: 'null'
                        type:
                          type: string
                          const: collectionPageView
                          description: Determines which visitor behavior is tracked and which `settings` shape is required. Use pageView for any page visit, productPageView/collectionPageView for specific product or collection pages, clickEvent/elementViewed for CSS-selector-targeted DOM interactions, scrollDepth for scroll-percentage milestones, and javascriptEvent for a custom JS snippet that fires the event.
                        settings:
                          minItems: 1
                          type: array
                          items:
                            type: object
                            properties:
                              handle:
                                type: string
                                description: Shopify collection handle to track page views for.
                            required:
                            - handle
                      required:
                      - name
                      - type
                      - settings
                    - 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: Display name shown in the Events Manager and when selecting metrics for an experience.
                        description:
                          description: Internal note explaining what this event tracks.
                          anyOf:
                          - type: string
                          - type: 'null'
                        applyToUrls:
                          description: Optional URL rules restricting which pages this event fires on. Omit to track on all pages.
                          anyOf:
                          - type: array
                            items:
                              type: object
                              properties:
                                matchBy:
                                  type: string
                                  enum:
                                  - equals
                                  - contains
                                  - startsWith
                                  - endsWith
                                  - doesNotEqual
                                  - doesNotContain
                                  - doesNotStartWith
                                  - doesNotEndWith
                                  - isNull
                                  - isNotNull
                                  - regex
                                value:
                                  type: string
                                error:
                                  anyOf:
                                  - type: string
                                  - type: 'null'
                              required:
                              - matchBy
                              - value
                          - type: 'null'
                        type:
                          type: string
                          const: clickEvent
                          description: Determines which visitor behavior is tracked and which `settings` shape is required. Use pageView for any page visit, productPageView/collectionPageView for specific product or collection pages, clickEvent/elementViewed for CSS-selector-targeted DOM interactions, scrollDepth for scroll-percentage milestones, and javascriptEvent for a custom JS snippet that fires the event.
                        settings:
                          type: object
                          properties:
                            selectors:
                              minItems: 1
                              type: array
                              items:
                                type: string
                                minLength: 1
                              description: CSS selectors identifying the elements whose clicks should be tracked.
                          required:
                          - selectors
                      required:
                      - name
                      - type
                      - settings
                    - 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: Display name shown in the Events Manager and when selecting metrics for an experience.
                        description:
                          description: Internal note explaining what this event tracks.
                          anyOf:
                          - type: string
                          - type: 'null'
                        applyToUrls:
                          description: Optional URL rules restricting which pages this event fires on. Omit to track on all pages.
                          anyOf:
                          - type: array
                            items:
                              type: object
                              properties:
                                matchBy:
                                  type: string
                                  enum:
                                  - equals
                                  - contains
                                  - startsWith
                                  - endsWith
                                  - doesNotEqual
                                  - doesNotContain
                                  - doesNotStartWith
                                  - doesNotEndWith
                                  - isNull
                                  - isNotNull
                                  - regex
                                value:
                                  type: string
                                error:
                                  anyOf:
                                  - type: string
                                  - type: 'null'
                              required:
                              - matchBy
                              - value
                          - type: 'null'
                        type:
                          type: string
                          const: elementViewed
                          description: Determines which visitor behavior is tracked and which `settings` shape is required. Use pageView for any page visit, productPageView/collectionPageView for specific product or collection pages, clickEvent/elementViewed for CSS-selector-targeted DOM interactions, scrollDepth for scroll-percentage milestones, and javascriptEvent for a custom JS snippet that fires the event.
                        settings:
                          type: object
                          properties:
                            selectors:
                              minItems: 1
                              type: array
                              items:
                                type: string
                                minLength: 1
                              description: CSS selectors identifying the elements whose visibility in the viewport should be tracked.
                          required:
                          - selectors
                      required:
                      - name
                      - type
                      - settings
                    - 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: Display name shown in the Events Manager and when selecting metrics for an experience.
                        description:
                          description: Internal note explaining what this event tracks.
                          anyOf:
                          - type: string
                          - type: 'null'
                        applyToUrls:
                          description: Optional URL rules restricting which pages this event fires on. Omit to track on all pages.
                          anyOf:
                          - type: array
                            items:
                              type: object
                              properties:
                                matchBy:
                                  type: string
                                  enum:
                                  - equals
                                  - contains
                                  - startsWith
                                  - endsWith
                                  - doesNotEqual
                                  - doesNotContain
                                  - doesNotStartWith
                                  - doesNotEndWith
                                  - isNull
                                  - isNotNull
                                  - regex
                                value:
                                  type: string
                                error:
                                  anyOf:
                                  - type: string
                                  - type: 'null'
                              required:
                              - matchBy
                              - value
                          - type: 'null'
                        type:
                          type: string
                          const: scrollDepth
                          description: Determines which visitor behavior is tracked and which `settings` shape is required. Use pageView for any page visit, productPageView/collectionPageView for specific product or collection pages, clickEvent/elementViewed for CSS-selector-targeted DOM interactions, scrollDepth for scroll-percentage milestones, and javascriptEvent for a custom JS snippet that fires the event.
                        settings:
                          type: object
                          properties:
                            mobile:
                              type: object
                              properties:
                                percentage:
                                  type: number
                                  minimum: 0
                                  maximum: 100
                                  description: Percentage of page height scrolled (0-100) that triggers the event.
                              required:
                              - percentage
                              description: Scroll depth threshold to track on mobile viewports.
                            desktop:
                              type: object
                              properties:
                                percentage:
                                  type: number
                                  minimum: 0
                                  maximum: 100
                                  description: Percentage of page height scrolled (0-100) that triggers the event.
                              required:
                              - percentage
                              description: Scroll depth threshold to track on desktop viewports.
                          required:
                          - mobile
                          - desktop
                      required:
                      - name
                      - type
                      - settings
                    - 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: Display name shown in the Events Manager and when selecting metrics for an experience.
                        description:
                          description: Internal note explaining what this event tracks.
                          anyOf:
                          - type: string
                          - type: 'null'
                        applyToUrls:
                          description: Optional URL rules restricting which pages this event fires on. Omit to track on all pages.
                          anyOf:
                          - type: array
                            items:
                              type: object
                              properties:
                                matchBy:
                                  type: string
                                  enum:
                                  - equals
                                  - contains
                                  - startsWith
                                  - endsWith
                                  - doesNotEqual
                                  - doesNotContain
                                  - doesNotStartWith
                                  - doesNotEndWith
                                  - isNull
                                  - isNotNull
                                  - regex
                                value:
                                  type: string
                                error:
                                  anyOf:
                                  - type: string
                                  - type: 'null'
                              required:
                              - matchBy
                              - value
                          - type: 'null'
                        type:
                          type: string
                          const: javascriptEvent
                          description: Determines which visitor behavior is tracked and which `settings` shape is required. Use pageView for any page visit, productPageView/collectionPageView for specific product or collection pages, clickEvent/elementViewed for CSS-selector-targeted DOM interactions, scrollDepth for scroll-percentage milestones, and javascriptEvent for a custom JS snippet that fires the event.
                        settings:
                          type: object
                          properties:
                            code:
                              type: string
                              description: 'JavaScript snippet injected into a <script> tag on the page. To register an occurrence, it must call `window.igEvents.push({ event: "<identifier>" })` where `<identifier>` exactly matches this event''s own identifier. The identifier is server-generated and only returned after creation, so write a placeholder here and update the event''s code afterward with the returned identifier.'
                          required:
                          - code
                      required:
                      - name
                      - type
                      - settings
                    type: object
                  - maxItems: 50
                    type: array
                    items:
                      oneOf:
                      - 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: Display name shown in the Events Manager and when selecting metrics for an experience.
                          description:
                            description: Internal note explaining what this event tracks.
                            anyOf:
                            - type: string
                            - type: 'null'
                          applyToUrls:
                            minItems: 1
                            type: array
                            items:
                              type: object
                              properties:
                                matchBy:
                                  type: string
                                  enum:
                                  - equals
                                  - contains
                                  - startsWith
                                  - endsWith
                                  - doesNotEqual
                                  - doesNotContain
                                  - doesNotStartWith
                                  - doesNotEndWith
                                  - isNull
                                  - isNotNull
                                  - regex
                                value:
                                  type: string
                                error:
                                  anyOf:
                                  - type: string
                                  - type: 'null'
                              required:
                              - matchBy
                              - value
                            description: Optional URL rules restricting which pages this event fires on. Omit to track on all pages.
                          type:
                            type: string
                            const: pageView
                            description: Determines which visitor behavior is tracked and which `settings` shape is required. Use pageView for any page visit, productPageView/collectionPageView for specific product or collection pages, clickEvent/elementViewed for CSS-selector-targeted DOM interactions, scrollDepth for scroll-percentage milestones, and javascriptEvent for a custom JS snippet that fires the event.
                          settings:
                            type: object
                            properties: {}
                        required:
                        - name
                        - applyToUrls
                        - type
                        - settings
                      - 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: Display name shown in the Events Manager and when selecting metrics for an experience.
                          description:
                            description: Internal note explaining what this event tracks.
                            anyOf:
                            - type: string
                            - type: 'null'
                          type:
                            type: string
                            const: productPageView
                            description: Determines which visitor behavior is tracked and which `settings` shape is required. Use pageView for any page visit, productPageView/collectionPageView for specific product or collection pages, clickEvent/elementViewed for CSS-selector-targeted DOM interactions, scrollDepth for scroll-percentage milestones, and javascriptEvent for a custom JS snippet that fires the event.
                          settings:
                            minItems: 1
                            type: array
                            items:
                              type: object
                              properties:
                                productId:
                                  type: string
                                  description: Shopify product ID to track page views for.
                                handle:
                                  type: string
                                  description: Shopify product handle to track page views for.
                              required:
                              - productId
                              - handle
                        required:
                        - name
                        - type
                        - settings
                      - 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: Display name shown in the Events Manager and when selecting metrics for an experience.
                          description:
                            description: Internal note explaining what this event tracks.
                            anyOf:
                            - type: string
                            - type: 'null'
                          type:
                            type: string
                            const: collectionPageView
                            description: Determines which visitor behavior is tracked and which `settings` shape is required. Use pageView for any page visit, productPageView/collectionPageView for specific product or collection pages, clickEvent/elementViewed for CSS-selector-targeted DOM interactions, scrollDepth for scroll-percentage milestones, and javascriptEvent for a custom JS snippet that fires the event.
                          settings:
                            minItems: 1
                            type: array
                            items:
                              type: object
                              properties:
                                handle:
                                  type: string
                                  description: Shopify collection handle to track page views for.
                              required:
                              - handle
                        required:
                        - name
                        - type
                        - settings
                      - 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: Display name shown in the Events Manager and when selecting metrics for an experience.
                          description:
                            description: Internal note explaining what this event tracks.
                            anyOf:
                            - type: string
                            - type: 'null'
                          applyToUrls:
                            description: Optional URL rules restricting which pages this event fires on. Omit to track on all pages.
                            anyOf:
                            - type: array
                              items:
                                type: object
                                properties:
                                  matchBy:
                                    type: string
                                    enum:
                                    - equals
                                    - contains
                                    - startsWith
                                    - endsWith
                                    - doesNotEqual
                                    - doesNotContain
                                    - doesNotStartWith
                                    - doesNotEndWith
                                    - isNull
                                    - isNotNull
                                    - regex
                                  value:
                                    type: string
                                  error:
                                    anyOf:
                                    - type: string
                                    - type: 'null'
                                required:
                      

# --- truncated at 32 KB (112 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/intelligems/refs/heads/main/openapi/intelligems-custom-events-api-openapi.yml