Intelligems Analytics API

Experience-level and sitewide analytics.

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

OpenAPI Specification

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