Skip to content
Log in
API Overview

API Overview

Use the Veridien API to build your own direct reservation website, guest app, loyalty integration, or back-office automation on top of your property's data: availability and rates, guests and loyalty, reservations, and folios. It runs on the same engine as Veridien's own reservation flows.

It is a plain HTTP and JSON API. You authenticate with an API key, send and receive JSON, and read standard status codes. Everything is scoped to one property, so a key can only read or change the data of the property it belongs to.

Built for real apps

This API drives the live booking and loyalty flow for Veridien properties end to end: search availability, hold inventory, register a guest, confirm a reservation, post folio charges, and earn or redeem loyalty points. Follow the Quickstart to run that whole flow yourself.

Base URL

Every request goes to one versioned base URL:

https://veridien.app/api/v1

Each path in this reference is relative to that base. The health check, for example, is https://veridien.app/api/v1/health.

Authentication

You authenticate with a Bearer API key in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Each key is bound to one property and carries a set of scopes that decide which endpoints it may call. You create and revoke keys in the dashboard under Settings → API keys. The public meta endpoints (/health, /openapi.json) need no key; everything else does.

See Authentication for the key format, the full scope list, and a working example.

Conventions at a glance

  • JSON in, JSON out. Send Content-Type: application/json on requests with a body. Field names are snake_case (room_type_id, check_in_date).
  • Money is strings. Amounts are decimal strings with two places ("249.00"), so nothing is lost to floating-point rounding. Currency is a 3-letter ISO code.
  • Dates are strings. Calendar dates are YYYY-MM-DD. Timestamps are ISO 8601 (2026-06-19T08:30:00.000Z).
  • Errors are uniform. Every failure returns the same error envelope with a machine-readable code and a request_id.
  • Retries are safe. Requests that change data accept an Idempotency-Key, so a retry never double-books or double-charges.

The full rules are in Conventions.

What you can do

AreaEndpoints
CatalogProperty details, room types, availability, rates, and add-on services. See Property and catalog.
OffersList public rate plans and packages, and validate a promotion code before you quote it. See Offers and promo codes.
Rate managementCreate and edit rate plans, promotions, seasonal intervals, inclusions, and promo codes. See Rate management.
GuestsRegister or link a guest, read and update profiles, read loyalty, redeem points. See Guests and loyalty.
ReservationsHold inventory, confirm a hold into a reservation, list and read reservations, cancel. See Reservations.
FoliosRead a reservation's folio and post charges to it. See Folios.

Versioning

The API is versioned in the path (/api/v1). Changes that would break an existing integration ship under a new version; additive changes (new endpoints, new optional fields) are made within v1. Treat unknown response fields as additive and ignore them rather than failing.

OpenAPI schema

You can fetch a machine-readable OpenAPI 3.1 description of every endpoint, without a key, at:

GET https://veridien.app/api/v1/openapi.json

Use it to generate typed clients or to check which endpoints are deployed. The response carries an ETag, so a repeat request with If-None-Match gets a 304 with no body.