api-client

What the API offers

Families on sale, as the wire lists them (never from the contract's enum): accommodation.

Services

servicetitlenightsexclusivityvariantssale types
accommodation/namboNam Bộ Boutique Hotel1shared standard junior main corner detail →
accommodation/lighthousethe Lighthouse1shared standard main corner cozy standard detail →

Assets — resource classes and what is sold of them

suite Suite on accommodation/nambo

sale typebasiscapacity (people per unit)max units / bookinginventory (units on the channel)sold on
juniorper-room411accommodation/nambo
mainper-room344accommodation/nambo
cornerper-room222accommodation/nambo

flat Main Suite on accommodation/lighthouse

sale typebasiscapacity (people per unit)max units / bookinginventory (units on the channel)sold on
mainper-room322accommodation/lighthouse
cornerper-room411accommodation/lighthouse
cozyper-room300accommodation/lighthouse
standardper-room211accommodation/lighthouse

Pictures

⊘ No service payload carries a picture reference — no contentRefs, no URL-shaped value, nothing under /media/. The page shows none rather than a placeholder.

Calendar, in brief

30 days from 2026-09-07 cost 30 requests (one per day: the contract declares no range call). States seen: on-sale ×43 full ×17 . the grid →

Probes — what the contract says must be refused

probeexpectedgot
a family token that is not in the contract's enum
GET /services
404 family-unknown200
200 ; 2 services returned — the filter was ignored
the family `overnight-cruise` (in the enum, not listed)
GET /services
404 family-unmodelled, or a filtered list without it200
200 ; 2 of 2 services returned, none of them `overnight-cruise`
GET /services/overnight-cruise/anything
GET /services/{serviceFamily}/{serviceCode}
404 family-unmodelled404 family-unmodelled
404 family-unmodelled
GET /services/accommodation/no-such-service
GET /services/{serviceFamily}/{serviceCode}
404 service-unknown404 service-unknown
404 service-unknown
GET /availability with no date
GET /availability
a refusal in the contract's error shape (the contract declares date required but no 422 for it)422 field-invalid
422 field-invalid (contract body)
POST /quote naming a sale type that does not exist
POST /quote
422 party-impossible or itinerary-not-quotable422 itinerary-not-quotable
422 itinerary-not-quotable
POST /quote naming a variant that does not exist
POST /quote
404 variant-unknown404 variant-unknown
404 variant-unknown
POST /bookings with no key
POST /bookings
401 key-missing401 key-missing
401 key-missing
GET /bookings/{id} with no key
GET /bookings/{bookingId}
401 key-missing401 key-missing
401 key-missing
OPTIONS /services — the headers CORS names
OPTIONS /services
only headers this contract defines (Authorization, Content-Type)204
names Octo-Capabilities

The front door

urlstatusdescribes this contractnames another baseexcerpt
https://api.transmekong.com/200nohttps://octo.transmekong.com/v1 TransMékong Developer API :root { --tm-bg: #fdfcf8; --tm-header: #eae0af; --tm-text: #222; --tm-accent: #63574c; } * { box-sizing: border-b
https://api.transmekong.com/llms.txt200nohttps://octo.transmekong.com/v1 # TransMékong / Bassac cruises — API for agents and integrators > Bassac (TransMékong) runs one-night Mekong Delta river cruises between > C
https://api.transmekong.com/v1/openapi.yaml404no 404 Not Found @media (prefers-color-scheme:dark){body{background-color:#000!important}} 404 Not Found The resource requested could not be f
https://api.transmekong.com/v1/404no 404 Not Found @media (prefers-color-scheme:dark){body{background-color:#000!important}} 404 Not Found The resource requested could not be f