APIs

API reference

The 52 routes the Concierge and Hotel Operator are built from, grouped by what they do. Each group links to its reference page.

Recognize a guest from a confirmation link, record the remember choice, and read one stay.

MethodPathWhat it doesWho calls it
POST/v1/recognizeRecognize a guest from a confirmation code or link and open a session.guest
POST/v1/stays/:stay_id/consentRecord the remember choice for this stay.guest
GET/v1/stays/:stay_id/contextRead the stay record the platform holds.guest
GET/v1/stays/:stay_id/homeThe Concierge home: chips, the usher line, open offers, requests.guest
GET/v1/confirmation/:codeRender the confirmation the guest was sent.guest

One route carries the conversation. It answers with a line and typed cards.

MethodPathWhat it doesWho calls it
POST/v1/stays/:stay_id/conciergeAnswer one guest message with a reply line and action cards.guest

Guests place requests, and QR Find hands over the questions it cannot finish. Staff claim, complete or decline them from a queue.

MethodPathWhat it doesWho calls it
POST/v1/requestsPlace a request: dining, spa, housekeeping, luggage, concierge.guest
POST/v1/requests/:id/claimA staff member takes the request.operator
POST/v1/requests/:id/completeMark the request done, with a note.operator
POST/v1/requests/:id/declineDecline the request, with the reason.operator
POST/v1/requests/:id/assignHand a claimed request to a named staff member. Who handed it off and when stay on the request.operator
GET/v1/queuesList the queues and their open counts.operator
GET/v1/queues/:id/requestsThe requests in one queue.operator
GET/v1/staffThe staff roster for claiming.operator
POST/v1/federation/porter/escalationsQR Find hands over a guest question a person should handle. It lands as a request.service

Quiet Hours. The guest says how the room should be handled, the floor board shows which rooms are verifiably empty, and attendant routes re-sort with the reason for every move.

MethodPathWhat it doesWho calls it
GET/v1/stays/:stay_id/service-prefsRead the guest's room preferences: knock style, towel cadence, quiet until.guest
PUT/v1/stays/:stay_id/service-prefsSet the room preferences once for the stay.guest
DELETE/v1/stays/:stay_id/service-prefsClear the preferences and go back to the property default.guest
GET/v1/housekeeping/boardThe floor board: every room, its state, its open window, and its attendant.operator
GET/v1/housekeeping/routeOne attendant's route, re-sorted toward rooms that are empty, with the reason per move.operator
POST/v1/housekeeping/rooms/:room_number/servicedMark a room serviced. The guest gets a note on the Concierge.operator
POST/v1/housekeeping/rooms/:room_number/dndSet or clear do not disturb on a room.operator

Openings become offers. The Usher suggests, the GM approves the expensive ones, the guest accepts. QR Find's suggestions arrive here too.

MethodPathWhat it doesWho calls it
GET/v1/openingsOpen capacity the property can offer right now.operator
GET/v1/offersOffers and their status.operator
POST/v1/offersCreate an offer from an opening.operator
POST/v1/offers/:id/approveApprove a send that was waiting on the GM.operator
POST/v1/offers/:id/rejectReject a waiting send, with the reason.operator
POST/v1/offers/:id/closeClose an offer before it expires.operator
POST/v1/offers/instances/:id/acceptThe guest accepts an offer on the Concierge.guest
GET/v1/offers/playsThe offer plays the Usher can run.operator
GET/v1/offers/previewPreview who an offer would reach before sending.operator
POST/v1/federation/porter/upsellsQR Find proposes a suggestion it heard in a question. The guest sees it in the Concierge.service
POST/v1/porter-upsells/:id/openThe guest taps the suggestion. Recorded once.guest

A guest invites their crew with a join code and plans activities together.

MethodPathWhat it doesWho calls it
POST/v1/groupsStart a group and get a join code.guest
POST/v1/groups/joinJoin a group with its code.guest
POST/v1/groups/:id/leaveLeave the group.guest
POST/v1/groups/:id/activitiesPropose an activity to the group.guest
POST/v1/group-activities/:id/bookBook the activity for the group.guest
POST/v1/group-activities/:id/attendanceSay who is coming.guest
GET/v1/groups/summaryGroups on property today, for the operator.operator

The last morning: luggage hold, the offer to return, what is still open.

MethodPathWhat it doesWho calls it
GET/v1/last-day/summaryWho leaves today and what the property can still do for them.operator

The digital twin: counts and a live stream of real events.

MethodPathWhat it doesWho calls it
GET/v1/property/summaryCounts across stays, requests, offers and groups, for the Property tab.operator

What waits on the GM, and the acknowledgements that clear it.

MethodPathWhat it doesWho calls it
GET/v1/gm/feedSends over the approval threshold and vendor notices waiting on the GM.operator
POST/v1/gm/acksThe GM acknowledges a notice.operator

The number that matters, and a CSV to take to the meeting.

MethodPathWhat it doesWho calls it
GET/v1/reportRequests, offers accepted, revenue, by day.operator
GET/v1/report/export.csvThe same report as CSV.operator

The event log the ledger reads from, and the sink the federated services write to.

MethodPathWhat it doesWho calls it
GET/v1/activityThe live event stream behind the Property tab, and the ledger every action lands in.operator
POST/v1/events/sinkA federated service writes an event into the log.service

The guided walkthrough that runs both apps in one window.

MethodPathWhat it doesWho calls it
GET/v1/tourThe current tour state and step.tour
POST/v1/tour/startStart the tour from step one.tour
POST/v1/tour/advanceMove to the next step.tour
POST/v1/tour/stopStop the tour.tour

The core has no generated manifest yet. This list is kept by hand against core/src and pinned by a test.