Order & Commission Reporting
The analytics endpoints provide partner-scoped session, order, commission, and cart-progression data. Analytics requests are limited to 60 requests per minute per IP.List Sessions
GET /analytics/sessions returns 50 sessions per page. Use the page parameter and meta.pages to traverse pages; meta.count is the total number of matching sessions.
Available filters:
start_dateandend_date: Limit sessions by creation time.updated_since: Return sessions whose session or order changed on or after the supplied time, ordered by most recent change first.token_ids[]: Restrict results to API tokens owned by your account. A token you do not own returns HTTP 403.with_clicks: Whentrue, return only sessions with click activity.
cURL
Get Session Detail
GET /analytics/sessions/{id} returns one session and adds:
order: The associated order, ornullwhen no order was placed.cart_progression: The full checkout-step timeline ordered by timestamp.
Move-in vs Move-out Traffic
Every session returned by both analytics endpoints carries acontext field of either
move_in or move_out.
Context is set by the API token that created the session, not by a request parameter. If you
run both flows, you are issued a separate token for each, and each session inherits the
context of the token behind it. Sessions created before this field was introduced return
move_in.
move_in: a resident setting up service at a home they are moving into.move_out: a resident leaving your property and setting up service at their next home.
context filter parameter. To report on one context, either request that token’s
traffic with token_ids[], or group client-side on the context field.
Order Fields
The order object includes:order_number: Unique order identifier.status:draft,submitted,processing,confirmed,complete, orcancelled.ordered_at: When the order was submitted.installed: Whether service has been installed.installed_at: Installation timestamp, ornullwhen not installed.commission_cents: Locked commission amount in cents, ornullwhen no commission is recorded.
draft → submitted → processing → confirmed → complete. cancelled is final. For cancelled orders, installed is always false, while installed_at and commission_cents are null.
Reconciling Widget Orders
TheorderId in the widget’s humOrderCompleted event is the same value as order_number in the analytics endpoints. Use it to join widget conversions to order and commission rows. The session’s campaign_id provides session-level attribution.
Keep a Local Copy Current
The API does not send server-side webhooks for analytics changes. Poll withupdated_since set to the time of your last successful sync and page through all results. A session is returned whenever the session or its order changed, including installs, cancellations, and commission updates on older sessions.
Treat each returned row as authoritative and overwrite your stored copy. Do not use start_date as a sync cursor: it filters by session creation time, so later status changes to older sessions do not appear.
Sync loop
