# Changelog

## Our compatibility promise

The API is versioned by date. The current version is **`2026-08-01`**, and it
appears in the OpenAPI document and in every webhook payload as `api_version`.

**We will not make a breaking change within a version.** That is enforced
mechanically, not by good intentions: every pull request diffs the specification
against the released one and the build fails on any breaking change. If we need
one, it ships as a new version and the old one keeps working.

### What we consider breaking

- Removing an endpoint, a field or an enum value
- Making an optional request parameter required
- Narrowing an accepted value, or changing a field's type
- Changing the meaning of an existing field

### What we may do at any time

- **Add** a new endpoint, an optional parameter, or a response field
- **Add** a new enum value to an existing field
- **Add** a new error `code`
- **Add** a new webhook event type

So write a tolerant client: ignore fields you do not recognise rather than
rejecting the payload, and treat an unfamiliar enum value or error code as a
default case rather than a crash. Those two habits are the difference between an
integration that survives our improvements and one that breaks on them.

---

## 2026-08-01 — Initial release

The first public version.

**Resources**

- `GET /v1/me` — introspect the calling credential
- `GET /v1/properties`, `GET /v1/properties/{id}`
- `GET /v1/reservations`, `GET /v1/reservations/{id}` — guest identity behind
  `reservations:guest_read`
- `GET`/`POST`/`PATCH`/`DELETE /v1/blocks`, plus `POST /v1/blocks/batch`
- `GET /v1/calendar`, `PUT /v1/calendar` for bulk price and restriction updates
- `GET`/`POST`/`PATCH`/`DELETE /v1/webhooks`, secret rotation, delivery log and
  replay
- `GET /v1/events` — the durable event log

**Platform**

- Cursor pagination with `updated_after` delta filters on every list endpoint
- `Idempotency-Key` required on all writes, replayed for 24 hours
- Per-integration rate limits with `X-RateLimit-*` headers
- HMAC-SHA256 signed webhooks with a rotation grace window
- Scoped access with an optional per-property restriction
