SOUTHEAST BUILDINGSClemson · Lake Hartwell

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

GET/api/v1/propertiesList all active properties
GET/api/v1/properties/{slug}Property detail + seasonal rates
GET/api/v1/properties/{slug}/availabilityPer-night availability & pricing
POST/api/v1/quotesPrice a stay and check availability
GET/api/v1/bookingsList bookings (filter by status/property/date)
POST/api/v1/bookingsCreate a booking (write scope)
GET/api/v1/bookings/{code}Look up a booking
PATCH/api/v1/bookings/{code}Confirm / cancel / annotate (write scope)
GET/api/v1/ha/summaryHome Assistant occupancy summary
POST/api/v1/sync/icalPull external iCal feeds now (write scope)
GET/api/v1/calendar/{slug}.icsPublic iCal feed for Airbnb/VRBO import

Create 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
          - totals

AI 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.