curl --request GET \
--url https://api-sandbox.letshum.com/analytics/sessions/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api-sandbox.letshum.com/analytics/sessions/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-sandbox.letshum.com/analytics/sessions/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-sandbox.letshum.com/analytics/sessions/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-sandbox.letshum.com/analytics/sessions/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-sandbox.letshum.com/analytics/sessions/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.letshum.com/analytics/sessions/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"message": "Analytics session",
"request_status": "ok",
"data": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"created_at": "2026-03-01T12:00:00Z",
"context": "move_in",
"campaign_id": "spring_promo_2026",
"address": {
"street1": "123 Main St",
"street2": "Apt 4B",
"city": "Detroit",
"state": "MI",
"zip": "48201"
},
"furthest_step": 6,
"order": {
"order_number": "HUM-A1B2C3D4",
"status": "complete",
"ordered_at": "2026-03-01T12:30:00Z",
"installed": true,
"installed_at": "2026-03-05T14:00:00Z",
"commission_cents": 5000
},
"cart_progression": [
{
"step": 1,
"step_name": "plan_selection",
"timestamp": "2026-03-01T12:05:00Z"
},
{
"step": 2,
"step_name": "internet_addons",
"timestamp": "2026-03-01T12:07:00Z"
},
{
"step": 6,
"step_name": "customer_info",
"timestamp": "2026-03-01T12:15:00Z"
}
]
},
"meta": {
"responded_at": "2026-03-12T15:00:00Z"
}
}Get Session Detail
Returns a single session with address, order, commission, and full cart progression timeline. The session must belong to the authenticated client. The path accepts either the session UUID returned by the analytics index endpoint or the session token returned by session create.
curl --request GET \
--url https://api-sandbox.letshum.com/analytics/sessions/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api-sandbox.letshum.com/analytics/sessions/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-sandbox.letshum.com/analytics/sessions/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-sandbox.letshum.com/analytics/sessions/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-sandbox.letshum.com/analytics/sessions/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-sandbox.letshum.com/analytics/sessions/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.letshum.com/analytics/sessions/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"message": "Analytics session",
"request_status": "ok",
"data": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"created_at": "2026-03-01T12:00:00Z",
"context": "move_in",
"campaign_id": "spring_promo_2026",
"address": {
"street1": "123 Main St",
"street2": "Apt 4B",
"city": "Detroit",
"state": "MI",
"zip": "48201"
},
"furthest_step": 6,
"order": {
"order_number": "HUM-A1B2C3D4",
"status": "complete",
"ordered_at": "2026-03-01T12:30:00Z",
"installed": true,
"installed_at": "2026-03-05T14:00:00Z",
"commission_cents": 5000
},
"cart_progression": [
{
"step": 1,
"step_name": "plan_selection",
"timestamp": "2026-03-01T12:05:00Z"
},
{
"step": 2,
"step_name": "internet_addons",
"timestamp": "2026-03-01T12:07:00Z"
},
{
"step": 6,
"step_name": "customer_info",
"timestamp": "2026-03-01T12:15:00Z"
}
]
},
"meta": {
"responded_at": "2026-03-12T15:00:00Z"
}
}Authorizations
Bearer token authentication using API tokens.
Include the token in the Authorization header as: Authorization: Bearer <token>
Obtain tokens from your Hum representative or contact support@letshum.com. There is no self-serve API key dashboard.
Path Parameters
Session UUID returned by analytics index or session token returned by session create
"a1b2c3d4-e5f6-7890-abcd-ef1234567890"
Response
Session detail with cart progression
A message returned by the API. Includes a human-readable message about the status of the request.
"What happened in the most recent request."
An informational summary returned in API response bodies: ok for successful responses, warning for standard request errors, and error for endpoint-specific failures. Integrations must use the HTTP status code, not request_status, to determine whether a request succeeded.
ok, warning, error "ok"
Full session detail with nested order and cart progression.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?
