Logging escape times
What a room's Records escape times setting does, and the two ways to log a session's result: from the dashboard, or from your own system through the API.
What the setting does#
Each room has a Records escape times setting on its page under Rooms. It is off for a new room, and only the venue's owner can change it.
- Off: a confirmed booking counts as played for its players as soon as the session ends. No times are kept, so the room adds nothing to escape rates or best times.
- On: your team logs each session's result: whether the group escaped, and how long they played. A logged result counts at once and feeds the leaderboards, escape rates and best times. A session nobody logs still counts as played 24 hours after it ends, just without a time.
Only players who are registered on the booking are credited. Guests added by name are not.
From the dashboard#
Open the booking
After the session, open its booking under DashboardOperateBookings in your dashboard.Enter the result
Under Escape time, choose Escaped or Did not escape, and enter how long they played.Log it
Choose Log result.
Anyone on your venue's staff can log a result, once per booking. It can't be changed afterwards, so check the time before saving. The form appears for confirmed bookings once the session has started, in rooms that record escape times.
From your own system, through the API#
If your room already times its games (a game master app, a timer, your own booking system), it can send each result to MyEscapeRoom itself. This is the same call the dashboard makes.
Sign in
bash# 1. Sign in with your dashboard email and password. The session # cookie lands in cookies.txt; send it with every call after this. curl -s -c cookies.txt \ -H "Content-Type: application/json" \ -d '{"email":"you@your-venue.com","password":"your-dashboard-password"}' \ https://dashboard.myescaperoom.eu/api/staff/auth/sign-in/emailSign in at the start of each run: a session does not last forever, and an expired one answers
401.Find the booking
bash# 2. Your venue's id, then its bookings (newest session first). curl -s -b cookies.txt https://dashboard.myescaperoom.eu/api/staff/me curl -s -b cookies.txt "https://dashboard.myescaperoom.eu/api/staff/venues/VENUE_ID/bookings?limit=50"Each booking in the list has an
id(use this one, not theBK-…reference), its room and its session times.Log the result
bash# 3. Log how the group did: escaped, in 52 minutes 10 seconds. curl -s -b cookies.txt \ -H "Content-Type: application/json" \ -d '{"bookingId":"BOOKING_ID","escaped":true,"durationSec":3130}' \ https://dashboard.myescaperoom.eu/api/sessions/outcomes
Fields#
bookingId(string, required): the booking'sid. The venue and room come from the booking.escaped(boolean, required): whether the group got out.durationSec(whole number, required): how long they played, in seconds, from 1 to 86,400. For a group that escaped, this is their time.
Answers#
| Response | Meaning |
|---|---|
201 { id } | Logged. The leaderboards pick it up at their next recalculation. |
201 { id: null } | The booking already had a result. The first one stands; nothing changed. |
400 INVALID_JSON | The body is not JSON. |
400 INVALID_INPUT | A field is missing or out of range; the answer's issues list says which. |
401 UNAUTHORIZED | No session, or it expired. Sign in again. |
403 FORBIDDEN | Your account is not staff at the booking's venue. |
403 ONBOARDING_REQUIRED | You are an owner who has not finished onboarding the venue yet. Finish it first. |
404 BOOKING_NOT_FOUND | No booking has that id. |
409 BOOKING_NOT_CONFIRMED | The booking is not confirmed (it is pending, cancelled or expired). Only a confirmed booking takes a result. |
The API accepts a result for any room at your venue, but only for a confirmed booking. Results for a room with Records escape times off are kept too, and count the same way.