Browse developer documentation
Read-only tool
get_journeys
Read the complete routes visitors took, page by page, with visits, buyers and linked purchase value for each route.
Access: OAuth analytics:read or a privately configured workspace key.
Arguments
| Field | Type | Description |
|---|---|---|
compare | string | Comparison range. Values: previous_period, mom, qoq, yoy, none. Default: |
cursor | string | Opaque next_cursor from the previous result. Keep the same website, dates, report, model, visitor filters and funnel selector. |
filters | array | JSON array of up to twenty visitor filters, for example [{"dim":"country","op":"is","value":"US"}]. Dimensions: source, channel, campaign, entry_page, page, hostname, country, device, browser, os, goal. Operators: is, is_not. Values are exact strings up to 500 characters. All filters must match the visitor across available history; report dates then select activity for that cohort. Unmatched payments are excluded. Crawler counts remain website-wide; spend requires every filter to be source/channel/campaign. Preserve filters when paging. |
from | string | Inclusive website-local start date. Supply to as well. |
include_goals | boolean | Add recorded goals as steps. Default: |
journey_channel | string | Only visits whose first recorded entry came from this channel, for example AI Referral. |
journey_source | string | Only visits from this source, for example ChatGPT. |
limit | integer | Maximum rows on this page. Default: |
lookback | string | How far back before each sale visits can get credit. Older visits get no credit; if none fall inside the window, the latest recorded visit keeps it. Larger-site database reports, visitor filters and cursors only accept all. Values: all, 90d, 30d, 7d. Default: |
model | string | Which visit gets credit for a sale, the same six rules as the dashboard's Credit menu. Values: first_touch, last_touch, last_non_direct, u_shaped, linear, time_decay. Default: |
outcome | string | Keep visits with a new purchase, a goal, an outbound click, or without a purchase. Values: all, purchased, goal, outbound, no-purchase. Default: |
period | string | Saved website timezone calendar selection. from and to override period. Values: realtime, today, yesterday, 7d, 30d, 90d, 12m, wtd, mtd, qtd, ytd, all. Default: |
rank | string | Order paths by visits or by linked purchase value. Values: visits, purchase_value. Default: |
site | string | Website ID or domain. Required when the workspace has more than one website. |
start_page | string | Only visits that started on this path, for example /pricing. |
to | string | Inclusive website-local end date. Supply from as well. |
filters[] fields
| Field | Type | Description |
|---|---|---|
dim | string | Values: source, channel, campaign, entry_page, page, hostname, country, device, browser, os, goal. |
op | string | Values: is, is_not. |
value | string |
Read journeys
Use this JSON-RPC call through an initialized MCP client. Replace example values with your actual website, dates or confirmed setup details.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_journeys",
"arguments": {
"site": "site_example",
"from": "2026-10-01",
"to": "2026-10-07",
"compare": "none"
}
}
}Decoded result
Illustrative JSON parsed from the result’s text block.
{
"site": {
"id": "site_example",
"domain": "shop.example.com",
"currency": "USD"
},
"period": {
"from": "2026-10-01T00:00:00.000Z",
"to": "2026-10-08T00:00:00.000Z",
"label": "Custom",
"timezone": "UTC"
},
"totals": {
"visits": 40,
"visitors": 31,
"buyers": 2,
"new_purchases": 2,
"linked_value": 39800
},
"unlinked_purchases": 0,
"paths": [
{
"steps": [
{
"kind": "page",
"label": "/pricing"
},
{
"kind": "page",
"label": "/checkout"
},
{
"kind": "purchase",
"label": "Purchase"
}
],
"step_count": 3,
"visits": 4,
"visitors": 4,
"buyers": 2,
"new_purchases": 2,
"linked_value": 39800
}
],
"notes": "A visit ends after 30 minutes without activity."
}Result fields
| Field | Type | Description |
|---|---|---|
site | object | Website ID, domain and currency. |
period | object | Selected dates as UTC timestamps; to is exclusive. |
totals | object | visits, visitors, buyers, new_purchases and linked_value across every matching route. |
unlinked_purchases | integer | New purchases with no recorded visit to link to. |
paths | array | Matching routes, ranked by rank. |
next_cursor | string | null | When provided, pass this value to continue; null means the last page. Some small-site reports omit this field. |
coverage | object | When provided, describes completeness, snapshot time and row coverage. Row limits apply to this page, not to headline totals. |
notes | string | How journeys are counted. |
site fields
| Field | Type | Description |
|---|---|---|
id | string | Website ID. |
domain | string | Website domain. |
currency | string | Three-letter currency. |
period fields
| Field | Type | Description |
|---|---|---|
from | string | Inclusive UTC start. |
to | string | Exclusive UTC end. |
label | string | Human-readable date selection. |
timezone | string | Saved website timezone. |
paths[] fields
| Field | Type | Description |
|---|---|---|
steps | array | The route in order: kind (page, goal, outbound, purchase, end or more) and label. |
step_count | integer | Steps in the full route; steps can be shorter for very long routes. |
visits | integer | Visits that took this route. |
visitors | integer | Distinct visitors. |
buyers | integer | Visitors with a linked new purchase. |
new_purchases | integer | Linked new purchases. |
linked_value | integer | Value of linked new purchases, cents. Excludes refunds and renewals. |
The decoded data follows the journeys response contract, without the REST envelope.
Full MCP result wrapper
{
"content": [
{
"type": "text",
"text": "{\n \"site\": {\n \"id\": \"site_example\",\n \"domain\": \"shop.example.com\",\n \"currency\": \"USD\"\n },\n \"period\": {\n \"from\": \"2026-10-01T00:00:00.000Z\",\n \"to\": \"2026-10-08T00:00:00.000Z\",\n \"label\": \"Custom\",\n \"timezone\": \"UTC\"\n },\n \"totals\": {\n \"visits\": 40,\n \"visitors\": 31,\n \"buyers\": 2,\n \"new_purchases\": 2,\n \"linked_value\": 39800\n },\n \"unlinked_purchases\": 0,\n \"paths\": [\n {\n \"steps\": [\n {\n \"kind\": \"page\",\n \"label\": \"/pricing\"\n },\n {\n \"kind\": \"page\",\n \"label\": \"/checkout\"\n },\n {\n \"kind\": \"purchase\",\n \"label\": \"Purchase\"\n }\n ],\n \"step_count\": 3,\n \"visits\": 4,\n \"visitors\": 4,\n \"buyers\": 2,\n \"new_purchases\": 2,\n \"linked_value\": 39800\n }\n ],\n \"notes\": \"A visit ends after 30 minutes without activity.\"\n}"
}
]
}Behavior and limits
Money is integer cents in site.currency. Percentages use a 0–100 scale.
Matches Journeys & Funnels → Recorded paths. A visit ends after 30 minutes without activity.
Journeys follow visits, not revenue credit, so model and lookback do not change them. linked_value is not source revenue credit.
Larger sites use the database journey calculation and return next_cursor; keep the same website, dates and journey filters when continuing.
Report tools return the report data directly inside MCP text content. They do not add the REST status/data envelope.
With multiple websites and no site argument, this report tool returns needs_site: true and the available websites. Choose a real website and call it again.