EscapeLifeDocs
Phase 4 · Available

Guest Requests

Manage all guest service requests — housekeeping, maintenance, concierge, food & beverage, transport, and wake-up calls. Requests are tracked through a full lifecycle from creation to completion.

The Request object

idstring

Unique request ID. Prefixed req_.

property_idstring

Property this request belongs to.

guest_idstring?

Linked guest profile, if known.

typeenum

housekeeping · maintenance · concierge · food_service · transport · wake_up · other

statusenum

open · pending · in_progress · completed · cancelled

priorityenum

urgent · high · normal · low

titlestring

Short summary of the request.

descriptionstring?

Full details provided by the guest or staff.

room_numberstring?

Room or unit associated with the request.

assigned_tostring?

Staff member assigned to fulfil the request.

created_atdatetime

ISO 8601 timestamp.

updated_atdatetime

ISO 8601 timestamp.

Endpoints

POST/v1/requestsCreate a request

Create a new guest service request.

Request Body

typestringrequiredRequest type: housekeeping, maintenance, concierge, food_service, transport, wake_up, or other.
titlestringrequiredShort description of the request.
prioritystringurgent, high, normal, or low. Defaults to normal.
room_numberstringRoom or unit number.
descriptionstringFull details of the request.
guest_idstringLink to an existing guest profile.
assigned_tostringStaff member to assign immediately.
cURL
curl -X POST https://api.escapelife.ai/v1/requests \
  -H "X-API-Key: sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "maintenance",
    "priority": "high",
    "title": "AC not cooling properly",
    "room_number": "208",
    "description": "Guest reports room temperature above 78F despite thermostat at 68"
  }'
Response
{
  "id": "req_abc123",
  "property_id": "pty_xyz",
  "guest_id": null,
  "type": "maintenance",
  "status": "open",
  "priority": "high",
  "title": "AC not cooling properly",
  "room_number": "208",
  "description": "Guest reports room temperature above 78F despite thermostat at 68",
  "assigned_to": null,
  "created_at": "2026-03-16T10:00:00Z",
  "updated_at": "2026-03-16T10:00:00Z"
}
GET/v1/requestsList requests

Return all requests for the property, newest first.

Path / Query Parameters

statusstringFilter by status: open, pending, in_progress, completed, cancelled.
typestringFilter by request type.
prioritystringFilter by priority level.
limitintegerMax results to return (1–100). Default 20.
offsetintegerPagination offset. Default 0.
GET/v1/requests/summaryRequest summary

Return aggregated counts grouped by status and type. Useful for dashboard stat cards.

Response
{
  "by_status": {
    "open": 4,
    "in_progress": 2,
    "completed": 18,
    "cancelled": 1
  },
  "by_type": {
    "housekeeping": 8,
    "maintenance": 5,
    "concierge": 7,
    "food_service": 5
  }
}
GET/v1/requests/{id}Retrieve a request

Fetch a single request by ID.

Path / Query Parameters

idstringrequiredRequest ID (req_...).
PATCH/v1/requests/{id}Update a request

Update the status, priority, assignment, or any other field.

Path / Query Parameters

idstringrequiredRequest ID (req_...).

Request Body

statusstringNew status value.
prioritystringNew priority value.
assigned_tostringAssign to a staff member.
descriptionstringUpdated description.
Mark as in progress
curl -X PATCH https://api.escapelife.ai/v1/requests/req_abc123 \
  -H "X-API-Key: sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"status": "in_progress", "assigned_to": "Carlos M."}'