Recipes
Sync reservations
Load every booking once, then only what changed, for contracts, accounting or a guest portal.
A contract system, an accounting package or a guest portal wants every booking once and then only what changed. List reservations does both, and a webhook says when to ask.
The initial load
Page through everything, sorted by updatedAt, a hundred at a time. The order is
stable (the sort key, then id) and total counts the same filters, so you know when you
are done without probing past the end.
Request
curl "https://go.quarters.live/api/v1/reservations?sort=updatedAt&limit=100" \
-H "Authorization: Bearer $ACCESS_TOKEN"Keep the updatedAt of the last row you stored. That is your cursor.
Incremental sync
From then on ask for bookings changed at or after the cursor. Because the bound is inclusive you
will see the last row again; that is deliberate, and harmless if your write is an upsert on id.
Request
curl "https://go.quarters.live/api/v1/reservations?updatedSince=2026-09-13T06:00:00.000Z&sort=updatedAt&limit=100" \
-H "Authorization: Bearer $ACCESS_TOKEN"Run it on a schedule, and run it when a reservation.created, reservation.updated or reservation.deleted webhook arrives. The webhook carries the id, so for a single change retrieving that one booking is enough; the scheduled sync is
the safety net for a delivery that did not land.
What the statuses mean
inquiry: a request. Blocks nothing; may become a booking or be dropped.reserved: held. The days are blocked; the contract is usually not signed yet.confirmed: firm. When the bookingrequiresContract, this is the moment the agreement was completed.cancelled: released. The days are free again from the moment of cancellation.
The lifecycle stamps (inquiredAt, reservedAt, confirmedAt, cancelledAt) record when each status was entered and are never cleared, so a
cancelled booking still says when it was confirmed.
What the record carries
pricingis the money as agreed when the booking was made. A later rate change on the listing never rewrites it.monthlyCentsis rent, utilities and furniture added, when all three are set.propertyis the flat’s identity as it stands today: name, address and owner, what a tenancy agreement must state. Marketing content stays behind the publish boundary and comes from listings.agreementis the current contract, or null. Itsstatusanddocumentsay whether it is signed and archived.dashboardUrlopens the same booking in the dashboard. Put it in the alert email or the back-office record so a person can get there in one click.