EscapeLifeDocs
Phase 4 · Available

Housekeeping

Schedule and track room cleaning tasks — checkout cleans, stayover services, turndown, deep cleans, and inspections. Tasks can be assigned to specific staff members and tracked through completion.

The Housekeeping Task object

idstring

Unique task ID. Prefixed hk_.

property_idstring

Property this task belongs to.

room_numberstring

Room or unit to be serviced.

task_typeenum

checkout_clean · stayover_clean · turndown · deep_clean · maintenance · inspection

statusenum

pending · in_progress · completed · skipped

priorityenum

urgent · high · normal · low

assigned_tostring?

Staff member assigned to this task.

scheduled_datedate

Date the task is scheduled for (YYYY-MM-DD).

notesstring?

Special instructions (e.g. VIP check-in, birthday setup).

started_atdatetime?

When the task was started.

completed_atdatetime?

When the task was marked complete.

created_atdatetime

ISO 8601 timestamp.

Endpoints

POST/v1/housekeepingCreate a task

Schedule a new housekeeping task.

Request Body

room_numberstringrequiredRoom or unit to be serviced.
task_typestringrequiredcheckout_clean, stayover_clean, turndown, deep_clean, maintenance, or inspection.
scheduled_datestringrequiredDate for the task (YYYY-MM-DD).
prioritystringurgent, high, normal, or low. Defaults to normal.
assigned_tostringStaff member name or ID.
notesstringSpecial instructions for the attendant.
cURL
curl -X POST https://api.escapelife.ai/v1/housekeeping \
  -H "X-API-Key: sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "room_number": "601",
    "task_type": "turndown",
    "priority": "high",
    "scheduled_date": "2026-03-16",
    "assigned_to": "Rosa M.",
    "notes": "Birthday setup — rose petals and cake"
  }'
Response
{
  "id": "hk_def456",
  "property_id": "pty_xyz",
  "room_number": "601",
  "task_type": "turndown",
  "status": "pending",
  "priority": "high",
  "assigned_to": "Rosa M.",
  "scheduled_date": "2026-03-16",
  "notes": "Birthday setup — rose petals and cake",
  "started_at": null,
  "completed_at": null,
  "created_at": "2026-03-16T08:00:00Z"
}
GET/v1/housekeepingList tasks

Return housekeeping tasks for the property.

Path / Query Parameters

datestringFilter by scheduled date (YYYY-MM-DD).
statusstringFilter by status: pending, in_progress, completed, skipped.
task_typestringFilter by task type.
assigned_tostringFilter by staff member.
limitintegerMax results (1–100). Default 20.
offsetintegerPagination offset. Default 0.
GET/v1/housekeeping/summaryHousekeeping summary

Return task counts grouped by status and task type for a given date.

Path / Query Parameters

datestringDate to summarise (YYYY-MM-DD). Defaults to today.
Response
{
  "date": "2026-03-16",
  "by_status": {
    "pending": 6,
    "in_progress": 3,
    "completed": 14,
    "skipped": 1
  },
  "by_type": {
    "checkout_clean": 5,
    "stayover_clean": 8,
    "turndown": 4,
    "deep_clean": 2,
    "inspection": 5
  }
}
GET/v1/housekeeping/{id}Retrieve a task

Fetch a single housekeeping task by ID.

Path / Query Parameters

idstringrequiredTask ID (hk_...).
PATCH/v1/housekeeping/{id}Update a task

Update task status, assignment, or notes. Setting status to in_progress automatically sets started_at; completed sets completed_at.

Path / Query Parameters

idstringrequiredTask ID (hk_...).

Request Body

statusstringNew status value.
assigned_tostringReassign to a different staff member.
notesstringUpdate special instructions.
prioritystringUpdate priority.
Mark complete
curl -X PATCH https://api.escapelife.ai/v1/housekeeping/hk_def456 \
  -H "X-API-Key: sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"status": "completed"}'