Intelligems Create Custom Event API

The following custom event types are supported by the Intelligems Custom Events API: - `clickEvent` — Fires when a visitor clicks an element matching one or more CSS selectors - `scrollDepth` — Fires when a visitor scrolls past a configured percentage of the page (separate thresholds for mobile and desktop) - `pageView` — Fires when a visitor views a page matching `applyToUrls` - `productPageView` — Fires when a visitor views one of a specific set of product pages - `collectionPageView` — Fires when a visitor views one of a specific set of collection pages - `elementViewed` — Fires when an element matching one or more CSS selectors enters the viewport - `javascriptEvent` — Fires from a custom JavaScript snippet Each type has its own `settings` shape — see the request schema for the full set of fields per type.

Operations 1

PUT /v25-10-beta/custom-events Replace v25 10 beta custom events #

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-create-custom-event-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-create-custom-event-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Intelligems External Create Custom Event 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: Create Custom Event
  description: 'The following custom event types are supported by the Intelligems Custom Events API:


    - `clickEvent` — Fires when a visitor clicks an element matching one or more CSS selectors

    - `scrollDepth` — Fires when a visitor scrolls past a configured percentage of the page (separate thresholds for mobile and desktop)

    - `pageView` — Fires when a visitor views a page matching `applyToUrls`

    - `productPageView` — Fires when a visitor views one of a specific set of product pages

    - `collectionPageView`…'
paths:
  /v25-10-beta/custom-events:
    put:
      tags:
      - Create Custom Event
      description: 'Creates a new custom event, or updates an existing one by passing back its `id`.

        `customEvent` accepts either a single event object, or an array of event

        objects (up to 50) to create/update several in one request.


        Custom events let you define client-side behaviors (clicks, scroll depth,

        page views, etc.) that can be tracked as goals or triggers on experiences.


        This is a full PUT replacement — when updating an existing event, the entire

        event configuration is replaced with the provided data. Any optional fields

        omitted from the request are reset to their defaults, not preserved from the

        previous version.


        ### Required Fields (inside each event object)


        - `type` - The kind of custom event (see supported types above)

        - `name` - A name for the custom event

        - `settings` - Type-specific configuration (e.g. CSS selectors for `clickEvent`, scroll percentages for `scrollDepth`)

        - `applyToUrls` - Required only for `pageView` (at least one rule); has no effect and is ignored for `productPageView`/`collectionPageView`


        ### Optional Fields (inside each event object)


        - `id` (UUID) - Pass back the `id` from a previous create/update response to update that event in place instead of creating a new one. Omit to create a new event. Supplying an `id` that doesn''t belong to your organization creates a new event rather than adopting or overwriting it.

        - `description` (string) - Description of the custom event


        ### Important Notes


        - `customEvent` must be either a single event object or an array of up to 50 event objects — not a mix of anything else.

        - `identifier` is server-generated and read-only; it is not guaranteed to stay the same across updates to the same event. Use `id` as the stable reference for an event, not `identifier`.

        - Returns a `403` if your organization''s plan does not include custom events tracking. This applies to both creating a new event and updating an existing one.'
      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
                       

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