Changelog
This page tracks notable changes to the API and to this documentation site. New entries are added to the top as they ship.
2026-09-22 — Error handling, rate limits, and webhooks filled in from source
Section titled “2026-09-22 — Error handling, rate limits, and webhooks filled in from source”- Rewrote Error Handling with the real
{"code", "message"}envelope and every known error code (item_not_found,room_type_not_found,invalid_status_transition, etc.), sourced from the backend’s exception handler and services, not yet inopenapi.json - Rewrote Rate Limits: confirmed 300 requests/minute per credential, shared across all endpoints, for both the Third-Party and Channel Manager APIs
- Rewrote Webhooks: confirmed payload shape, the
X-RestroLab-Timestampheader (previously an open question), exact retry/backoff behavior, and the 10-second delivery timeout - Channel Manager Overview now documents real request/response field shapes for all 7 PMS endpoints, sourced from the backend’s views and serializers — the generated spec itself still has no request/response schemas for these
- Corrected a real inaccuracy: earlier pages implied each tenant has its own domain (
YOUR-TENANT-DOMAIN). Confirmed from the backend that there’s actually one shared API host for every tenant — the tenant is resolved purely from the credential, never from the URL. Fixed across the homepage, Quickstart, Authentication, First Request, and API Overview. - Scope note: the backend also exposes a richer, owner-facing Channel Manager schema (connections, sync jobs, reconciliation, credential management) gated behind an internal JWT. That schema is intentionally not published here — this site only documents the
AllowAnypartner-facing surface.
2026-09-22 — Channel Manager documentation added
Section titled “2026-09-22 — Channel Manager documentation added”- New Channel Manager section: Overview, Authentication, and an interactive API Reference for the RestroLab Channel Manager — PMS Integration API (
/v1/channel-manager/pms/*) - New spec file
public/channel-manager/openapi.json, pulled from the backend’s/channel-manager/pms/schema/endpoint, with its ownnpm run lint:openapi:channel-managervalidation script - This is a separate, independent API contract from the Third-Party Integration API documented elsewhere on this site — different credentials (
X-PMS-API-Key/X-PMS-API-Secret), different base path, own OpenAPI document - Flagged as early-stage: the generated spec doesn’t yet model request/response bodies or a security scheme for any operation — see the
TODOmarkers on the new pages
Initial Release
Section titled “Initial Release”This is the initial public release of this documentation portal, scoped to the RestroLab Third-Party Integration API (/v1/third-party/*).
- Interactive API Reference (Scalar), generated from the real
openapi.json(RestroLab Third-Party Integration API v1.0.0) - Getting Started guides: Quickstart, Authentication (owner JWT + partner
X-API-Key/X-API-Secret), Your First Request - Developer guides: Pagination (unpaginated list endpoints), Error Handling, Rate Limits, Webhooks (signature verification, retries, idempotency)
- Known gaps flagged for the backend team:
X-API-Key/X-API-Secretnot yet modeled as a formalsecurityScheme; error response bodies and the webhook signature’s timestamp header not yet in the spec
To add a new entry, insert a new ## section above this line with the date and a bulleted summary of what changed, for example:
## 2026-10-01
- Added `GET /v1/third-party/hotels/{room_type_id}/` endpoint- Documented webhook payload bodies now that they're in the spec