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

Reservations

List reservations

GET /api/v1/reservations

Offset pagination on a stable order: the sort key, then id. total counts the same filters, so you can page to the end without probing.

Query parameters

ParameterInTypeDescription
status querystringComma-separated: inquiry, reserved, confirmed, cancelled. Default all.
propertyId querystringOne property.
checkInFrom querydateInclusive lower bound on check-in. YYYY-MM-DD
checkInTo querydateInclusive upper bound on check-in. YYYY-MM-DD
checkOutFrom querydateInclusive lower bound on check-out. YYYY-MM-DD
checkOutTo querydateInclusive upper bound on check-out. YYYY-MM-DD
updatedSince querytimestampOnly bookings changed at or after this instant. The incremental-sync filter: keep the updatedAt of the last row you saw and ask from there. ISO 8601
sort queryenumDefault checkIn. "checkIn""checkOut""updatedAt""createdAt"
order queryenumDefault asc. "asc""desc"
limit queryinteger1–100, default 25. 1–100
skip queryintegerRows to skip, default 0. min 0

Response

200 { reservations: Reservation[], total: integer, limit: integer, skip: integer }

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
400invalid_requestAn unknown status, a malformed date or timestamp, a sort key that does not exist.

Request

curl "https://go.quarters.live/api/v1/reservations?status=reserved,confirmed&checkInFrom=2026-10-01&limit=50" \
  -H "Authorization: Bearer $ACCESS_TOKEN"

Response · 200

{
  "reservations": [
    {
      "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"
    }
  ],
  "total": 132,
  "limit": 50,
  "skip": 0
}