Sessions

Online store sessions at row grain — traffic, bounces and the cart → checkout → converted funnel, by device, location, landing page and referrer, as Shopify measures them. Requires the read_reports scope; empty on stores that have not granted it.

54 fields — 34 dimensions, 20 metrics. Date clauses (SINCE, UNTIL, DURING) use day.

The live, authoritative list is always GET /v1/datasets — this page is regenerated from the same catalog, but the endpoint reflects exactly what is deployed.

Query it

FROM sessions
  SHOW sessions
  GROUP BY referrer_site
  SINCE -30d

See Querying with SoloQL for the language.

This dataset is queryable through SoloQL; it has no record-retrieval endpoint.

Fields

FieldTypeRoleDescription
sessionsnumbermetricNumber of online store sessions in the group (document count — one document per session).
online_store_visitorsnumbermetricUnique visitors — one visitor can visit many times. ⚠️ Fetched live from Shopify for the selected window, never stored: a distinct count cannot be re-aggregated, so the range total is SMALLER than the daily figures added together. ⚠️ FRESHER THAN EVERY OTHER COLUMN: it is re-fetched on each render while the rest come from the index as of the last sync, so on a window that includes TODAY it reflects a later moment than the sessions beside it. Available for date ranges, daily trends and groupings, for a single store at a time.
percent_of_sessionspercentmetricShare of all sessions in the result that fall into this group.
pageviewsnumbermetricPages viewed across the sessions in the group.
pageviews_per_sessionnumbermetricAverage pages viewed per session — total pageviews divided by total sessions.
bouncesnumbermetricSessions that bounced — viewed a single page and left. Stored per session as 0/1, so it sums cleanly.
bounce_ratepercentmetricShare of sessions that bounced — bounced sessions divided by total sessions.
sessions_with_cart_additionsnumbermetricSessions that added at least one item to the cart. Stored per session as 0/1.
cart_addition_ratepercentmetricShare of sessions that added something to the cart — the first stage of the conversion funnel.
sessions_that_reached_checkoutnumbermetricSessions that reached the checkout. Stored per session as 0/1.
reached_checkout_ratepercentmetricShare of sessions that reached the checkout — the second stage of the conversion funnel.
sessions_that_completed_checkoutnumbermetricSessions that completed the checkout — the converted sessions. Stored per session as 0/1.
conversion_ratepercentmetricShare of all sessions that completed the checkout — converted sessions divided by total sessions.
checkout_conversion_ratepercentmetricShare of sessions that reached the checkout and then completed it. ⚠️ Can exceed 100% — a session can complete checkout without registering the reached-checkout step.
sessions_that_reached_and_completed_checkoutnumbermetricSessions in which the checkout page was reached and the purchase was then completed. Lower than completed checkouts wherever a session converted without registering the reached step.
sessions_that_reached_checkout_closed_funnelnumbermetricSessions that reached the checkout having taken the earlier steps IN ORDER. ⚠️ Lower than the plain reached-checkout count, which counts a session at that step regardless of what it did before — that difference is why checkout conversion can exceed 100%.
sessions_that_completed_checkout_closed_funnelnumbermetricSessions that completed the checkout having taken every earlier step in order. The numerator of Shopify's completed checkout rate.
completed_checkout_ratepercentmetricShare of cart-carrying sessions that reached the checkout and then completed it. Narrower than checkout conversion rate, which ignores whether anything was added to the cart.
conversion_rate_closed_funnelpercentmetricShare of all sessions that completed the checkout having taken every step in order. Stricter than the plain conversion rate, which counts any session that completed regardless of the path it took.
average_session_durationnumbermetricAverage length of a session, in seconds.
referrer_sitestringdimensionSite that led to the online store visit.
referrer_urlstringdimensionExternal page that led to the online store visit.
referring_platformstringdimensionPlatform that led to the session. ⚠️ Raw label, not a controlled vocabulary — real data carries mangled values such as 3dkla= alongside clean ones like direct and meta.
agentic_referring_channelstringdimensionAI agent or assistant that referred the session, such as ChatGPT. Sparse by nature — most sessions have none.
utm_sourcestringdimensionThe utm_source parameter on the link that led to the session, such as google or facebook. ⚠️ Values are whatever the link carried, including malformed ones.
utm_mediumstringdimensionThe utm_medium parameter on the link, such as email, paid or social.
utm_campaignstringdimensionThe utm_campaign parameter on the link — the campaign name as tagged.
utm_contentstringdimensionThe utm_content parameter — which creative or variant of an ad was used.
utm_termstringdimensionThe utm_term parameter — the paid-search keyword or ad identifier.
device_typestringdimensionType of device used for the session, such as desktop or mobile.
browserstringdimensionBrowser used for the session.
browser_versionstringdimensionVersion of the browser used for the session.
operating_systemstringdimensionOperating system of the device used for the session.
operating_system_versionstringdimensionVersion of the operating system used for the session.
countrystringdimensionCountry the session came from.
country_codestringdimensionTwo-letter code of the country the session came from.
regionstringdimensionRegion or state the session came from.
citystringdimensionCity the session came from.
referrer_sourcestringdimensionReferrer type that led to the visit — organic, email and so on. ⚠️ This and the channel/medium fields are the whole of campaign attribution as CURRENTLY STORED; Shopify also exposes utm_source, utm_medium, utm_campaign, utm_content and utm_term on this dataset, which we do not yet fetch.
referrer_namestringdimensionName of the referring source.
referrer_domainstringdimensionDomain that referred the session.
referrer_pathstringdimensionPath on the referring domain that the session came from.
referrer_termsstringdimensionSearch terms that led to the session, when the referrer supplies them.
referring_channelstringdimensionThe referrer itself — google, facebook, instagram, klaviyo, chatgpt.com. ⚠️ NOT a channel type: 'social' is never a value here, it lives on referrer_source and referring_medium. Assuming otherwise produced a report that silently returned nothing.
referring_mediumstringdimensionCategory of the referring channel — search, social, email, display, email/sms. ⚠️ Absence reads as the literal string None, not null, so filter accordingly.
landing_page_pathstringdimensionPath of the first page viewed in the session.
landing_page_typestringdimensionType of the first page viewed in the session, such as product or collection.
landing_page_urlstringdimensionFull URL of the first page viewed in the session.
api_clientstringdimensionSurface that served the session, such as the online store or a custom storefront.
traffic_typestringdimensionTraffic classification Shopify assigns to the session.
human_or_bot_sessionstringdimensionWhether Shopify classified the session as human or bot traffic. ⚠️ Bot sessions ARE included, here and in Shopify's own reports: their captured Sessions-over-time query filters human_or_bot_session IN ('human', 'bot') — both, explicitly. ⚠️ This is not a rounding error: on 73879978074 over 2026-06-02→08-18 bots were 2,123 of 4,209 sessions (50.4%), and they bounce at 90.5% against humans' 71.7%, so the blended conversion rate of 0.93% is roughly HALF the human rate of 1.77%. Filter to human for what a merchant would call traffic; leave it unfiltered to match Shopify.
bouncedbooleandimensionWhether the session bounced. Filter on this; use the bounces metric to count or to build a rate.
daydatedimensionThe session's day — Shopify's shop-timezone calendar label, stamped as UTC midnight.
storestringdimensionThe shop the record belongs to. Filter with WHERE store IN ('Shop name') or GROUP BY store.