Skip to content

Quiz page-to-page journeys

GET
/v1/quizzes/{quiz_id}/analytics/paths
curl --request GET \
--url 'https://api.octaneai.com/v1/quizzes/example/analytics/paths?cohort=all&tz=UTC' \
--header 'Authorization: Bearer <token>'
quiz_id
required
Quiz Id
string
cohort
Cohort
string
default: all
Allowed values: all finished left
from
Any of:
string format: date

First day, inclusive, in tz; 29 days before to when absent

to
Any of:
string format: date

Last day, inclusive, in tz; today when absent

tz
Tz
string
default: UTC <= 64 characters
channel
Any of:
string
device
Any of:
string
new_returning
Any of:
string
country
Any of:
string
if-none-match
Any of:
string
<= 1024 characters

Analytics for the range. ETag identifies the cached response.

Media typeapplication/json
AnalyticsPaths
object
cohort
required
Cohort
string
Allowed values: all finished left
data_start
required
Any of:
string format: date
edges
required
Edges
Array<object>
PathEdge
object
cause
required
Cause
string
Allowed values: sequential jump back restart
from_page_key
required
From Page Key
string
jump_rule_key
required
Any of:
string
moves
required
Moves
integer
sessions_moved
required
Sessions Moved
integer
to_page_key
required
To Page Key
string
filters
required
AnalyticsFilters
object
channel
required
Any of:
string
country
required
Any of:
string
device
required
Any of:
string
new_returning
required
Any of:
string
freshness
required
Freshness
object
as_of
required
Any of:
string format: date-time
closed_days_through
required
Closed Days Through
string format: date
next_refresh_at
required
Any of:
string format: date-time
pending
required
Pending
boolean
stale
required
Stale
boolean
today_live
required
Today Live
boolean
nodes
required
Nodes
Array<object>
PathNode
object
entries
required
Entries
integer
entries_by_jump
required
Entries By Jump
integer
exits_closed
required
Exits Closed
integer
exits_restarted
required
Exits Restarted
integer
exits_timed_out
required
Exits Timed Out
integer
finished_here
required
Finished Here
integer
median_time_on_page_ms
required
Any of:
number
page_key
required
Page Key
string
removed
required
Removed
boolean
still_here
required
Still Here
integer
title
required
Title
string
other_paths
required
OtherPaths
object
moves
required
Moves
integer
routes
required
Routes
integer
quiz_id
required
Quiz Id
string
/^quiz_[0-9a-f]{32}$/
range
required
AnalyticsRange
object
days
required
Days
integer
end
required
End
string format: date
start
required
Start
string format: date
timezone
required
Timezone
string
rules
required
Rules
Array<object>
PathRule
object
fired
required
Fired
integer
jump_rule_key
required
Jump Rule Key
string
source_entries
required
Source Entries
integer
source_page_key
required
Any of:
string
sessions
required
Sessions
integer
visibility_skips
required
Visibility Skips
Array<object>
PathVisibilitySkip
object
page_key
required
Page Key
string
removed
required
Removed
boolean
times_hidden
required
Times Hidden
integer
title
required
Title
string
Example
{
"cohort": "all",
"data_start": "2026-09-01",
"edges": [
{
"cause": "jump",
"from_page_key": "welcome",
"jump_rule_key": "jr_1",
"moves": 3,
"sessions_moved": 3,
"to_page_key": "gone"
},
{
"cause": "restart",
"from_page_key": "welcome",
"moves": 2,
"sessions_moved": 2,
"to_page_key": "welcome"
}
],
"filters": {},
"freshness": {
"as_of": "2026-09-07T12:00:00Z",
"closed_days_through": "2026-09-06",
"next_refresh_at": "2026-09-07T13:00:00Z",
"pending": false,
"stale": false,
"today_live": true
},
"nodes": [
{
"entries": 10,
"entries_by_jump": 1,
"exits_closed": 1,
"exits_restarted": 2,
"exits_timed_out": 1,
"finished_here": 0,
"median_time_on_page_ms": 5000,
"page_key": "welcome",
"removed": false,
"still_here": 1,
"title": "Welcome"
},
{
"entries": 3,
"entries_by_jump": 3,
"exits_closed": 0,
"exits_restarted": 0,
"exits_timed_out": 0,
"finished_here": 3,
"page_key": "gone",
"removed": true,
"still_here": 0,
"title": "Page removed"
}
],
"other_paths": {
"moves": 1,
"routes": 1
},
"quiz_id": "quiz_7c9e6679742540de944be07fc1f90ae7",
"range": {
"days": 7,
"end": "2026-09-07",
"start": "2026-09-01",
"timezone": "UTC"
},
"rules": [
{
"fired": 3,
"jump_rule_key": "jr_1",
"source_entries": 10,
"source_page_key": "welcome"
}
],
"sessions": 8,
"visibility_skips": [
{
"page_key": "skin",
"removed": false,
"times_hidden": 3,
"title": "Skin"
}
]
}
ETag
string
Example
"5a23d8"

If-None-Match matches the cached response; no body is sent.

ETag
string

The key is missing, malformed, revoked or expired.

Media typeapplication/problem+json
Problem

The body of every non-2xx response.

object
detail
required
Detail

What went wrong, for people

string
errors
Any of:
Array<object>
FieldError
object
field
required
Field

The input that failed, as a dotted path (body.label, query.from)

string
message
required
Message

Why it failed

string
export
Any of:
object
key
additional properties
any
request_id
required
Request Id

The same value as the Request-Id header; quote it to support

string
required
Any of:
Array<string>
retry_after
Any of:
integer
status
required
Status

The HTTP status of the response

integer
title
required
Title

The machine-readable error code

string
type
required
Type

A stable URI naming the error, on this API’s public host

string
Example
{
"detail": "The API key is missing, malformed, revoked or expired",
"request_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"status": 401,
"title": "invalid_api_key",
"type": "https://api.octaneai.com/errors/invalid_api_key"
}
WWW-Authenticate
string
Example
Bearer

The store’s plan has no API access, or the key lacks the scope.

Media typeapplication/problem+json
Problem

The body of every non-2xx response.

object
detail
required
Detail

What went wrong, for people

string
errors
Any of:
Array<object>
FieldError
object
field
required
Field

The input that failed, as a dotted path (body.label, query.from)

string
message
required
Message

Why it failed

string
export
Any of:
object
key
additional properties
any
request_id
required
Request Id

The same value as the Request-Id header; quote it to support

string
required
Any of:
Array<string>
retry_after
Any of:
integer
status
required
Status

The HTTP status of the response

integer
title
required
Title

The machine-readable error code

string
type
required
Type

A stable URI naming the error, on this API’s public host

string
Examples
{
"detail": "The API key does not carry the scope this route needs",
"request_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"required": [
"quizzes:read"
],
"status": 403,
"title": "insufficient_scope",
"type": "https://api.octaneai.com/errors/insufficient_scope"
}

Not found

Media typeapplication/problem+json
Problem

The body of every non-2xx response.

object
detail
required
Detail

What went wrong, for people

string
errors
Any of:
Array<object>
FieldError
object
field
required
Field

The input that failed, as a dotted path (body.label, query.from)

string
message
required
Message

Why it failed

string
export
Any of:
object
key
additional properties
any
request_id
required
Request Id

The same value as the Request-Id header; quote it to support

string
required
Any of:
Array<string>
retry_after
Any of:
integer
status
required
Status

The HTTP status of the response

integer
title
required
Title

The machine-readable error code

string
type
required
Type

A stable URI naming the error, on this API’s public host

string
Example
{
"detail": "Not found",
"request_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"status": 404,
"title": "not_found",
"type": "https://api.octaneai.com/errors/not_found"
}

A request parameter is invalid.

Media typeapplication/problem+json
Problem

The body of every non-2xx response.

object
detail
required
Detail

What went wrong, for people

string
errors
Any of:
Array<object>
FieldError
object
field
required
Field

The input that failed, as a dotted path (body.label, query.from)

string
message
required
Message

Why it failed

string
export
Any of:
object
key
additional properties
any
request_id
required
Request Id

The same value as the Request-Id header; quote it to support

string
required
Any of:
Array<string>
retry_after
Any of:
integer
status
required
Status

The HTTP status of the response

integer
title
required
Title

The machine-readable error code

string
type
required
Type

A stable URI naming the error, on this API’s public host

string
Example
{
"detail": "A request parameter is invalid.",
"request_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"status": 422,
"title": "validation_error",
"type": "https://api.octaneai.com/errors/validation_error"
}

The key’s or the store’s bucket is full; Retry-After says when to try again.

Media typeapplication/problem+json
Problem

The body of every non-2xx response.

object
detail
required
Detail

What went wrong, for people

string
errors
Any of:
Array<object>
FieldError
object
field
required
Field

The input that failed, as a dotted path (body.label, query.from)

string
message
required
Message

Why it failed

string
export
Any of:
object
key
additional properties
any
request_id
required
Request Id

The same value as the Request-Id header; quote it to support

string
required
Any of:
Array<string>
retry_after
Any of:
integer
status
required
Status

The HTTP status of the response

integer
title
required
Title

The machine-readable error code

string
type
required
Type

A stable URI naming the error, on this API’s public host

string
Example
{
"detail": "Too many requests",
"request_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"retry_after": 1,
"status": 429,
"title": "rate_limited",
"type": "https://api.octaneai.com/errors/rate_limited"
}

Request limits could not be checked for the body, or the store’s details could not be read.

Media typeapplication/problem+json
Problem

The body of every non-2xx response.

object
detail
required
Detail

What went wrong, for people

string
errors
Any of:
Array<object>
FieldError
object
field
required
Field

The input that failed, as a dotted path (body.label, query.from)

string
message
required
Message

Why it failed

string
export
Any of:
object
key
additional properties
any
request_id
required
Request Id

The same value as the Request-Id header; quote it to support

string
required
Any of:
Array<string>
retry_after
Any of:
integer
status
required
Status

The HTTP status of the response

integer
title
required
Title

The machine-readable error code

string
type
required
Type

A stable URI naming the error, on this API’s public host

string
Examples
{
"detail": "A backing service is temporarily unavailable; retry shortly",
"request_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"retry_after": 2,
"status": 503,
"title": "dependency_unavailable",
"type": "https://api.octaneai.com/errors/dependency_unavailable"
}

The request timed out.

Media typeapplication/problem+json
Problem

The body of every non-2xx response.

object
detail
required
Detail

What went wrong, for people

string
errors
Any of:
Array<object>
FieldError
object
field
required
Field

The input that failed, as a dotted path (body.label, query.from)

string
message
required
Message

Why it failed

string
export
Any of:
object
key
additional properties
any
request_id
required
Request Id

The same value as the Request-Id header; quote it to support

string
required
Any of:
Array<string>
retry_after
Any of:
integer
status
required
Status

The HTTP status of the response

integer
title
required
Title

The machine-readable error code

string
type
required
Type

A stable URI naming the error, on this API’s public host

string
Example
{
"detail": "The request timed out.",
"request_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"status": 504,
"title": "timeout",
"type": "https://api.octaneai.com/errors/timeout"
}