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 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: 3.2.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.
enabled:
default: false
description: Whether the offer is actively applying discounts to customers on the storefront.
type: boolean
isTest:
default: false
description: When true, the offer exists in draft mode and is not applied to customers.
type: boolean
isArchived:
default: false
description: Whether the offer has been archived and is no longer active.
type: boolean
name:
type: string
description: Internal label for identifying the offer in dashboards.
unitType:
default: dollar
description: 'Threshold basis for tiered discounts: per-item quantity or monetary amount spent.'
type: string
enum:
- unit
- dollar
discountType:
default: dollar
description: How the discount value is calculated (e.g., percentage off, fixed amount off).
type: string
enum:
- percentage
- dollar
tiers:
default: []
description: Volume discount tiers ordered by threshold ascending (e.g., buy 2 = 10% off, buy 3 = 15% off).
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)$
minimumUnits:
default: 1
type: number
maximumUnits:
default: 1
# --- truncated at 32 KB (638 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/intelligems/refs/heads/main/openapi/intelligems-analytics-api-openapi.yml