Developer

API

List requests

Paginated list of every booking request in the workspace, newest first, filterable by form or business profile.

Updated Sep 30, 2026

Returns booking requests for the workspace, newest first. Filter by form or by business profile to narrow the results. Each item has the same fields as Get request.

GET/api/v1/requests
Paginated list of booking requests for the authenticated workspace.

Query parameters

page
integer (default 1)
1-indexed page number. Values below 1 become 1.
per_page
integer (default 25)
Items per page. Maximum 100. Missing, zero, or non-numeric values use the default.
form_id
uuid
Only requests submitted through this booking form.
business_profile_id
uuid
Only requests routed to this business profile (location).

Example request

curl "https://api.servicereserve.com/api/v1/requests?per_page=25" \
-H "Authorization: Bearer $SERVICERESERVE_API_KEY"

Example response

{
"items": [
  {
    "id": "f0e9c1d8-94c3-4d50-8f81-2b63f4a47a4c",
    "form_id": "bd28906b-7f9a-4aaf-ab86-85c1a1ccd4f2",
    "business_profile_id": "52c58cc6-c7fb-4419-ad88-9c4a0e89ad2f",
    "first_name": "Jane",
    "last_name": "Doe",
    "email": "[email protected]",
    "phone": "+15555550123",
    "company": null,
    "address": "123 Main St",
    "address_2": null,
    "city": "Austin",
    "state": "TX",
    "zip": "78701",
    "country": "US",
    "source": null,
    "status": "complete",
    "lead_status": "new",
    "selected_services": ["6d1f0c2a-3b4e-4f5a-9c8d-7e6f5a4b3c2d"],
    "preferred_times": [{ "date": "2026-10-06", "slot": "morning" }],
    "intake_responses": [],
    "attribution": { "utm_source": "google", "utm_medium": "cpc" },
    "entrance_info": null,
    "internal_notes": null,
    "created_at": "2026-09-29T18:33:42.000Z",
    "updated_at": null,
    "completed_at": "2026-09-29T18:33:42.000Z"
  }
],
"pagination": { "page": 1, "per_page": 25, "total": 1342 }
}

Building queries

All filters are query-string parameters on a GET request. Combine them with &. Results are sorted newest first by created_at, so paging is stable as long as no new submissions arrive between calls.

# Page 2, 50 per page, only one form:
curl "https://api.servicereserve.com/api/v1/requests?page=2&per_page=50&form_id=bd28906b-7f9a-4aaf-ab86-85c1a1ccd4f2" \
  -H "Authorization: Bearer $SERVICERESERVE_API_KEY"
 
# Both filters together: one location of one form.
curl "https://api.servicereserve.com/api/v1/requests?form_id=bd28906b-7f9a-4aaf-ab86-85c1a1ccd4f2&business_profile_id=52c58cc6-c7fb-4419-ad88-9c4a0e89ad2f" \
  -H "Authorization: Bearer $SERVICERESERVE_API_KEY"

form_id and business_profile_id must be valid UUIDs. Get them from List forms and List business profiles.

To page through every result, keep incrementing page until items.length === 0 or page * per_page >= pagination.total.

The API returns every request in the workspace. It does not apply plan-based visibility limits.

Pagination object

pagination.page
integer
The page you asked for, after clamping.
pagination.per_page
integer
The page size used, after clamping.
pagination.total
integer
Total matching requests across every page.

Rate limit

Each API key can make 1 request per second. Excess calls return 429 Too Many Requests with Retry-After, X-RateLimit-Limit, and X-RateLimit-Remaining headers. See Authentication.

Field reference

Each item has the same fields as Get request.

Related