shortrental.ai

Webhooks and REST API

Integrate Shortrental with anything — send events to your own systems, read data, push data back.

Updated: Apr 6, 2026

Every Shortrental workspace has API access on the AI and Scale plans.

Authentication

Generate an API key in Settings → Developers → API keys. Keys are scoped to the current workspace.

curl https://api.shortrental.ai/v1/reservations \
  -H "Authorization: Bearer sk_live_xxxxxxxxxxxx"

Common endpoints

  • GET /v1/reservations — list reservations, filter by date/listing/channel
  • GET /v1/reservations/{id} — full detail
  • POST /v1/messages — send a message to a guest
  • GET /v1/listings — listing catalog
  • POST /v1/tasks — create a task
  • GET /v1/financials — P&L by period

Full reference: api.shortrental.ai/reference

Rate limits

  • AI plan: 60 requests/minute, 10,000/day
  • Scale plan: 600 requests/minute, unlimited/day

Every response includes X-RateLimit-Remaining and X-RateLimit-Reset headers.

Webhooks

Receive real-time events at your endpoint. Configure in Settings → Developers → Webhooks.

Event types

  • reservation.confirmed
  • reservation.modified
  • reservation.cancelled
  • message.received
  • message.ai_replied
  • message.escalated
  • task.completed
  • review.received

Payload format

{
  "event": "reservation.confirmed",
  "workspace_id": "ws_abc123",
  "created_at": "2026-04-17T14:30:00Z",
  "data": {
    "reservation_id": "res_xyz789",
    "listing_id": "list_def456",
    "guest": { "id": "g_ghi012", "name": "Sarah Johnson" },
    "check_in": "2026-05-11",
    "check_out": "2026-05-14",
    "total": 540,
    "currency": "EUR",
    "channel": "airbnb"
  }
}

Signature verification

Every webhook includes an X-Shortrental-Signature header. Verify with HMAC-SHA256 using your webhook secret:

import crypto from "node:crypto";

function verify(body: string, signature: string, secret: string) {
  const hmac = crypto.createHmac("sha256", secret);
  hmac.update(body);
  const expected = hmac.digest("hex");
  return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected));
}

SDKs

  • Node/TypeScript: npm i @shortrental/sdk
  • Python: pip install shortrental-sdk
  • Go: go get github.com/shortrental-ai/go-sdk

Or just use fetch / requests — the API is a standard REST interface.