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.

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 email required.

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

OpenAPI Specification

intelligems-custom-events-api-openapi.yml Raw ↑
# x-apievangelist-provenance:
#   generated: '2026-08-13'
#   method: searched
#   source: openapi/_original/intelligems-external-api-openapi.yml
#   note: >-
#     Operations, parameters, request bodies and 200 schemas are Intelligems' own published
#     OpenAPI, harvested verbatim from the embedded spec blocks on its API-reference pages.
#     API Evangelist added only: operationIds, summaries/descriptions, the canonical tag, and
#     the documented 4xx/5xx error responses from the published Errors page. See
#     overlays/intelligems-external-api-overlay.yaml.
openapi: 3.1.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:
                              - hand

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