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-analytics-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 Analytics 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: Analytics
description: Experience-level and sitewide analytics.
paths:
/v25-10-beta/analytics/resource/{experienceId}:
get:
tags:
- Analytics
description: Legacy query-parameter analytics endpoint, kept only as a beta compatibility path and removed
when the beta ends. Use the POST variant instead.
deprecated: true
parameters:
- in: query
name: graphs
schema:
description: 'Comma-separated list of graph IDs to include in response. Applies to "view=overview" and
"view=audience" requests. On this deprecated GET endpoint an unrecognized ID is silently ignored and
"graphs" comes back empty; the POST variant rejects it with a 400 instead. Available options:
- abandoned_cart_rate
- abandoned_checkout_rate
- add_to_cart_rate
- avg_discount_per_all_orders
- avg_discount_per_discounted_order
- avg_product_revenue_per_unit
- avg_units_per_order
- checkout_address_submitted_rate
- checkout_begin_rate
- checkout_enter_contact_info_rate
- conversion_rate
- net_product_revenue_per_order
- net_revenue_from_post_purchase_offer
- net_revenue_from_upsell
- net_revenue_per_order
- net_revenue_per_visitor
- net_shipping_revenue_per_order
- pct_orders_free_shipping
- pct_orders_with_post_purchase_offer
- pct_orders_with_upsell
- pct_subscription_orders
- profit_per_order
- profit_per_visitor
- subscription_orders_per_visitor
- subscription_product_revenue_per_order
- subscription_profit_per_visitor
- subscription_revenue_per_order
- subscription_revenue_per_visitor
- view_collection_page_rate
- view_product_page_rate'
type: string
description: 'Comma-separated list of graph IDs to include in response. Applies to "view=overview" and "view=audience"
requests. On this deprecated GET endpoint an unrecognized ID is silently ignored and "graphs" comes back
empty; the POST variant rejects it with a 400 instead. Available options:
- abandoned_cart_rate
- abandoned_checkout_rate
- add_to_cart_rate
- avg_discount_per_all_orders
- avg_discount_per_discounted_order
- avg_product_revenue_per_unit
- avg_units_per_order
- checkout_address_submitted_rate
- checkout_begin_rate
- checkout_enter_contact_info_rate
- conversion_rate
- net_product_revenue_per_order
- net_revenue_from_post_purchase_offer
- net_revenue_from_upsell
- net_revenue_per_order
- net_revenue_per_visitor
- net_shipping_revenue_per_order
- pct_orders_free_shipping
- pct_orders_with_post_purchase_offer
- pct_orders_with_upsell
- pct_subscription_orders
- profit_per_order
- profit_per_visitor
- subscription_orders_per_visitor
- subscription_product_revenue_per_order
- subscription_profit_per_visitor
- subscription_revenue_per_order
- subscription_revenue_per_visitor
- view_collection_page_rate
- view_product_page_rate'
- in: query
name: graphOutput
schema:
default: png
description: Output format for graph images. 'png' (default) uploads to S3 and returns a URL. 'base64'
returns the raw base64-encoded PNG data inline.
type: string
enum:
- png
- base64
description: Output format for graph images. 'png' (default) uploads to S3 and returns a URL. 'base64' returns
the raw base64-encoded PNG data inline.
- in: query
name: view
schema:
default: overview
description: Resource view to analyze. Supported values are 'overview' for variation-level metrics, 'audience'
for a breakdown by the selected audience dimension, and 'post_test' for post-test metrics (customers
who converted during the test, tracked by their purchase behavior after that conversion, split by variation).
type: string
enum:
- overview
- audience
- post_test
description: Resource view to analyze. Supported values are 'overview' for variation-level metrics, 'audience'
for a breakdown by the selected audience dimension, and 'post_test' for post-test metrics (customers who
converted during the test, tracked by their purchase behavior after that conversion, split by variation).
- in: query
name: audience
schema:
description: Audience breakdown dimension. Required when `view` is `audience`. Optional when `view` is
`post_test` (returns the post-test breakdown by the selected dimension). Not allowed when `view` is
`overview`. Use one of the supported audience fields such as `device_type`, `visitor_type`, or `source_channel`.
type: string
enum:
- device_type
- visitor_type
- source_channel
- source_site
- country_code
- landing_page_full_path
description: Audience breakdown dimension. Required when `view` is `audience`. Optional when `view` is `post_test`
(returns the post-test breakdown by the selected dimension). Not allowed when `view` is `overview`. Use
one of the supported audience fields such as `device_type`, `visitor_type`, or `source_channel`.
- in: query
name: analyticsViewType
schema:
description: Optional analytics view preset used by the backend when building the analysis request.
type: string
enum:
- test_orders_only
- sitewide_orders
- none
description: Optional analytics view preset used by the backend when building the analysis request.
- in: query
name: end
schema:
description: Optional analysis end timestamp as a 10-digit Unix epoch string in seconds (not milliseconds).
type: string
description: Optional analysis end timestamp as a 10-digit Unix epoch string in seconds (not milliseconds).
- in: query
name: start
schema:
description: Optional analysis start timestamp as a 10-digit Unix epoch string in seconds (not milliseconds).
type: string
description: Optional analysis start timestamp as a 10-digit Unix epoch string in seconds (not milliseconds).
responses:
'200':
description: OK
headers:
access-control-allow-origin:
schema:
type: string
description: CORS allow-origin header.
access-control-allow-credentials:
schema:
type: string
description: CORS allow-credentials header.
content-type:
schema:
type: string
description: Response content type.
Timing-Allow-Origin:
schema:
type: string
description: Allowed origin for Timing headers.
content:
application/json:
schema:
type: object
properties:
datasetId:
type: string
enum:
- order_line_items
- orders
- aiProfit
- variation_overview
- variation_audience
- variation_timeseries_discrete
- variation_timeseries_cumulative
- experience_countries
- variation_shipping_method
- variation_histogram
- variation_products
- variation_product_groups
- variation_order_unit_mix
- custom_events_plugin
- custom_events_server
- order_reconciliation
- order_reconciliation_export
- experience_session_order
- timeseries
- country_codes
- snapshots
- experience_shipping_methods
- timeseries_audience
- snapshots_audience
- holiday_benchmarking_single_day
- holiday_benchmarking_multiple_days
- order_distribution_histogram
- order_distribution_unit_mix
- conversion_snapshots
- conversion_funnel
- conversion_timeseries
- variation_post_metrics
- variation_post_metrics_audience
latestRunTs:
type: number
cogsConfigured:
description: Whether cost of goods sold (COGS) is configured for the store (any revenue has
COGS data). When false, all profit metric values are null because they cannot be computed;
use revenue metrics instead. Only present when the request includes a profit metric.
type: boolean
cogsCoveragePct:
description: Fraction of revenue (0-1) backed by line items that have COGS data. 0 means profit
metrics are unavailable and returned as null. A value between 0 and 1 means profit is based
on partial COGS coverage; 1 means full coverage. Only present when the request includes a
profit metric.
type: number
metrics:
type: array
items: {}
description: "Array of metric objects. Each metric object may contain the following fields (all\
\ optional):\n\n**Dimension Fields:**\n- variation_id (string, UUID): The variation identifier\n\
- dt (string): Timestamp for time series data\n- audience (string): Audience segment identifier\n\
\n**Metric Fields (alphabetical):**\n- abandoned_cart_rate: Rate of abandoned carts\n- abandoned_checkout_rate:\
\ Rate of abandoned checkouts\n- add_to_cart_rate: Add to cart rate\n- avg_discount_per_all_orders:\
\ Average discount amount across all orders\n- avg_discount_per_discounted_order: Average\
\ discount amount for orders with discounts\n- avg_product_revenue_per_unit: Average revenue\
\ per product unit\n- avg_units_per_order: Average number of units per order\n- checkout_address_submitted_rate:\
\ Rate of checkouts with address submitted\n- checkout_begin_rate: Checkout initiation rate\n\
- checkout_enter_contact_info_rate: Rate of checkouts with contact info entered\n- conversion_rate:\
\ Conversion rate metric with statistical details\n- gross_profit_per_order: Gross profit\
\ per order. Requires COGS to be configured. Null when COGS are not configured (cogsConfigured\
\ is false). Based on partial COGS coverage when cogsCoveragePct is between 0 and 1.\n- gross_profit_per_visitor:\
\ Gross profit per visitor. Requires COGS to be configured. Null when COGS are not configured\
\ (cogsConfigured is false). Based on partial COGS coverage when cogsCoveragePct is between\
\ 0 and 1.\n- n_orders: Number of orders\n- n_visitors: Number of visitors\n- net_product_revenue_per_order:\
\ Average product revenue per order\n- net_revenue: Total net revenue\n- net_revenue_per_order:\
\ Average revenue per order\n- net_revenue_per_visitor: Average revenue per visitor (RPV).\n\
- net_shipping_revenue_per_order: Average shipping revenue per order\n- pct_orders_free_shipping:\
\ Percentage of orders with free shipping\n- pct_subscription_orders: Percentage of orders\
\ that are subscriptions\n- subscription_gross_profit_per_visitor: Gross profit from subscriptions\
\ per visitor. Requires COGS to be configured. Null when COGS are not configured (cogsConfigured\
\ is false).\n- subscription_orders_per_visitor: Subscription orders per visitor\n- subscription_revenue_per_order:\
\ Revenue from subscriptions per order\n- subscription_revenue_per_visitor: Revenue from subscriptions\
\ per visitor\n- view_collection_page_rate: Collection page view rate\n- view_product_page_rate:\
\ Product page view rate\n\n**Funnel visitor counts (returned by view=overview):**\n- n_visitors_viewed_product_page:\
\ Visitors who viewed a product page\n- n_visitors_viewed_collection_page: Visitors who viewed\
\ a collection page\n- n_visitors_added_to_cart: Visitors who added to cart\n- n_visitors_checkout_started:\
\ Visitors who started checkout\n- n_visitors_checkout_contact_info_submitted: Visitors who\
\ submitted contact info\n- n_visitors_checkout_address_info_submitted: Visitors who submitted\
\ address info\n- n_visitors_abandoned_cart: Visitors who abandoned a cart\n- n_visitors_abandoned_checkout:\
\ Visitors who abandoned a checkout\n- n_visitors_ordered: Visitors who placed an order\n\n\
**Absolute totals (returned by view=overview):**\n- net_product_revenue: Total net product\
\ revenue\n- gross_profit: Total gross profit. Requires COGS to be configured; null when cogsConfigured\
\ is false.\n- total_units: Total units sold\n- total_discount: Total discount amount\n- n_orders_discounted:\
\ Number of orders carrying a discount\n- pct_revenue_with_cogs: Fraction of revenue backed\
\ by line items with COGS data\n- n_subscription_orders: Number of subscription orders\n-\
\ subscription_product_revenue: Product revenue from subscription orders\n- subscription_units:\
\ Units sold in subscription orders\n\nNOTE: this list documents the commonly returned fields,\
\ but the response is driven by the store's configured metric catalogue and by the requested\
\ view, so additional metric keys may be present. Clients should tolerate unknown keys rather\
\ than validating against a closed set.\n\nEach statistical metric in the response contains:\n\
- value (number): The metric value\n- ci_low (number): Lower bound of the 95% confidence interval\n\
- ci_high (number): Upper bound of the 95% confidence interval\n- plus_minus (number): Half-width\
\ of the 95% confidence interval, i.e., (ci_high - ci_low) / 2\n- p2bb (number, 0-1): Probability\
\ to be Best\n- p2bc (number, 0-1): Probability to Beat Control\n- uplift (object): Relative\
\ lift over the control variation. Contains:\n - value (number): The relative lift (e.g.,\
\ 0.12 = +12%)\n - ci_low (number): Lower bound of the 95% confidence interval for the uplift\n\
\ - ci_high (number): Upper bound of the 95% confidence interval for the uplift\n - plus_minus\
\ (number): Half-width of the uplift's 95% confidence interval\n\nNote: p2bc and uplift are\
\ relative to the control variation and appear only on non-control variations; they are absent\
\ on the control."
audienceOrder: {}
histogram: {}
kde: {}
cdf: {}
variations:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
description: Server-generated. Read-only.
experienceId:
type: string
format: uuid
pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
description: References the parent experience.
name:
type: string
description: Display name (e.g., 'Control', 'Variant A'). Unique within the experience.
percentage:
type: number
description: Traffic allocation weight. All percentages across sibling variations must
sum to 100.
isControl:
default: false
description: The baseline variation all others are measured against. Exactly one per experience.
type: boolean
order:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
description: Display order in the analytics dashboard. 0-indexed.
priceChange:
description: Price adjustment amount for pricing-type experiences. Positive increases
price, negative discounts. Use priceChange for simple price A/B tests; use offer for
structured discount campaigns (tiered, BOGO, free shipping).
anyOf:
- type: string
- type: 'null'
priceChangeUnit:
description: 'How priceChange is applied: as a percentage of the original price or a fixed
monetary amount.'
anyOf:
- type: string
enum:
- percent
- dollar
- type: 'null'
priceRoundingType:
description: Rounding strategy applied after priceChange (e.g., round up, round down,
charm pricing).
anyOf:
- type: string
enum:
- none
- nearest
- up
- down
- type: 'null'
priceRoundingAmount:
description: Target value for rounding (e.g., 0.99 for charm pricing like $X.99).
anyOf:
- type: string
- type: 'null'
onsiteEdits:
default: []
description: DOM content modifications (text, HTML, image swaps, element removal). For
CSS styling changes, use onsiteInjections instead.
type: array
items:
type: object
properties:
id:
type: string
format: uuid
pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
description: Server-generated. Read-only.
onsiteEditType:
description: Content modification strategy (html, text, image, or hide).
anyOf:
- type: string
enum:
- html
- text
- image
- hide
- type: 'null'
variationId:
type: string
format: uuid
pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
description: References the parent variation.
find:
anyOf:
- type: string
- type: 'null'
description: Pattern to locate on the page. Interpreted as regex when isRegex is
true.
title:
description: Dashboard label for identifying this edit.
anyOf:
- type: string
- type: 'null'
isRegex:
default: false
description: When true, 'find' is treated as a regular expression.
type: boolean
replace:
default: ''
description: 'Replacement content. Interpretation depends on onsiteEditType: HTML
markup, plain text, or image URL.'
type: string
querySelectors:
default:
- ''
description: CSS selectors scoping which DOM elements this edit targets (e.g., '.product-title').
type: array
items:
type: string
skip:
default: false
description: When true, this edit is temporarily disabled without being deleted.
type: boolean
remove:
default: false
description: When true, the matched element is removed from the DOM instead of having
its content replaced.
type: boolean
groupId:
description: Groups related edits together so they can be managed as a unit.
type: string
isHtml:
default: false
type: boolean
isImage:
default: false
type: boolean
insertType:
anyOf:
- type: string
enum:
- beforebegin
- afterbegin
- beforeend
- afterend
- type: 'null'
description: DOM insertion position relative to the target (beforebegin, afterbegin,
beforeend, afterend). Null means content replacement.
createdAtUrl:
anyOf:
- type: string
- type: 'null'
description: Server-generated. Read-only. Storefront URL where this edit was originally
created via the visual editor.
createdAtTs:
description: Server-generated. Read-only. Unix timestamp in seconds.
anyOf:
- type: number
- type: 'null'
imageSearchUrl:
anyOf:
- type: string
- type: 'null'
description: URL pathname for locating images to replace. When set, images are found
by URL match; when null, querySelectors is used instead.
source:
anyOf:
- type: string
enum:
- ai
- type: 'null'
required:
- id
- variationId
- find
- isRegex
- replace
- querySelectors
- skip
- remove
- isHtml
- isImage
- insertType
additionalProperties: false
onsiteInjections:
description: CSS styling and custom JS injection. At most one per variation. For DOM content
changes (text, images, HTML), use onsiteEdits instead.
anyOf:
- type: object
properties:
id:
type: string
format: uuid
pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
description: Server-generated. Read-only.
variationId:
type: string
format: uuid
pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
description: References the parent variation.
customCss:
description: CSS injected globally on the page when this variation is active.
anyOf:
- type: string
- type: 'null'
customJs:
description: JavaScript executed on the page. Execution timing controlled by jsInjectionMode.
anyOf:
- type: string
- type: 'null'
jsInjectionMode:
type: object
properties:
type:
default: immediately
description: Execution timing for injected JS. When 'timeout', the timeout field
specifies the delay.
type: string
enum:
- immediately
- onWindowLoad
- timeout
timeout:
description: Delay in milliseconds before JS execution. Only relevant when type
is 'timeout'.
anyOf:
- type: number
- type: string
required:
- type
additionalProperties: false
description: 'Controls when customJs runs: immediately on load, after window load,
or after a configurable delay.'
source:
anyOf:
- type: string
enum:
- ai
- type: 'null'
required:
- id
- variationId
- jsInjectionMode
additionalProperties: false
- type: 'null'
offer:
description: Structured discount configuration (tiered volume discounts, cart-level discounts,
gift-with-purchase, free shipping). Use offer for campaign/discount experiences; use
priceChange for simple price A/B tests.
anyOf:
- type: object
properties:
id:
type: string
format: uuid
pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
description: Server-generated. Read-only.
variationId:
type: string
format: uuid
pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
description: References the parent variation this offer belongs to.
# --- truncated at 32 KB (660 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/intelligems/refs/heads/main/openapi/intelligems-analytics-api-openapi.yml