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.
# 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