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 /propertyReturns 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"
}| Field | Type | Notes |
|---|---|---|
id | string | Property identifier. |
slug | string | URL slug. |
name | string | Display name. |
currency | string | The property's base currency (ISO 4217). |
timezone | string | IANA time zone, used for "today" in rate windows. |
List room types
GET /room-typesScope: 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 /availabilityScope: 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 parameter | Required | Notes |
|---|---|---|
check_in | yes | YYYY-MM-DD. |
check_out | yes | YYYY-MM-DD, after check_in. Stays are capped at 30 nights. |
adults | yes | Integer ≥ 1. |
children | no | Integer ≥ 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 /ratesScope: 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 parameter | Required | Notes |
|---|---|---|
check_in | yes | YYYY-MM-DD. |
check_out | yes | YYYY-MM-DD, after check_in. |
adults | yes | Integer ≥ 1. |
children | no | Integer ≥ 0, default 0. |
guest_id | no | Unlocks guest-specific rates (local-verified, loyalty-tier). |
promo_code | no | Unlocks 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).
Related pages
- Reservations — turn a rate into a hold and a confirmed reservation.
- Rate Plans — how rate plans and seasonal intervals are configured.