Docs/Documentation/Reservations

Cancel a Reservation

Cancel a reservation and handle the cancellation policy and refund logic.

Reservations

Reservations represent guest bookings at properties. Includes guest info, financial breakdown, and booking metadata.

List reservations with filtering

GET/v1/reservations

Request

curl https://api.repull.dev/v1/reservations \
  -H "Authorization: Bearer sk_test_YOUR_KEY" \
  -H "X-Workspace-Id: YOUR_WORKSPACE_ID"

Response

{
  "data": [
    {
      "id": "456",
      "propertyId": "123",
      "roomTypeId": "123",
      "status": "CONFIRMED",
      "source": "AIRBNB",
      "confirmationCode": "HM12345",
      "checkIn": "2026-06-01",
      "checkOut": "2026-06-05",
      "primaryGuest": {
        "firstName": "Sarah",
        "lastName": "Mitchell",
        "email": "sarah@example.com",
        "language": "en"
      },
      "occupancy": { "adults": 2, "children": 1, "infants": 0, "pets": 0 },
      "financials": {
        "totalPrice": 1800,
        "currency": "USD",
        "paymentStatus": "paid",
        "breakdown": {
          "basePrice": 1500,
          "cleaningFee": 150,
          "fees": [{ "type": "SERVICE_FEE", "amount": 100 }],
          "taxes": [{ "type": "LODGING_TAX", "amount": 50, "rate": 0.09 }],
          "discounts": []
        }
      },
      "bookedAt": "2026-05-15T09:00:00Z"
    }
  ],
  "pagination": { "total": 28, "limit": 50, "offset": 0, "hasMore": false }
}

Query Parameters

limitintegerDefault: 50

Max results

offsetintegerDefault: 0

Pagination offset

statusstring

PENDING, CONFIRMED, CANCELLED, POST_STAY

property_idstring

Filter by property

check_in_afterdate

Filter check-in after date (YYYY-MM-DD)

check_in_beforedate

Filter check-in before date

sourcestring

AIRBNB, BOOKING_COM, VRBO, DIRECT

updated_sincedatetime

Only reservations updated after this ISO timestamp

Get a single reservation by ID

GET/v1/reservations/:id

Request

curl https://api.repull.dev/v1/reservations/123 \
  -H "Authorization: Bearer sk_test_YOUR_KEY" \
  -H "X-Workspace-Id: YOUR_WORKSPACE_ID"

Response

{ "data": { ... } }

Create a new reservation

POST/v1/reservations

Request

curl -X POST https://api.repull.dev/v1/reservations \
  -H "Authorization: Bearer sk_test_YOUR_KEY" \
  -H "X-Workspace-Id: YOUR_WORKSPACE_ID" \
  -H "Content-Type: application/json" \
  -d '{
  "propertyId": "value",
  "checkIn": "...",
  "checkOut": "...",
  "primaryGuest": {},
  "occupancy": {},
  "financials": {},
  "source": "value"
}'

Response

{ "data": { "id": "789", "propertyId": "123", "status": "CONFIRMED", "confirmationCode": "DOM-ABC123", ... } }

Body Parameters

propertyIdstringRequired

Property ID

checkIndateRequired

Check-in date (YYYY-MM-DD)

checkOutdateRequired

Check-out date (YYYY-MM-DD)

primaryGuestobjectRequired

{ firstName, lastName?, email?, phone? }

occupancyobject

{ adults, children, infants, pets }

financialsobject

{ totalPrice, currency }

sourcestring

AIRBNB, BOOKING_COM, VRBO, DIRECT, MANUAL

Update a reservation (status, dates, notes, custom fields)

PATCH/v1/reservations/:id

Request

curl -X PATCH https://api.repull.dev/v1/reservations/123 \
  -H "Authorization: Bearer sk_test_YOUR_KEY" \
  -H "X-Workspace-Id: YOUR_WORKSPACE_ID" \
  -H "Content-Type: application/json" \
  -d '{
  "status": "value",
  "checkIn": "...",
  "checkOut": "...",
  "notes": {},
  "customFields": {}
}'

Response

{ "data": { "id": "789", "status": "CANCELLED", ... } }

Body Parameters

statusstring

PENDING, CONFIRMED, CANCELLED

checkIndate

New check-in date

checkOutdate

New check-out date

notesobject

{ host?, guest? }

customFieldsobject

Custom field key-value pairs

AI