Bookings
Create many bookings at once, optionally tied together as a block booking. Supports per-row override (void/checkout an existing live booking on the same room).
Default Response
No content
POST /bookings/bulk HTTP/1.1
Host: api.kitehouse.co.uk
Content-Type: application/json
Accept: */*
Content-Length: 304
{
"site": "text",
"contract_start": "text",
"contract_end": "text",
"flags": [
"text"
],
"notes": "text",
"block": {
"name": "text",
"notes": "text"
},
"assignments": [
{
"person_id": "text",
"location_id": "text",
"additional_people": [
"text"
],
"override": {
"conflict_booking_id": "text",
"action": "void",
"cancellation_code": "text"
}
}
]
}Default Response
No content
List bookings for a site.
Default Response
No content
GET /bookings?site=text HTTP/1.1
Host: api.kitehouse.co.uk
Accept: */*
Default Response
No content
Create a booking.
Default Response
No content
POST /bookings HTTP/1.1
Host: api.kitehouse.co.uk
Content-Type: application/json
Accept: */*
Content-Length: 375
{
"site": "text",
"lead_person": "text",
"additional_people": [
"text"
],
"location": "text",
"status": "checked_in",
"contract_start": "text",
"contract_end": "text",
"vehicle_registration": "text",
"parking_expiry_at": "text",
"departure_slot_at": "text",
"flags": [
"text"
],
"notes": "text",
"block_booking": "text",
"override": {
"conflict_booking_id": "text",
"action": "void",
"cancellation_code": "text"
}
}Default Response
No content
Retrieve a single booking.
Default Response
No content
GET /bookings/{bookingId}?site=text HTTP/1.1
Host: api.kitehouse.co.uk
Accept: */*
Default Response
No content
Update a booking (metadata only — use /transitions to change status).
Default Response
No content
PATCH /bookings/{bookingId} HTTP/1.1
Host: api.kitehouse.co.uk
Content-Type: application/json
Accept: */*
Content-Length: 233
{
"site": "text",
"lead_person": "text",
"additional_people": [
"text"
],
"location": "text",
"contract_start": null,
"contract_end": null,
"vehicle_registration": null,
"parking_expiry_at": null,
"departure_slot_at": null,
"flags": [
"text"
],
"notes": null
}Default Response
No content
Export bookings as CSV.
Default Response
No content
GET /bookings/export?site=text HTTP/1.1
Host: api.kitehouse.co.uk
Accept: */*
Default Response
No content
Preview a CSV import: resolves people, locations, status inference and conflicts without writing.
Default Response
No content
POST /bookings/import/preview HTTP/1.1
Host: api.kitehouse.co.uk
Content-Type: application/json
Accept: */*
Content-Length: 315
{
"site": "text",
"rows": [
{
"row_index": 1,
"values": {
"student_id": "text",
"first_name": "text",
"last_name": "text",
"email": "text",
"room": "text",
"contract_start": "text",
"contract_end": "text",
"vehicle_registration": "text",
"parking_expiry": "text",
"departure_slot": "text",
"notes": "text",
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
]
}Default Response
No content
Commit a previously-previewed CSV import with user decisions applied.
Default Response
No content
POST /bookings/import/commit HTTP/1.1
Host: api.kitehouse.co.uk
Content-Type: application/json
Accept: */*
Content-Length: 395
{
"site": "text",
"idempotency_key": "text",
"rows": [
{
"row_index": 1,
"values": {
"student_id": "text",
"first_name": "text",
"last_name": "text",
"email": "text",
"room": "text",
"contract_start": "text",
"contract_end": "text",
"vehicle_registration": "text",
"parking_expiry": "text",
"departure_slot": "text",
"notes": "text",
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
],
"resolutions": [
{
"ANY_ADDITIONAL_PROPERTY": "anything"
}
]
}Default Response
No content
Record a state transition / transaction on a booking.
Default Response
No content
POST /bookings/{bookingId}/transitions HTTP/1.1
Host: api.kitehouse.co.uk
Content-Type: application/json
Accept: */*
Content-Length: 125
{
"site": "text",
"type": "check_in",
"occurred_at": "text",
"notes": "text",
"cancellation_code": "text",
"cancellation_reason": "text"
}Default Response
No content
List all transactions for a booking.
Default Response
No content
GET /bookings/{bookingId}/transactions?site=text HTTP/1.1
Host: api.kitehouse.co.uk
Accept: */*
Default Response
No content
Last updated
Was this helpful?

