Skip to content

Store analytics summary

GET
/v1/analytics/summary
curl --request GET \
--url 'https://api.octaneai.com/v1/analytics/summary?period=7d&tz=UTC' \
--header 'Authorization: Bearer <token>'
period
Period
string
default: 7d
Allowed values: 7d 30d
tz
Tz
string
default: UTC <= 64 characters
if-none-match
Any of:
string
<= 1024 characters

Analytics for the range. ETag identifies the cached response.

Media typeapplication/json
AnalyticsSummary
object
completions
required
SummaryCount

Visits that finished the quiz: reached its last page and answered whatever that page requires

object
current
required
Current

The count over the current period

integer
delta_pct
required
Any of:
number
previous
required
Previous

The count over the period of the same length just before it

integer
sparkline
required
Sparkline

The current period in seven points, oldest first: one day each over 7 days, four or five days each over 30

Array<integer>
freshness
required
Freshness
object
as_of
required
Any of:
string format: date-time
closed_days_through
required
Closed Days Through

The last day whose numbers are settled: yesterday in the request’s timezone

string format: date
next_refresh_at
required
Any of:
string format: date-time
pending
required
Pending

True until every update behind these numbers has run once, so they may be incomplete

boolean
stale
required
Stale
boolean
today_live
required
Today Live
boolean
opt_ins
required
SummaryCount

Email opt-ins plus phone opt-ins; a shopper who submitted both counts in each

object
current
required
Current

The count over the current period

integer
delta_pct
required
Any of:
number
previous
required
Previous

The count over the period of the same length just before it

integer
sparkline
required
Sparkline

The current period in seven points, oldest first: one day each over 7 days, four or five days each over 30

Array<integer>
orders
required
SummaryCount

Shopify orders linked to the quiz by its cart, the checkout or the email the shopper gave, by the day they were placed

object
current
required
Current

The count over the current period

integer
delta_pct
required
Any of:
number
previous
required
Previous

The count over the period of the same length just before it

integer
sparkline
required
Sparkline

The current period in seven points, oldest first: one day each over 7 days, four or five days each over 30

Array<integer>
period
required
Period
string
Allowed values: 7d 30d
previous_range
required
AnalyticsRange

The period of the same length just before it

object
days
required
Days
integer
end
required
End

Last day of the range, inclusive, in timezone

string format: date
start
required
Start

First day of the range, inclusive, in timezone

string format: date
timezone
required
Timezone

IANA name of the timezone the days are counted in; UTC unless the request named one

string
range
required
AnalyticsRange

The current period: the last 7 or 30 days through today

object
days
required
Days
integer
end
required
End

Last day of the range, inclusive, in timezone

string format: date
start
required
Start

First day of the range, inclusive, in timezone

string format: date
timezone
required
Timezone

IANA name of the timezone the days are counted in; UTC unless the request named one

string
revenue
required
SummaryMoney

Checkout total of the linked orders in the store’s currency, shipping and tax included, refunds not subtracted

object
current
required
Any of:
Money
object
amount
required
Amount

A decimal string, as “79.97”

string
currency
required
Currency

ISO 4217 code

string
delta_pct
required
Any of:
number
previous
required
Any of:
Money
object
amount
required
Amount

A decimal string, as “79.97”

string
currency
required
Currency

ISO 4217 code

string
sparkline
required
Sparkline

The current period in seven points, oldest first: one day each over 7 days, four or five days each over 30

Array
Any of:
Money
object
amount
required
Amount

A decimal string, as “79.97”

string
currency
required
Currency

ISO 4217 code

string
starts
required
SummaryCount

Visits where the shopper answered or stepped forward at least once

object
current
required
Current

The count over the current period

integer
delta_pct
required
Any of:
number
previous
required
Previous

The count over the period of the same length just before it

integer
sparkline
required
Sparkline

The current period in seven points, oldest first: one day each over 7 days, four or five days each over 30

Array<integer>
views
required
SummaryCount

Visits that opened the quiz on the store, whether or not the shopper answered anything; previews are not counted

object
current
required
Current

The count over the current period

integer
delta_pct
required
Any of:
number
previous
required
Previous

The count over the period of the same length just before it

integer
sparkline
required
Sparkline

The current period in seven points, oldest first: one day each over 7 days, four or five days each over 30

Array<integer>
Example
{
"completions": {
"current": 10,
"delta_pct": 100,
"previous": 5,
"sparkline": [
1,
2,
1,
2,
1,
2,
1
]
},
"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
},
"opt_ins": {
"current": 10,
"delta_pct": 100,
"previous": 5,
"sparkline": [
1,
2,
1,
2,
1,
2,
1
]
},
"orders": {
"current": 10,
"delta_pct": 100,
"previous": 5,
"sparkline": [
1,
2,
1,
2,
1,
2,
1
]
},
"period": "7d",
"previous_range": {
"days": 7,
"end": "2026-08-31",
"start": "2026-08-25",
"timezone": "UTC"
},
"range": {
"days": 7,
"end": "2026-09-07",
"start": "2026-09-01",
"timezone": "UTC"
},
"revenue": {
"current": {
"amount": "12.50",
"currency": "USD"
},
"previous": {
"amount": "0",
"currency": "USD"
},
"sparkline": [
{
"amount": "12.50",
"currency": "USD"
},
{
"amount": "0",
"currency": "USD"
},
{
"amount": "0",
"currency": "USD"
},
{
"amount": "0",
"currency": "USD"
},
{
"amount": "0",
"currency": "USD"
},
{
"amount": "0",
"currency": "USD"
},
{
"amount": "0",
"currency": "USD"
}
]
},
"starts": {
"current": 10,
"delta_pct": 100,
"previous": 5,
"sparkline": [
1,
2,
1,
2,
1,
2,
1
]
},
"views": {
"current": 10,
"delta_pct": 100,
"previous": 5,
"sparkline": [
1,
2,
1,
2,
1,
2,
1
]
}
}
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
feature
Any of:
Feature
string
Allowed values: merchant_api quiz_ab_testing ai_model_switch ai_advanced_model analytics_paths people_filter analytics_funnel analytics_answers quiz_shopify_customer_metafields custom_css_classes shopify_metafields_plan
plan
Any of:
PlanTier

Declared lowest first: a tier includes what every tier before it includes.

string
Allowed values: none basic plus enterprise
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; the Errors guide lists every one

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
feature
Any of:
Feature
string
Allowed values: merchant_api quiz_ab_testing ai_model_switch ai_advanced_model analytics_paths people_filter analytics_funnel analytics_answers quiz_shopify_customer_metafields custom_css_classes shopify_metafields_plan
plan
Any of:
PlanTier

Declared lowest first: a tier includes what every tier before it includes.

string
Allowed values: none basic plus enterprise
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; the Errors guide lists every one

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": [
"analytics:read"
],
"status": 403,
"title": "insufficient_scope",
"type": "https://api.octaneai.com/errors/insufficient_scope"
}

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
feature
Any of:
Feature
string
Allowed values: merchant_api quiz_ab_testing ai_model_switch ai_advanced_model analytics_paths people_filter analytics_funnel analytics_answers quiz_shopify_customer_metafields custom_css_classes shopify_metafields_plan
plan
Any of:
PlanTier

Declared lowest first: a tier includes what every tier before it includes.

string
Allowed values: none basic plus enterprise
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; the Errors guide lists every one

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
feature
Any of:
Feature
string
Allowed values: merchant_api quiz_ab_testing ai_model_switch ai_advanced_model analytics_paths people_filter analytics_funnel analytics_answers quiz_shopify_customer_metafields custom_css_classes shopify_metafields_plan
plan
Any of:
PlanTier

Declared lowest first: a tier includes what every tier before it includes.

string
Allowed values: none basic plus enterprise
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; the Errors guide lists every one

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
feature
Any of:
Feature
string
Allowed values: merchant_api quiz_ab_testing ai_model_switch ai_advanced_model analytics_paths people_filter analytics_funnel analytics_answers quiz_shopify_customer_metafields custom_css_classes shopify_metafields_plan
plan
Any of:
PlanTier

Declared lowest first: a tier includes what every tier before it includes.

string
Allowed values: none basic plus enterprise
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; the Errors guide lists every one

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
feature
Any of:
Feature
string
Allowed values: merchant_api quiz_ab_testing ai_model_switch ai_advanced_model analytics_paths people_filter analytics_funnel analytics_answers quiz_shopify_customer_metafields custom_css_classes shopify_metafields_plan
plan
Any of:
PlanTier

Declared lowest first: a tier includes what every tier before it includes.

string
Allowed values: none basic plus enterprise
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; the Errors guide lists every one

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"
}