Reservations
Reservations represent guest bookings at properties. Includes guest info, financial breakdown, and booking metadata.
GET
/v1/reservationsList reservations with filtering
Query Parameters
limitintegerDefault: 50Max results
offsetintegerDefault: 0Pagination offset
statusstringPENDING, CONFIRMED, CANCELLED, POST_STAY
property_idstringFilter by property
check_in_afterdateFilter check-in after date (YYYY-MM-DD)
check_in_beforedateFilter check-in before date
sourcestringAIRBNB, BOOKING_COM, VRBO, DIRECT
updated_sincedatetimeOnly reservations updated after this ISO timestamp
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 }
}GET
/v1/reservations/:idGet a single reservation by 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": { ... } }POST
/v1/reservationsCreate a new reservation
Body Parameters
propertyIdstringRequiredProperty ID
checkIndateRequiredCheck-in date (YYYY-MM-DD)
checkOutdateRequiredCheck-out date (YYYY-MM-DD)
primaryGuestobjectRequired{ firstName, lastName?, email?, phone? }
occupancyobject{ adults, children, infants, pets }
financialsobject{ totalPrice, currency }
sourcestringAIRBNB, BOOKING_COM, VRBO, DIRECT, MANUAL
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", ... } }PATCH
/v1/reservations/:idUpdate a reservation (status, dates, notes, custom fields)
Body Parameters
statusstringPENDING, CONFIRMED, CANCELLED
checkIndateNew check-in date
checkOutdateNew check-out date
notesobject{ host?, guest? }
customFieldsobjectCustom field key-value pairs
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", ... } }AI