Skip to content

    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.

    Global conversion funnel

    View source
    POST
    /analytics/v1/channels/overview/global-funnel
    curl --request POST \
    --url 'https://api.eu1.luigisbox.ai/analytics/v1/channels/overview/global-funnel?channel_ids=example' \
    --header 'Authorization: Bearer <token>' \
    --header 'Content-Type: application/json' \
    --data '{ "cart_value_inputs": [ "search" ], "currency": "example", "events": [ "search" ], "order_value_inputs": [ "search" ], "segmentation_filter": { "consent_granted": true, "context_criteria": [ { "attribute": "example", "operator": "in", "values": [ "example" ] } ], "date_from": "2026-04-15T12:00:00Z", "date_to": "2026-04-15T12:00:00Z", "device": [ "example" ], "external_ab_test_variant": [ "example" ], "internal_ab_test_id": [ "example" ], "internal_ab_test_variant": [ "example" ], "is_personalized": true, "landing_page": [ "example" ], "session_rank": { "exclude": false, "max": 1, "min": 1 }, "url_params": [ { "attribute": "example", "operator": "in", "values": [ "example" ] } ] }, "traffic_sources": [ "direct" ] }'

    Global funnel metrics aggregated across the requested channels.

    Traffic sources, events, and cart/order revenue are summed across channels; the channels breakdown returns one bucket per requested channel. Sessions with an unknown traffic source are included in the direct traffic-source bucket.

    channel_ids
    required
    Channel Ids

    One or more channel ids to aggregate over. Provide as repeated query parameters (?channel_ids=A&channel_ids=B).

    Array<string>

    One or more channel ids to aggregate over. Provide as repeated query parameters (?channel_ids=A&channel_ids=B).

    Media type application/json
    GlobalFunnelRequest
    object
    cart_value_inputs
    Cart Value Inputs
    Array<string>
    Allowed values: search autocomplete product_listing recommender
    currency
    Any of:
    string
    events
    Events
    Array<string>
    Allowed values: search autocomplete plp recommendations pageviews
    order_value_inputs
    Order Value Inputs
    Array<string>
    Allowed values: search autocomplete product_listing recommender
    segmentation_filter
    required
    SegmentationFilter
    object
    consent_granted
    Any of:
    boolean
    context_criteria
    Context Criteria
    Array
    Any of:
    AttributeCriteria
    object
    attribute
    required
    Attribute
    string
    >= 1 characters
    operator
    required
    ComparisonOperator
    string
    Allowed values: in not_in exists not_exists lt lte gt gte eq neq
    values
    Any of:
    Array
    date_from
    required
    Date From
    string format: date-time
    date_to
    Any of:
    string format: date-time
    device
    Device
    Array<string>
    external_ab_test_variant
    External Ab Test Variant
    Array<string>
    internal_ab_test_id
    Internal Ab Test Id
    Array<string>
    internal_ab_test_variant
    Internal Ab Test Variant
    Array<string>
    is_personalized
    Any of:
    boolean
    landing_page
    Landing Page
    Array<string>
    session_rank
    Any of:
    RangeFilter

    Represents an inclusive range with optional exclusion.

    object
    exclude
    Exclude
    boolean
    max
    Any of:
    integer
    min
    Any of:
    integer
    url_params
    Url Params
    Array
    Any of:
    AttributeCriteria
    object
    attribute
    required
    Attribute
    string
    >= 1 characters
    operator
    required
    ComparisonOperator
    string
    Allowed values: in not_in exists not_exists lt lte gt gte eq neq
    values
    Any of:
    Array
    traffic_sources
    Traffic Sources
    Array<string>
    Allowed values: direct paid referral llms

    Successful Response

    Media type application/json
    GlobalFunnelResponse
    object
    cart
    required
    FunnelRevenueSummary
    object
    avg_value_per_cart_session
    required
    Avg Value Per Cart Session
    number
    cart_rate
    required
    Cart Rate
    number
    total_value
    required
    Total Value
    number
    value_per_session
    required
    Value Per Session
    number
    channels
    required
    Channels
    Array<object>
    FunnelBucket
    object
    key
    required
    Key
    string
    label
    required
    Label
    string
    sessions
    required
    Sessions
    integer
    share_pct
    required
    Share Pct
    number
    events
    required
    Events
    Array<object>
    FunnelEventBucket
    object
    count
    required
    Count
    integer
    key
    required
    Key
    string
    label
    required
    Label
    string
    share_pct
    required
    Share Pct
    number
    orders
    required
    FunnelOrdersSummary
    object
    avg_order_value
    required
    Avg Order Value
    number
    purchase_rate
    required
    Purchase Rate
    number
    total_value
    required
    Total Value
    number
    value_per_session
    required
    Value Per Session
    number
    totals
    required
    FunnelTotals
    object
    cart
    required
    Cart
    integer
    engaged
    required
    Engaged
    integer
    purchased
    required
    Purchased
    integer
    revenue
    required
    Revenue
    number
    sessions
    required
    Sessions
    integer
    traffic_sources
    required
    Traffic Sources
    Array<object>
    FunnelBucket
    object
    key
    required
    Key
    string
    label
    required
    Label
    string
    sessions
    required
    Sessions
    integer
    share_pct
    required
    Share Pct
    number
    Example generated
    {
    "cart": {
    "avg_value_per_cart_session": 1,
    "cart_rate": 1,
    "total_value": 1,
    "value_per_session": 1
    },
    "channels": [
    {
    "key": "example",
    "label": "example",
    "sessions": 1,
    "share_pct": 1
    }
    ],
    "events": [
    {
    "count": 1,
    "key": "example",
    "label": "example",
    "share_pct": 1
    }
    ],
    "orders": {
    "avg_order_value": 1,
    "purchase_rate": 1,
    "total_value": 1,
    "value_per_session": 1
    },
    "totals": {
    "cart": 1,
    "engaged": 1,
    "purchased": 1,
    "revenue": 1,
    "sessions": 1
    },
    "traffic_sources": [
    {
    "key": "example",
    "label": "example",
    "sessions": 1,
    "share_pct": 1
    }
    ]
    }

    Malformed request

    Media type application/json
    ErrorResponse

    Canonical error body — every non-2xx response uses this shape.

    object
    exception_details
    ExceptionDetails

    Machine-readable error context; empty object when there is nothing to add.

    object
    error_code
    Error Code

    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.

    string
    validation_errors
    Validation Errors

    Every field-level problem found in the request, when validation is what failed. Absent when the rejection is not about a specific value.

    Array<object>
    ValidationProblem

    One field-level reason a request was rejected.

    object
    loc
    required
    Loc

    Path to the offending value from the request root, e.g. ["body", "filters", 0, "operator"].

    Array
    msg
    required
    Msg

    What is wrong with the value at loc.

    string
    type
    required
    Type

    Stable machine code for the problem, e.g. missing or string_too_short.

    string
    key
    additional properties
    any
    reason
    required
    Reason

    Human-readable, actionable error message.

    string
    request_id
    Any of:
    string
    Example generated
    {
    "exception_details": {
    "error_code": "example",
    "validation_errors": [
    {
    "loc": [
    "example"
    ],
    "msg": "example",
    "type": "example"
    }
    ]
    },
    "reason": "example",
    "request_id": "example"
    }

    Missing or invalid credentials

    Media type application/json
    ErrorResponse

    Canonical error body — every non-2xx response uses this shape.

    object
    exception_details
    ExceptionDetails

    Machine-readable error context; empty object when there is nothing to add.

    object
    error_code
    Error Code

    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.

    string
    validation_errors
    Validation Errors

    Every field-level problem found in the request, when validation is what failed. Absent when the rejection is not about a specific value.

    Array<object>
    ValidationProblem

    One field-level reason a request was rejected.

    object
    loc
    required
    Loc

    Path to the offending value from the request root, e.g. ["body", "filters", 0, "operator"].

    Array
    msg
    required
    Msg

    What is wrong with the value at loc.

    string
    type
    required
    Type

    Stable machine code for the problem, e.g. missing or string_too_short.

    string
    key
    additional properties
    any
    reason
    required
    Reason

    Human-readable, actionable error message.

    string
    request_id
    Any of:
    string
    Example generated
    {
    "exception_details": {
    "error_code": "example",
    "validation_errors": [
    {
    "loc": [
    "example"
    ],
    "msg": "example",
    "type": "example"
    }
    ]
    },
    "reason": "example",
    "request_id": "example"
    }

    Authenticated but not permitted

    Media type application/json
    ErrorResponse

    Canonical error body — every non-2xx response uses this shape.

    object
    exception_details
    ExceptionDetails

    Machine-readable error context; empty object when there is nothing to add.

    object
    error_code
    Error Code

    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.

    string
    validation_errors
    Validation Errors

    Every field-level problem found in the request, when validation is what failed. Absent when the rejection is not about a specific value.

    Array<object>
    ValidationProblem

    One field-level reason a request was rejected.

    object
    loc
    required
    Loc

    Path to the offending value from the request root, e.g. ["body", "filters", 0, "operator"].

    Array
    msg
    required
    Msg

    What is wrong with the value at loc.

    string
    type
    required
    Type

    Stable machine code for the problem, e.g. missing or string_too_short.

    string
    key
    additional properties
    any
    reason
    required
    Reason

    Human-readable, actionable error message.

    string
    request_id
    Any of:
    string
    Example generated
    {
    "exception_details": {
    "error_code": "example",
    "validation_errors": [
    {
    "loc": [
    "example"
    ],
    "msg": "example",
    "type": "example"
    }
    ]
    },
    "reason": "example",
    "request_id": "example"
    }

    Request validation failed

    Media type application/json
    ErrorResponse

    Canonical error body — every non-2xx response uses this shape.

    object
    exception_details
    ExceptionDetails

    Machine-readable error context; empty object when there is nothing to add.

    object
    error_code
    Error Code

    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.

    string
    validation_errors
    Validation Errors

    Every field-level problem found in the request, when validation is what failed. Absent when the rejection is not about a specific value.

    Array<object>
    ValidationProblem

    One field-level reason a request was rejected.

    object
    loc
    required
    Loc

    Path to the offending value from the request root, e.g. ["body", "filters", 0, "operator"].

    Array
    msg
    required
    Msg

    What is wrong with the value at loc.

    string
    type
    required
    Type

    Stable machine code for the problem, e.g. missing or string_too_short.

    string
    key
    additional properties
    any
    reason
    required
    Reason

    Human-readable, actionable error message.

    string
    request_id
    Any of:
    string
    Example generated
    {
    "exception_details": {
    "error_code": "example",
    "validation_errors": [
    {
    "loc": [
    "example"
    ],
    "msg": "example",
    "type": "example"
    }
    ]
    },
    "reason": "example",
    "request_id": "example"
    }

    Service temporarily unavailable

    Media type application/json
    ErrorResponse

    Canonical error body — every non-2xx response uses this shape.

    object
    exception_details
    ExceptionDetails

    Machine-readable error context; empty object when there is nothing to add.

    object
    error_code
    Error Code

    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.

    string
    validation_errors
    Validation Errors

    Every field-level problem found in the request, when validation is what failed. Absent when the rejection is not about a specific value.

    Array<object>
    ValidationProblem

    One field-level reason a request was rejected.

    object
    loc
    required
    Loc

    Path to the offending value from the request root, e.g. ["body", "filters", 0, "operator"].

    Array
    msg
    required
    Msg

    What is wrong with the value at loc.

    string
    type
    required
    Type

    Stable machine code for the problem, e.g. missing or string_too_short.

    string
    key
    additional properties
    any
    reason
    required
    Reason

    Human-readable, actionable error message.

    string
    request_id
    Any of:
    string
    Example generated
    {
    "exception_details": {
    "error_code": "example",
    "validation_errors": [
    {
    "loc": [
    "example"
    ],
    "msg": "example",
    "type": "example"
    }
    ]
    },
    "reason": "example",
    "request_id": "example"
    }

    Upstream timed out

    Media type application/json
    ErrorResponse

    Canonical error body — every non-2xx response uses this shape.

    object
    exception_details
    ExceptionDetails

    Machine-readable error context; empty object when there is nothing to add.

    object
    error_code
    Error Code

    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.

    string
    validation_errors
    Validation Errors

    Every field-level problem found in the request, when validation is what failed. Absent when the rejection is not about a specific value.

    Array<object>
    ValidationProblem

    One field-level reason a request was rejected.

    object
    loc
    required
    Loc

    Path to the offending value from the request root, e.g. ["body", "filters", 0, "operator"].

    Array
    msg
    required
    Msg

    What is wrong with the value at loc.

    string
    type
    required
    Type

    Stable machine code for the problem, e.g. missing or string_too_short.

    string
    key
    additional properties
    any
    reason
    required
    Reason

    Human-readable, actionable error message.

    string
    request_id
    Any of:
    string
    Example generated
    {
    "exception_details": {
    "error_code": "example",
    "validation_errors": [
    {
    "loc": [
    "example"
    ],
    "msg": "example",
    "type": "example"
    }
    ]
    },
    "reason": "example",
    "request_id": "example"
    }