Developer API
Everything on this site is available over a REST API — properties, live availability, quotes, and bookings. It powers our own automations (Home Assistant, AI agents, channel sync) and it can power yours. The machine-readable spec lives at /api/openapi.json.
Authentication
Create an API key in the admin dashboard (/admin/api-keys), then send it on every request. Keys carry read and/or write scopes. All money values are integer USD cents; all dates are YYYY-MM-DD.
curl https://yourdomain.com/api/v1/properties \
-H "Authorization: Bearer seb_your_key_here"Endpoints
/api/v1/properties— List all active properties/api/v1/properties/{slug}— Property detail + seasonal rates/api/v1/properties/{slug}/availability— Per-night availability & pricing/api/v1/quotes— Price a stay and check availability/api/v1/bookings— List bookings (filter by status/property/date)/api/v1/bookings— Create a booking (write scope)/api/v1/bookings/{code}— Look up a booking/api/v1/bookings/{code}— Confirm / cancel / annotate (write scope)/api/v1/ha/summary— Home Assistant occupancy summary/api/v1/sync/ical— Pull external iCal feeds now (write scope)/api/v1/calendar/{slug}.ics— Public iCal feed for Airbnb/VRBO importCreate a booking
curl -X POST https://yourdomain.com/api/v1/bookings \
-H "Authorization: Bearer seb_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"property": "lakeview-cabin",
"checkIn": "2026-07-10",
"checkOut": "2026-07-13",
"guestName": "Jane Smith",
"guestEmail": "jane@example.com",
"guests": 4
}'Home Assistant
Poll the summary endpoint with a REST sensor, then automate door codes, thermostats, and arrival lighting off the attributes. Webhooks (configured in the admin) push booking.created / booking.confirmed / booking.cancelled events with an HMAC signature the moment they happen. The home automation guide walks through the full setup — template sensors, lock/climate/lighting automations, and webhook verification.
# configuration.yaml
rest:
- resource: https://yourdomain.com/api/v1/ha/summary
headers:
Authorization: "Bearer seb_your_key_here"
scan_interval: 300
sensor:
- name: "Rentals occupied tonight"
value_template: "{{ value_json.totals.occupiedTonight }}"
json_attributes:
- properties
- totalsAI agents (MCP)
This repo ships with an MCP server (mcp-server/) that exposes availability checks, quoting, and booking creation as tools for Claude and other MCP-compatible agents. See the project README for setup.