Unterkunft und Katalog
Die Katalog-Endpunkte sind schreibgeschützt und beschreiben, was Sie verkaufen können: die Unterkunft selbst, ihre Zimmertypen, die Verfügbarkeit in Echtzeit und die Ratenpläne, die ein Gast buchen darf.
GET /propertyLiefert die Metadaten der Unterkunft, an die der Schlüssel gebunden ist. Jeder authentifizierte Schlüssel darf den Endpunkt aufrufen.
curl "$VRDN_BASE/property" -H "Authorization: Bearer $VRDN_KEY"{
"id": "p_8f2a1c",
"slug": "sunrise-bay",
"name": "Sunrise Bay Resort",
"currency": "USD",
"timezone": "Pacific/Fiji",
"child_max_age": 12,
"infant_max_age": 2
}| Feld | Typ | Hinweise |
|---|---|---|
id | string | Kennung der Unterkunft. |
slug | string | URL-Slug. |
name | string | Anzeigename. |
currency | string | Die Basiswährung der Unterkunft (ISO 4217). |
timezone | string | IANA-Zeitzone, bestimmt, was in Ratenfenstern als „heute“ gilt. |
child_max_age | integer | Gäste bis einschließlich dieses Alters werden als Kinder bepreist. |
infant_max_age | integer | Gäste bis einschließlich dieses Alters werden als Kleinkinder bepreist. |
GET /room-typesScope: availability:read
Jeder Zimmertyp mit seinen Vermarktungsdaten: Beschreibung, Belegung, Ausstattung, Bettkonfigurationen und Fotos (Hauptfoto zuerst).
curl "$VRDN_BASE/room-types" -H "Authorization: Bearer $VRDN_KEY"{
"data": [
{
"id": "9b2f6c3e-8d1a-4f5b-a7c9-4e0d2b8f1a63",
"name": "Deluxe Ocean Villa",
"description": "A private villa over the lagoon.",
"max_occupancy": 3,
"currency": "USD",
"amenities": ["Ocean view", "Private deck"],
"bed_configs": [{ "id": "bc_king", "label": "1 King" }],
"photos": ["https://cdn.veridien.app/p_8f2a1c/deluxe-1.jpg"]
}
]
}GET /availabilityScope: availability:read
Die kleinste Zahl verfügbarer Zimmer über alle Nächte des Zeitraums, je Zimmertyp. Zurückgegeben werden nur Zimmertypen, deren max_occupancy zur Personenzahl passt.
| Query-Parameter | Erforderlich | Hinweise |
|---|---|---|
check_in | ja | YYYY-MM-DD. |
check_out | ja | YYYY-MM-DD, nach check_in. Aufenthalte sind auf 30 Nächte begrenzt. |
adults | ja | Ganzzahl ≥ 1. |
children | nein | Ganzzahl ≥ 0, Standard 0. |
child_ages | nein | Kommagetrennte Kinderalter (z. B. 5,7). |
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": "9b2f6c3e-8d1a-4f5b-a7c9-4e0d2b8f1a63",
"name": "Deluxe Ocean Villa",
"description": "A private villa over the lagoon.",
"max_occupancy": 3,
"available": 4,
"currency": "USD",
"amenities": ["Ocean view", "Private deck"],
"bed_configs": [{ "id": "bc_king", "label": "1 King" }],
"photos": ["https://cdn.veridien.app/p_8f2a1c/deluxe-1.jpg"]
}
]
}available ist die Anzahl, die Sie noch buchen können. 0 bedeutet, dass mindestens eine Nacht im Zeitraum ausgebucht ist.
GET /ratesScope: availability:read
Jeder Zimmertyp mit seinen sichtbaren Ratenplänen und einer Preisaufschlüsselung pro Nacht für den Zeitraum. Das ist der Endpunkt, den eine Buchungsmaschine darstellt.
| Query-Parameter | Erforderlich | Hinweise |
|---|---|---|
check_in | ja | YYYY-MM-DD. |
check_out | ja | YYYY-MM-DD, nach check_in. |
adults | ja | Ganzzahl ≥ 1. |
children | nein | Ganzzahl ≥ 0, Standard 0. |
child_ages | nein | Kommagetrennte Kinderalter (z. B. 5,7). Wenn vorhanden, ist das die maßgebliche Kinderzahl und steuert die Bepreisung nach Altersklassen. |
guest_id | nein | Schaltet gastspezifische Raten frei (Einheimischen-Verifizierung, Treuestufe). |
promo_code | nein | Schaltet Raten frei, die hinter einem Promo-Code liegen. |
Die Sichtbarkeit wird serverseitig durchgesetzt
Ratenpläne können Regeln tragen: nur für Einheimische, Promo-Code erforderlich, Mindestaufenthalt, Vorausbuchungsfenster oder eine Treuestufe. Die API wertet diese gegen den Kontext der Anfrage aus und liefert nur die Pläne, für die der Gast berechtigt ist. Dieselben Regeln werden beim Anlegen eines Holds erneut geprüft, ein nie angezeigter Plan lässt sich also auch nicht über seine ID buchen.
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": "9b2f6c3e-8d1a-4f5b-a7c9-4e0d2b8f1a63",
"name": "Deluxe Ocean Villa",
"description": "A private villa over the lagoon.",
"max_occupancy": 3,
"base_occupancy": 2,
"amenities": ["Ocean view", "Private deck"],
"bed_configs": [{ "id": "bc_king", "label": "1 King" }],
"photos": ["https://cdn.veridien.app/p_8f2a1c/deluxe-1.jpg"],
"rate_plans": [
{
"rate_plan_id": "5c1e8f4a-2b7d-4a9c-8e6f-1d3b9a5c7e02",
"name": "Flexible",
"currency": "USD",
"total": "1260.00",
"room_subtotal": "1260.00",
"base_occupancy": 2,
"extra_guest_charge": "0.00",
"single_occupancy_discount": "0.00",
"extra_guest_total": "0.00",
"taxes_total": "0.00",
"tax_breakdown": [
{ "title": "GST", "amount": "135.00", "is_inclusive": true, "rate": "12", "kind": "percent" }
],
"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" }
]
}
]
}
]
}Jede Nachtrate nennt ihre source: interval, wenn ein Saisonintervall den Preis für diesen Tag gesetzt hat, oder base_price, wenn der Basispreis des Plans gegriffen hat.
Der Zimmertyp trägt base_occupancy (die Zahl der Gäste, die enthalten sind, bevor der Aufpreis für Zusatzgäste greift) und seine bed_configs. Jeder Ratenplan liefert eine vollständige Preisaufschlüsselung:
| Feld | Typ | Hinweise |
|---|---|---|
total | string | Der vollständig bepreiste Aufenthaltsgesamtpreis, inklusive aller nicht enthaltenen Steuern. Er entspricht der Summe des Holds. |
room_subtotal | string | Summe der Nachtraten vor Belegungsanpassungen und Steuern. |
base_occupancy | integer | Gäste, die in der Basisrate enthalten sind; darüber hinaus greift der Aufpreis für Zusatzgäste. |
extra_guest_charge | string | Der Aufpreis des Plans pro Nacht für jeden Gast über base_occupancy hinaus. |
single_occupancy_discount | string | Gesamter Rabatt, wenn nur eine Person anreist. |
extra_guest_total | string | Gesamter Zusatzgast-Aufschlag über den Aufenthalt. |
taxes_total | string | Summe der nicht enthaltenen Steuern, die zu total addiert werden. Enthaltene Steuern zählen hier nicht mit. |
tax_breakdown | array | Zeilen je Gebühr: title, amount, is_inclusive, rate, kind. Enthaltene Zeilen werden zur Transparenz gezeigt und erhöhen total nicht. |
Weil dieselbe Gebühren-Engine den Hold bepreist, entspricht dieses total immer der Summe, die Sie von POST /holds erhalten.
GET /servicesScope: availability:read
Vom Gast buchbare Zusatzleistungen (zum Beispiel ein Flughafentransfer) für den Schritt „Zum Zimmer hinzufügen“ einer Buchungsmaschine. Liefert nur aktive, vom Gast buchbare Services samt ihren modifiers (den Optionen und Eingabefeldern, die ein Gast ausfüllt). Übergeben Sie ?category=, um nach Kategorie zu filtern.
| Query-Parameter | Erforderlich | Hinweise |
|---|---|---|
category | nein | Nur Services dieser Kategorie zurückgeben (zum Beispiel transport). |
curl "$VRDN_BASE/services?category=transport" -H "Authorization: Bearer $VRDN_KEY"{
"data": [
{
"id": "f1c8e5a3-6b2d-4c9f-8a7e-3d0b5c2f6e94",
"name": "Airport transfer",
"category": "transport",
"provider_name": "Harbour Transfers",
"image_url": "https://cdn.veridien.app/p_8f2a1c/transfer.jpg",
"short_description": "Private speedboat from the international airport.",
"currency": "USD",
"is_taxable": true,
"modifiers": []
}
]
}| Feld | Typ | Hinweise |
|---|---|---|
id | string | Kennung des Service, in den add_ons eines Holds als service_id referenziert. |
name | string | Anzeigename. |
category | string | null | Kategoriebezeichnung, die der Filter ?category= verwendet. |
provider_name | string | null | Der Anbieter, der den Service erbringt. |
image_url | string | null | Bild für die Vermarktung. |
short_description | string | null | Einzeilige Beschreibung. |
currency | string | Währung der Bepreisung, standardmäßig die Basiswährung der Unterkunft. |
is_taxable | boolean | Ob auf die Zusatzleistung Steuern anfallen. |
modifiers | array | Die Optionen und Eingabefelder (bepreiste Auswahlen, Datum/Zeit- und Textfelder), die der Gast angibt, wenn er die Leistung zu einem Hold hinzufügt. |
Hängen Sie einen gewählten Service über das Feld add_ons an eine Buchung, siehe POST /holds.
- Reservierungen: eine Rate in einen Hold und eine bestätigte Reservierung überführen.
- Ratenpläne: wie Ratenpläne und Saisonintervalle konfiguriert werden.