Developer
APIList abandoned sessions
Booking sessions customers started in the widget, including ones later completed; filter on request_id to find abandoned bookings.
Updated Sep 30, 2026
Returns booking sessions: the drafts the widget saves while a customer works through a form. The widget starts saving once the customer finishes the contact step, so an abandoned session usually carries the customer's contact details. A completed booking with no saved draft gets a placeholder session with step confirm, empty data, and its request_id set. Use it for retargeting and re-engagement.
/api/v1/abandoned-sessionsQuery parameters
page1)per_page25)form_idExample request
curl https://api.servicereserve.com/api/v1/abandoned-sessions \
-H "Authorization: Bearer $SERVICERESERVE_API_KEY"Example response
{
"items": [
{
"id": "b3a9f1e0-72a1-4b1d-93a4-1f9d12d3e4b2",
"form_id": "bd28906b-7f9a-4aaf-ab86-85c1a1ccd4f2",
"step": "address",
"data": {
"zip": "78701",
"serviceIds": ["6d1f0c2a-3b4e-4f5a-9c8d-7e6f5a4b3c2d"],
"contact": { "firstname": "Jane", "lastname": "Doe", "email": "[email protected]" }
},
"attribution": { "utm_source": "google" },
"source": null,
"request_id": null,
"created_at": "2026-09-29T18:31:08.000Z",
"updated_at": "2026-09-29T18:32:40.000Z"
}
],
"pagination": { "page": 1, "per_page": 25, "total": 482 }
}Building queries
Supported parameters are page, per_page, and form_id. Combine
them with &. business_profile_id is not supported here.
# Page 2, 50 per page, scoped to one form:
curl "https://api.servicereserve.com/api/v1/abandoned-sessions?page=2&per_page=50&form_id=bd28906b-7f9a-4aaf-ab86-85c1a1ccd4f2" \
-H "Authorization: Bearer $SERVICERESERVE_API_KEY"per_page is clamped to a maximum of 100. form_id must be a valid
UUID. Sessions are sorted by updated_at, newest first, so a customer
who is still filling in the form moves to the top as they go. Expect
items to shift between pages while customers are active.
Linking sessions to requests
When a customer submits, ServiceReserve sets request_id on their
session. Pass that id to
Get request to follow the funnel
end to end.
Field reference
idform_idstepdataattributionsourcerequest_idcreated_at, updated_atThe response also carries a pagination object with page,
per_page, and total.
Rate limit
Each API key can make 1 request per second. Excess calls return
429 Too Many Requests with a Retry-After header. For polling syncs,
sleep one second between requests.
Related