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.
| Method | Path | What it does | Who calls it |
|---|---|---|---|
| POST | /v1/recognize | Recognize a guest from a confirmation code or link and open a session. | guest |
| POST | /v1/stays/:stay_id/consent | Record the remember choice for this stay. | guest |
| GET | /v1/stays/:stay_id/context | Read the stay record the platform holds. | guest |
| GET | /v1/stays/:stay_id/home | The Concierge home: chips, the usher line, open offers, requests. | guest |
| GET | /v1/confirmation/:code | Render the confirmation the guest was sent. | guest |
One route carries the conversation. It answers with a line and typed cards.
| Method | Path | What it does | Who calls it |
|---|---|---|---|
| POST | /v1/stays/:stay_id/concierge | Answer 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.
| Method | Path | What it does | Who calls it |
|---|---|---|---|
| POST | /v1/requests | Place a request: dining, spa, housekeeping, luggage, concierge. | guest |
| POST | /v1/requests/:id/claim | A staff member takes the request. | operator |
| POST | /v1/requests/:id/complete | Mark the request done, with a note. | operator |
| POST | /v1/requests/:id/decline | Decline the request, with the reason. | operator |
| POST | /v1/requests/:id/assign | Hand a claimed request to a named staff member. Who handed it off and when stay on the request. | operator |
| GET | /v1/queues | List the queues and their open counts. | operator |
| GET | /v1/queues/:id/requests | The requests in one queue. | operator |
| GET | /v1/staff | The staff roster for claiming. | operator |
| POST | /v1/federation/porter/escalations | QR 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.
| Method | Path | What it does | Who calls it |
|---|---|---|---|
| GET | /v1/stays/:stay_id/service-prefs | Read the guest's room preferences: knock style, towel cadence, quiet until. | guest |
| PUT | /v1/stays/:stay_id/service-prefs | Set the room preferences once for the stay. | guest |
| DELETE | /v1/stays/:stay_id/service-prefs | Clear the preferences and go back to the property default. | guest |
| GET | /v1/housekeeping/board | The floor board: every room, its state, its open window, and its attendant. | operator |
| GET | /v1/housekeeping/route | One attendant's route, re-sorted toward rooms that are empty, with the reason per move. | operator |
| POST | /v1/housekeeping/rooms/:room_number/serviced | Mark a room serviced. The guest gets a note on the Concierge. | operator |
| POST | /v1/housekeeping/rooms/:room_number/dnd | Set 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.
| Method | Path | What it does | Who calls it |
|---|---|---|---|
| GET | /v1/openings | Open capacity the property can offer right now. | operator |
| GET | /v1/offers | Offers and their status. | operator |
| POST | /v1/offers | Create an offer from an opening. | operator |
| POST | /v1/offers/:id/approve | Approve a send that was waiting on the GM. | operator |
| POST | /v1/offers/:id/reject | Reject a waiting send, with the reason. | operator |
| POST | /v1/offers/:id/close | Close an offer before it expires. | operator |
| POST | /v1/offers/instances/:id/accept | The guest accepts an offer on the Concierge. | guest |
| GET | /v1/offers/plays | The offer plays the Usher can run. | operator |
| GET | /v1/offers/preview | Preview who an offer would reach before sending. | operator |
| POST | /v1/federation/porter/upsells | QR Find proposes a suggestion it heard in a question. The guest sees it in the Concierge. | service |
| POST | /v1/porter-upsells/:id/open | The guest taps the suggestion. Recorded once. | guest |
A guest invites their crew with a join code and plans activities together.
| Method | Path | What it does | Who calls it |
|---|---|---|---|
| POST | /v1/groups | Start a group and get a join code. | guest |
| POST | /v1/groups/join | Join a group with its code. | guest |
| POST | /v1/groups/:id/leave | Leave the group. | guest |
| POST | /v1/groups/:id/activities | Propose an activity to the group. | guest |
| POST | /v1/group-activities/:id/book | Book the activity for the group. | guest |
| POST | /v1/group-activities/:id/attendance | Say who is coming. | guest |
| GET | /v1/groups/summary | Groups on property today, for the operator. | operator |
The last morning: luggage hold, the offer to return, what is still open.
| Method | Path | What it does | Who calls it |
|---|---|---|---|
| GET | /v1/last-day/summary | Who leaves today and what the property can still do for them. | operator |
The digital twin: counts and a live stream of real events.
| Method | Path | What it does | Who calls it |
|---|---|---|---|
| GET | /v1/property/summary | Counts across stays, requests, offers and groups, for the Property tab. | operator |
What waits on the GM, and the acknowledgements that clear it.
| Method | Path | What it does | Who calls it |
|---|---|---|---|
| GET | /v1/gm/feed | Sends over the approval threshold and vendor notices waiting on the GM. | operator |
| POST | /v1/gm/acks | The GM acknowledges a notice. | operator |
The number that matters, and a CSV to take to the meeting.
| Method | Path | What it does | Who calls it |
|---|---|---|---|
| GET | /v1/report | Requests, offers accepted, revenue, by day. | operator |
| GET | /v1/report/export.csv | The same report as CSV. | operator |
The event log the ledger reads from, and the sink the federated services write to.
| Method | Path | What it does | Who calls it |
|---|---|---|---|
| GET | /v1/activity | The live event stream behind the Property tab, and the ledger every action lands in. | operator |
| POST | /v1/events/sink | A federated service writes an event into the log. | service |
The guided walkthrough that runs both apps in one window.
| Method | Path | What it does | Who calls it |
|---|---|---|---|
| GET | /v1/tour | The current tour state and step. | tour |
| POST | /v1/tour/start | Start the tour from step one. | tour |
| POST | /v1/tour/advance | Move to the next step. | tour |
| POST | /v1/tour/stop | Stop the tour. | tour |
The core has no generated manifest yet. This list is kept by hand against core/src and pinned by a test.