Skip to content
Quarters Developers
esc
  • Type an endpoint, an object or a word from a guide.

Reservations

Retrieve one reservation

GET /api/v1/reservations/{id}

The booking with its guest, the property’s identity, the money as agreed at booking time, and the current agreement if there is one. dashboardUrl opens the same record in the dashboard, for an alert email or a back-office link.

Path parameters

ParameterInTypeDescription
id requiredpathstringThe reservation id, from the list or a webhook.

Response

200 { reservation: Reservation }

Reservation fields
FieldTypeDescription
id stringOpaque.
status ReservationStatus
propertyId string
property PropertyIdentity
guest Guest
checkIn date YYYY-MM-DD
checkOut dateExclusive: the handover is at noon that day. YYYY-MM-DD
nights integerCheck-out minus check-in.
adults integer | null
children integer | null
infants integer | null
pets boolean
pricing objectSnapshotted when the booking was made. A later rate change on the listing never rewrites an agreed booking.
currency "EUR"
rentCents integer | nullMonthly rent as agreed. Integer euro-cents.
utilitiesCents integer | nullMonthly utilities as agreed. Integer euro-cents.
furnitureCents integer | nullMonthly furniture fee as agreed. Integer euro-cents.
monthlyCents integer | nullRent + utilities + furniture, when all three are set. Integer euro-cents.
depositCents integer | nullSecurity deposit as agreed. Integer euro-cents.
minStayMonths integer | nullWhat the agreement states as the minimum term.
requiresContract booleanWhether this booking needs a signed agreement before it counts as confirmed. Resolved once, at booking time.
invoicePaid boolean
agreement Agreement | null
dashboardUrl urlOpens the same record in the dashboard, for an alert email or a back-office link.
inquiredAt timestamp | nullWhen the status was entered. Never cleared. ISO 8601
reservedAt timestamp | nullWhen the status was entered. Never cleared. ISO 8601
confirmedAt timestamp | nullWhen the status was entered. Never cleared. ISO 8601
cancelledAt timestamp | nullWhen the status was entered. Never cleared. ISO 8601
createdAt timestamp ISO 8601
updatedAt timestampThe incremental-sync key: see updatedSince on the list. ISO 8601

Errors

Every failure is { error, message }; see Errors. A missing or expired bearer is a 401 on every endpoint but the token exchange.

StatuserrorWhen
404not_foundUnknown to your organisation.

Notes

  • pricing is snapshotted when the booking is made, so a later rate change on the listing never rewrites an agreed booking. monthlyCents is rent + utilities + furniture when all three are set.
  • nights is check-out minus check-in. minStayMonths is what the agreement states as the minimum term.
  • requiresContract says whether this booking needs a signed agreement before it counts as confirmed; it is resolved once at booking time.
  • The lifecycle stamps (inquiredAt, reservedAt, confirmedAt, cancelledAt) record when a status was entered and are never cleared.

Request

curl "https://go.quarters.live/api/v1/reservations/7c02…" \
  -H "Authorization: Bearer $ACCESS_TOKEN"

Response · 200

{
  "reservation": {
    "id": "7c02…",
    "status": "reserved",
    "propertyId": "0d6e1c2a-…",
    "property": {
      "id": "0d6e1c2a-…",
      "nickname": "JOR-1A",
      "slug": "jordaan-canal-loft",
      "address": {
        "street": "Prinsengracht 123",
        "postalCode": "1015 DX",
        "city": "Amsterdam",
        "country": "NL"
      },
      "ownerName": "A. de Vries",
      "timezone": "Europe/Amsterdam"
    },
    "guest": {
      "id": "e31f…",
      "firstName": "Sofia",
      "lastName": "Rossi",
      "name": "Sofia Rossi",
      "email": "sofia@example.com",
      "phone": "+39 333 000 0000",
      "company": null
    },
    "checkIn": "2026-10-01",
    "checkOut": "2027-04-01",
    "nights": 182,
    "adults": 2,
    "children": 0,
    "infants": 0,
    "pets": false,
    "pricing": {
      "currency": "EUR",
      "rentCents": 240000,
      "utilitiesCents": 15000,
      "furnitureCents": 25000,
      "monthlyCents": 280000,
      "depositCents": 240000,
      "minStayMonths": 6
    },
    "requiresContract": true,
    "invoicePaid": false,
    "agreement": null,
    "dashboardUrl": "https://go.quarters.live/cityretreat/reservations?reservation=7c02…",
    "inquiredAt": "2026-09-01T14:20:05.000Z",
    "reservedAt": "2026-09-08T09:58:40.000Z",
    "confirmedAt": null,
    "cancelledAt": null,
    "createdAt": "2026-09-01T14:20:05.000Z",
    "updatedAt": "2026-09-08T09:58:40.000Z"
  }
}