Launching soon.Get early access
Veridien Docs
API Reference

Property & Catalog

The catalog endpoints are read-only and describe what you can sell: the property itself, its room types, real-time availability, and the rate plans a guest is eligible to book.


Get the property

GET /property

Returns metadata for the property the key is bound to. Any authenticated key may call it.

curl "$VRDN_BASE/property" -H "Authorization: Bearer $VRDN_KEY"
{
  "id": "p_8f2a1c",
  "slug": "belena-maldives",
  "name": "Belena Maldives",
  "currency": "USD",
  "timezone": "Indian/Maldives"
}
FieldTypeNotes
idstringProperty identifier.
slugstringURL slug.
namestringDisplay name.
currencystringThe property's base currency (ISO 4217).
timezonestringIANA time zone, used for "today" in rate windows.

List room types

GET /room-types

Scope: availability:read

Every room type with merchandising data — description, occupancy, base rate, amenities, and photos (primary photo first).

curl "$VRDN_BASE/room-types" -H "Authorization: Bearer $VRDN_KEY"
{
  "data": [
    {
      "id": "rt_deluxe",
      "name": "Deluxe Ocean Villa",
      "description": "A private villa over the lagoon.",
      "max_occupancy": 3,
      "base_rate": "420.00",
      "currency": "USD",
      "amenities": ["Ocean view", "Private deck"],
      "photos": ["https://cdn.veridien.app/p_8f2a1c/deluxe-1.jpg"]
    }
  ]
}

Search availability

GET /availability

Scope: availability:read

The minimum number of rooms available across every night of the range, per room type. Only room types whose max_occupancy fits the party are returned.

Query parameterRequiredNotes
check_inyesYYYY-MM-DD.
check_outyesYYYY-MM-DD, after check_in. Stays are capped at 30 nights.
adultsyesInteger ≥ 1.
childrennoInteger ≥ 0, default 0.
curl "$VRDN_BASE/availability?check_in=2026-08-01&check_out=2026-08-04&adults=2" \
  -H "Authorization: Bearer $VRDN_KEY"
{
  "check_in": "2026-08-01",
  "check_out": "2026-08-04",
  "data": [
    { "room_type_id": "rt_deluxe", "name": "Deluxe Ocean Villa", "max_occupancy": 3, "available": 4, "base_rate": "420.00", "currency": "USD" }
  ]
}

available is the number you can still book — 0 means sold out for at least one night in the range.


Search rates

GET /rates

Scope: availability:read

Each room type with its visible rate plans and a per-night price breakdown for the range. This is the endpoint a booking engine renders.

Query parameterRequiredNotes
check_inyesYYYY-MM-DD.
check_outyesYYYY-MM-DD, after check_in.
adultsyesInteger ≥ 1.
childrennoInteger ≥ 0, default 0.
guest_idnoUnlocks guest-specific rates (local-verified, loyalty-tier).
promo_codenoUnlocks promo-gated rates.

Visibility is enforced server-side

Rate plans can carry rules: local-residents-only, requires a promo code, minimum stay, advance-purchase window, or a loyalty tier. The API evaluates these against the request context and returns only the plans the guest is eligible for. The same rules are re-checked when you create a hold, so a plan that was never shown cannot be booked by id.

curl "$VRDN_BASE/rates?check_in=2026-08-01&check_out=2026-08-04&adults=2&promo_code=SUMMER" \
  -H "Authorization: Bearer $VRDN_KEY"
{
  "check_in": "2026-08-01",
  "check_out": "2026-08-04",
  "data": [
    {
      "room_type_id": "rt_deluxe",
      "name": "Deluxe Ocean Villa",
      "description": "A private villa over the lagoon.",
      "max_occupancy": 3,
      "amenities": ["Ocean view", "Private deck"],
      "photos": ["https://cdn.veridien.app/p_8f2a1c/deluxe-1.jpg"],
      "rate_plans": [
        {
          "rate_plan_id": "rp_flex",
          "name": "Flexible",
          "currency": "USD",
          "total": "1260.00",
          "nightly_rates": [
            { "date": "2026-08-01", "day_of_week": 6, "rate": "420.00", "source": "base_price" },
            { "date": "2026-08-02", "day_of_week": 0, "rate": "420.00", "source": "base_price" },
            { "date": "2026-08-03", "day_of_week": 1, "rate": "420.00", "source": "base_price" }
          ]
        }
      ]
    }
  ]
}

Each nightly rate reports its source: interval when a seasonal interval set the price for that day, or base_price when it fell back to the plan's base price. total is the sum of the nightly rates (taxes are added when you create the hold).

  • Reservations — turn a rate into a hold and a confirmed reservation.
  • Rate Plans — how rate plans and seasonal intervals are configured.