Pre-launch API. The concepts described here are settled, but the API shape is not: request and response fields, parameters and defaults can still change. Build against it, and talk to your Luigi's Box contact before you put an integration into production.
const url = 'https://api.eu1.luigisbox.ai/analytics/v1/traffic/touchpoints?channel_ids=example&page=1&size=20';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"attribution_model":"last_touch","date_range":{"date_from":"2026-04-15T12:00:00Z","date_to":"2026-04-15T12:00:00Z"},"filters":{"$and":[{"consent_granted":{"eq":true},"device":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]},"external_ab_test_variant":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]},"internal_ab_test_id":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]},"internal_ab_test_variant":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]},"landing_page":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]},"landing_page_host":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]},"personalized":{"eq":true},"platform":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]},"returning":{"eq":true},"session_rank":{"eq":1,"gt":1,"gte":1,"in":[1],"lt":1,"lte":1,"neq":1,"not_in":[1]},"touchpoint":{"eq":"autocomplete","in":["autocomplete"],"neq":"autocomplete","not_in":["autocomplete"]},"traffic_source":{"eq":"direct","in":["direct"],"neq":"direct","not_in":["direct"]},"traffic_source_type":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]}}],"$not":{"consent_granted":{"eq":true},"device":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]},"external_ab_test_variant":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]},"internal_ab_test_id":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]},"internal_ab_test_variant":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]},"landing_page":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]},"landing_page_host":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]},"personalized":{"eq":true},"platform":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]},"returning":{"eq":true},"session_rank":{"eq":1,"gt":1,"gte":1,"in":[1],"lt":1,"lte":1,"neq":1,"not_in":[1]},"touchpoint":{"eq":"autocomplete","in":["autocomplete"],"neq":"autocomplete","not_in":["autocomplete"]},"traffic_source":{"eq":"direct","in":["direct"],"neq":"direct","not_in":["direct"]},"traffic_source_type":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]}},"$or":[{"consent_granted":{"eq":true},"device":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]},"external_ab_test_variant":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]},"internal_ab_test_id":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]},"internal_ab_test_variant":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]},"landing_page":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]},"landing_page_host":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]},"personalized":{"eq":true},"platform":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]},"returning":{"eq":true},"session_rank":{"eq":1,"gt":1,"gte":1,"in":[1],"lt":1,"lte":1,"neq":1,"not_in":[1]},"touchpoint":{"eq":"autocomplete","in":["autocomplete"],"neq":"autocomplete","not_in":["autocomplete"]},"traffic_source":{"eq":"direct","in":["direct"],"neq":"direct","not_in":["direct"]},"traffic_source_type":{"eq":"example","exists":true,"in":["example"],"matches":"example","neq":"example","not_in":["example"]}}]},"group_by":[],"metric_filters":{"$and":[{"attributed_cart_value":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"attributed_items":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"attributed_key_events_1":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"attributed_key_events_1_rate":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"attributed_key_events_2":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"attributed_key_events_3":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"attributed_revenue":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"attributed_transaction_rate":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"click_through_rate":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"clicks":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"lists":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"session_share":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"sessions":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"users":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1}}],"$not":{"attributed_cart_value":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"attributed_items":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"attributed_key_events_1":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"attributed_key_events_1_rate":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"attributed_key_events_2":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"attributed_key_events_3":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"attributed_revenue":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"attributed_transaction_rate":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"click_through_rate":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"clicks":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"lists":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"session_share":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"sessions":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"users":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1}},"$or":[{"attributed_cart_value":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"attributed_items":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"attributed_key_events_1":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"attributed_key_events_1_rate":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"attributed_key_events_2":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"attributed_key_events_3":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"attributed_revenue":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"attributed_transaction_rate":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"click_through_rate":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"clicks":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"lists":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"session_share":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"sessions":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1},"users":{"eq":1,"exists":true,"gt":1,"gte":1,"lt":1,"lte":1,"neq":1}}]},"metrics":["users"],"sort":{"direction":"desc","field":"sessions"},"touchpoints":["autocomplete"]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url 'https://api.eu1.luigisbox.ai/analytics/v1/traffic/touchpoints?channel_ids=example&page=1&size=20' \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "attribution_model": "last_touch", "date_range": { "date_from": "2026-04-15T12:00:00Z", "date_to": "2026-04-15T12:00:00Z" }, "filters": { "$and": [ { "consent_granted": { "eq": true }, "device": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] }, "external_ab_test_variant": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] }, "internal_ab_test_id": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] }, "internal_ab_test_variant": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] }, "landing_page": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] }, "landing_page_host": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] }, "personalized": { "eq": true }, "platform": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] }, "returning": { "eq": true }, "session_rank": { "eq": 1, "gt": 1, "gte": 1, "in": [ 1 ], "lt": 1, "lte": 1, "neq": 1, "not_in": [ 1 ] }, "touchpoint": { "eq": "autocomplete", "in": [ "autocomplete" ], "neq": "autocomplete", "not_in": [ "autocomplete" ] }, "traffic_source": { "eq": "direct", "in": [ "direct" ], "neq": "direct", "not_in": [ "direct" ] }, "traffic_source_type": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] } } ], "$not": { "consent_granted": { "eq": true }, "device": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] }, "external_ab_test_variant": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] }, "internal_ab_test_id": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] }, "internal_ab_test_variant": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] }, "landing_page": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] }, "landing_page_host": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] }, "personalized": { "eq": true }, "platform": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] }, "returning": { "eq": true }, "session_rank": { "eq": 1, "gt": 1, "gte": 1, "in": [ 1 ], "lt": 1, "lte": 1, "neq": 1, "not_in": [ 1 ] }, "touchpoint": { "eq": "autocomplete", "in": [ "autocomplete" ], "neq": "autocomplete", "not_in": [ "autocomplete" ] }, "traffic_source": { "eq": "direct", "in": [ "direct" ], "neq": "direct", "not_in": [ "direct" ] }, "traffic_source_type": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] } }, "$or": [ { "consent_granted": { "eq": true }, "device": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] }, "external_ab_test_variant": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] }, "internal_ab_test_id": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] }, "internal_ab_test_variant": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] }, "landing_page": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] }, "landing_page_host": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] }, "personalized": { "eq": true }, "platform": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] }, "returning": { "eq": true }, "session_rank": { "eq": 1, "gt": 1, "gte": 1, "in": [ 1 ], "lt": 1, "lte": 1, "neq": 1, "not_in": [ 1 ] }, "touchpoint": { "eq": "autocomplete", "in": [ "autocomplete" ], "neq": "autocomplete", "not_in": [ "autocomplete" ] }, "traffic_source": { "eq": "direct", "in": [ "direct" ], "neq": "direct", "not_in": [ "direct" ] }, "traffic_source_type": { "eq": "example", "exists": true, "in": [ "example" ], "matches": "example", "neq": "example", "not_in": [ "example" ] } } ] }, "group_by": [], "metric_filters": { "$and": [ { "attributed_cart_value": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "attributed_items": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "attributed_key_events_1": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "attributed_key_events_1_rate": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "attributed_key_events_2": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "attributed_key_events_3": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "attributed_revenue": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "attributed_transaction_rate": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "click_through_rate": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "clicks": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "lists": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "session_share": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "sessions": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "users": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 } } ], "$not": { "attributed_cart_value": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "attributed_items": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "attributed_key_events_1": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "attributed_key_events_1_rate": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "attributed_key_events_2": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "attributed_key_events_3": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "attributed_revenue": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "attributed_transaction_rate": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "click_through_rate": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "clicks": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "lists": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "session_share": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "sessions": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "users": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 } }, "$or": [ { "attributed_cart_value": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "attributed_items": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "attributed_key_events_1": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "attributed_key_events_1_rate": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "attributed_key_events_2": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "attributed_key_events_3": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "attributed_revenue": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "attributed_transaction_rate": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "click_through_rate": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "clicks": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "lists": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "session_share": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "sessions": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 }, "users": { "eq": 1, "exists": true, "gt": 1, "gte": 1, "lt": 1, "lte": 1, "neq": 1 } } ] }, "metrics": [ "users" ], "sort": { "direction": "desc", "field": "sessions" }, "touchpoints": [ "autocomplete" ] }'What the lists shown at each touchpoint give the site: their sessions, clicks, carts and sales.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”One or more channel ids to aggregate over. Provide as repeated query parameters (?channel_ids=A&channel_ids=B).
One or more channel ids to aggregate over. Provide as repeated query parameters (?channel_ids=A&channel_ids=B).
1-based page number.
1-based page number.
Number of items per page.
Number of items per page.
Request Body required
Section titled “Request Body required ”Request for a page of rows.
object
Which of the lists that showed an item is credited with an interaction on it; only last_touch, the last of them, is recorded today.
The time range of the report.
object
Start, inclusive.
End, exclusive.
A group node: exactly one of $and, $or, $not.
object
Nodes that must all match.
A condition node: field names mapped to operator objects; sibling fields combine as AND.
object
Operators on one true-or-false field.
object
Equal to.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one true-or-false field.
object
Equal to.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one true-or-false field.
object
Equal to.
Operators on one whole-number field.
object
Equal to.
Greater than.
At least.
One of.
Less than.
At most.
Not equal to.
None of.
Operators on where a session was shown lists.
object
Equal to.
One of.
Not equal to.
None of.
Operators on how a session arrived.
object
Equal to.
One of.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
A condition node: field names mapped to operator objects; sibling fields combine as AND.
object
Operators on one true-or-false field.
object
Equal to.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one true-or-false field.
object
Equal to.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one true-or-false field.
object
Equal to.
Operators on one whole-number field.
object
Equal to.
Greater than.
At least.
One of.
Less than.
At most.
Not equal to.
None of.
Operators on where a session was shown lists.
object
Equal to.
One of.
Not equal to.
None of.
Operators on how a session arrived.
object
Equal to.
One of.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Nodes of which at least one must match.
A condition node: field names mapped to operator objects; sibling fields combine as AND.
object
Operators on one true-or-false field.
object
Equal to.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one true-or-false field.
object
Equal to.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one true-or-false field.
object
Equal to.
Operators on one whole-number field.
object
Equal to.
Greater than.
At least.
One of.
Less than.
At most.
Not equal to.
None of.
Operators on where a session was shown lists.
object
Equal to.
One of.
Not equal to.
None of.
Operators on how a session arrived.
object
Equal to.
One of.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
A condition node: field names mapped to operator objects; sibling fields combine as AND.
object
Operators on one true-or-false field.
object
Equal to.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one true-or-false field.
object
Equal to.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one true-or-false field.
object
Equal to.
Operators on one whole-number field.
object
Equal to.
Greater than.
At least.
One of.
Less than.
At most.
Not equal to.
None of.
Operators on where a session was shown lists.
object
Equal to.
One of.
Not equal to.
None of.
Operators on how a session arrived.
object
Equal to.
One of.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Operators on one text field.
object
Equal to.
Has a value (true) or has none (false).
One of.
Contains this text.
Not equal to.
None of.
Fields that split every row, summary and series point, e.g. ["device"]. At most one of landing_page, url_path, url_params.* and context.*; a summary or series holds at most 500 groups, and a session with several values of a key counts once in each of its groups.
A group node: exactly one of $and, $or, $not.
object
Nodes that must all match.
A condition node: field names mapped to operator objects; sibling fields combine as AND.
object
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
A condition node: field names mapped to operator objects; sibling fields combine as AND.
object
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Nodes of which at least one must match.
A condition node: field names mapped to operator objects; sibling fields combine as AND.
object
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
A condition node: field names mapped to operator objects; sibling fields combine as AND.
object
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Operators on one numeric field.
object
Equal to.
Has a value (true) or has none (false).
Greater than.
At least.
Less than.
At most.
Not equal to.
Metrics to compute; every metric of the report when left out.
Order of items.
object
asc for ascending order, desc for descending.
Metric to order by; one not in metrics is added to the response.
Responses
Section titled “ Responses ”Successful Response
object
The items on this page.
A touchpoint and what the lists shown there drove.
object
Its group_by values; present with group_by.
object
Where a search list was shown: serp, the results page, or autocomplete, the as-you-type panel.
Metrics over date_range.
object
Where a list was shown, read off the service that showed it; a recommender list records no touchpoint yet.
1-based page number.
Number of items per page.
Total number of items across all pages.
Example
{ "items": [ { "group": { "touchpoint": "autocomplete", "traffic_source": "direct" }, "touchpoint": "autocomplete" } ]}Malformed request
Canonical error body — every non-2xx response uses this shape.
object
Machine-readable error context; empty object when there is nothing to add.
object
Stable machine code naming why a well-formed request was refused: snake_case, prefixed by its domain — e.g. filter_unknown_field or cursor_mismatch. Safe to branch on; reason is not. Absent when the status code says all there is to say.
Every field-level problem found in the request, when validation is what failed. Absent when the rejection is not about a specific value.
One field-level reason a request was rejected.
object
Path to the offending value from the request root, e.g. ["body", "filters", 0, "operator"].
What is wrong with the value at loc.
Stable machine code for the problem, e.g. missing or string_too_short.
Human-readable, actionable error message.
Example generated
{ "exception_details": { "error_code": "example", "validation_errors": [ { "loc": [ "example" ], "msg": "example", "type": "example" } ] }, "reason": "example", "request_id": "example"}Missing or invalid credentials
Canonical error body — every non-2xx response uses this shape.
object
Machine-readable error context; empty object when there is nothing to add.
object
Stable machine code naming why a well-formed request was refused: snake_case, prefixed by its domain — e.g. filter_unknown_field or cursor_mismatch. Safe to branch on; reason is not. Absent when the status code says all there is to say.
Every field-level problem found in the request, when validation is what failed. Absent when the rejection is not about a specific value.
One field-level reason a request was rejected.
object
Path to the offending value from the request root, e.g. ["body", "filters", 0, "operator"].
What is wrong with the value at loc.
Stable machine code for the problem, e.g. missing or string_too_short.
Human-readable, actionable error message.
Example generated
{ "exception_details": { "error_code": "example", "validation_errors": [ { "loc": [ "example" ], "msg": "example", "type": "example" } ] }, "reason": "example", "request_id": "example"}Authenticated but not permitted
Canonical error body — every non-2xx response uses this shape.
object
Machine-readable error context; empty object when there is nothing to add.
object
Stable machine code naming why a well-formed request was refused: snake_case, prefixed by its domain — e.g. filter_unknown_field or cursor_mismatch. Safe to branch on; reason is not. Absent when the status code says all there is to say.
Every field-level problem found in the request, when validation is what failed. Absent when the rejection is not about a specific value.
One field-level reason a request was rejected.
object
Path to the offending value from the request root, e.g. ["body", "filters", 0, "operator"].
What is wrong with the value at loc.
Stable machine code for the problem, e.g. missing or string_too_short.
Human-readable, actionable error message.
Example generated
{ "exception_details": { "error_code": "example", "validation_errors": [ { "loc": [ "example" ], "msg": "example", "type": "example" } ] }, "reason": "example", "request_id": "example"}Request validation failed, or the report cannot answer it as asked (exception_details.problems).
The 422 body of a report request.
object
Machine-readable error context.
object
Stable machine code naming why a well-formed request was refused: snake_case, prefixed by its domain — e.g. filter_unknown_field or cursor_mismatch. Safe to branch on; reason is not. Absent when the status code says all there is to say.
Why the report cannot answer the request as asked; validation_errors covers malformed fields.
One reason a report request cannot be answered.
object
Stable code of the problem; switch on it, not on message.
Where in the request, as in validation_errors[].loc, e.g. ["body", "group_by", 1].
What to change.
Every field-level problem found in the request, when validation is what failed. Absent when the rejection is not about a specific value.
One field-level reason a request was rejected.
object
Path to the offending value from the request root, e.g. ["body", "filters", 0, "operator"].
What is wrong with the value at loc.
Stable machine code for the problem, e.g. missing or string_too_short.
Human-readable, actionable error message.
Example
{ "exception_details": { "problems": [ { "code": "too_many_groups" } ] }}Service temporarily unavailable
Canonical error body — every non-2xx response uses this shape.
object
Machine-readable error context; empty object when there is nothing to add.
object
Stable machine code naming why a well-formed request was refused: snake_case, prefixed by its domain — e.g. filter_unknown_field or cursor_mismatch. Safe to branch on; reason is not. Absent when the status code says all there is to say.
Every field-level problem found in the request, when validation is what failed. Absent when the rejection is not about a specific value.
One field-level reason a request was rejected.
object
Path to the offending value from the request root, e.g. ["body", "filters", 0, "operator"].
What is wrong with the value at loc.
Stable machine code for the problem, e.g. missing or string_too_short.
Human-readable, actionable error message.
Example generated
{ "exception_details": { "error_code": "example", "validation_errors": [ { "loc": [ "example" ], "msg": "example", "type": "example" } ] }, "reason": "example", "request_id": "example"}Was this page helpful?
Thanks.