Skip to content
KismetKismetDevelopers
llms.txt

List published vacation rentals for a manager

View .md

GET /v1/developer/collections/{collection}/vacation-rentals

Operation ID: listVacationRentals

Returns published Kismet content within the authenticated application grant. When the credential also holds collection-wide rates.read, each row may add pricing.nightlyFrom, the cheapest sellable night in the coming 90 days, kept current by Kismet’s rate synchronization and served from stored values (no calendar is read per request). It is indicative display pricing, never a dated quote. sort orders the WHOLE matched set: recommended is the collection’s own stable order; price-asc/price-desc order by pricing.nightlyFrom with homes lacking a synced price last; name-asc orders by name; bedrooms/sleeps order largest-first with missing values last; best-fit is the Best-Fit ranking Kismet storefronts show (the /v1/public/vrm order). Ties always break by name, then id, and the cursor keeps the sort across pages. minPrice/maxPrice are whole currency units per night (inclusive) against nightlyFrom; homes without a synced price are excluded only while a price filter is set. Unknown sort values return a 400 problem. Every summary already carries location.geo, media.hero, media.cardImages (up to 5 card-carousel photos: the hero first, then priority-space photos, then the gallery; public-safe or Kismet-proxied URLs only) and (behind rates.read) pricing.nightlyFrom when the data exists, so a card, card carousel, map, or sort needs no per-home detail read. TEST view=staging additionally reads linked rooms under both active catalog and source-inventory grants. Staging-only rooms have publication.publishedAt=null and an explicit visibility/expiry; indicative pricing is withheld. No availability search, booking URL, or vendor payload is returned. Build a TEST catalog preview: setup, SDK and REST examples, independent approval expiry, and room-preview boundaries. Published remains the default.

Field Value
Maturity beta
Required capability vacation_rentals.read
Freshness class published-content
Quota cost 1

All operations require a Kismet Developer Bearer credential. Collection and resource authority is resolved from the credential’s installation grants; identifiers in the URL never grant access.

Name In Type Required Description
view query published | staging no TEST-only opt-in to explicitly approved, unexpired staging catalog and room reads. Omit for published inventory. Does not authorize pricing, booking, or publication.
cursor query string no
limit query integer no
group query string no Published bookable-product group id or slug.
minBedrooms query integer no
minBathrooms query number no
minGuests query integer no
petsAllowed query boolean no
sort query recommended | price-asc | price-desc | name-asc | bedrooms | sleeps | best-fit no Whole-set ordering. recommended = the collection’s own order; price-* by pricing.nightlyFrom (unpriced homes last); bedrooms/sleeps largest-first; ties break by name then id. The cursor keeps the sort.
minPrice query number no Minimum nightly from-price in whole currency units (inclusive, against pricing.nightlyFrom). Homes without a synced price are excluded while any price filter is set.
maxPrice query number no Maximum nightly from-price in whole currency units (inclusive, against pricing.nightlyFrom). Homes without a synced price are excluded while any price filter is set.
collection path string yes

This operation has no JSON request body.

Set KISMET_API_ORIGIN=https://api.ksmt.app and configure KISMET_DEVELOPER_API_KEY in your environment. Run server-credential requests from your backend, not browser code.

Terminal window
curl --request GET \
"$KISMET_API_ORIGIN/v1/developer/collections/example-collection/vacation-rentals" \
--header "Authorization: Bearer $KISMET_DEVELOPER_API_KEY" \
--header "Accept: application/json"
Status Meaning
200 Success.
400 Invalid request parameters or body.
401 Missing, invalid, expired, or inappropriate credential/session.
403 Credential lacks the required grant/capability, or an origin/CSRF check failed.
429 Rate limit or quota exceeded; inspect response metadata before retrying.
503 A required Kismet dependency is temporarily unavailable.
{
"data": [
{
"resourceType": "bookable_product",
"type": "vacation_rental",
"id": "22222222-2222-4222-8222-222222222222",
"slug": "sandbox-chalet",
"name": "Sandbox Chalet",
"tagline": "A cozy evaluation chalet",
"collection": {
"id": "11111111-1111-4111-8111-111111111111",
"slug": "sandbox-stays",
"name": "Sandbox Stays"
},
"capacity": {
"bedrooms": 3,
"bathrooms": 2,
"maxGuests": 8
},
"location": {
"locality": "Dover",
"region": "VT",
"postalCode": "05356",
"country": "US",
"geo": {
"latitude": 42.94,
"longitude": -72.87,
"precision": "approximate"
}
},
"media": {
"hero": {
"url": "https://cdn.kismet.travel/sandbox/chalet-hero.jpg",
"alt": "Chalet exterior"
},
"cardImages": [
{
"url": "https://cdn.kismet.travel/sandbox/chalet-hero.jpg",
"alt": "Chalet exterior"
},
{
"url": "https://cdn.kismet.travel/sandbox/chalet-living.jpg"
},
{
"url": "https://cdn.kismet.travel/sandbox/chalet-deck.jpg"
}
]
},
"amenityHighlights": [
"Hot tub",
"EV charger"
],
"links": {
"self": "/v1/developer/vacation-rentals/22222222-2222-4222-8222-222222222222"
},
"publication": {
"publishedAt": "2026-06-15T00:00:00.000Z",
"updatedAt": "2026-07-01T00:00:00.000Z"
},
"capabilities": [
"vacation_rentals.read"
],
"pricing": {
"nightlyFrom": {
"amountMinor": 16500,
"currency": "USD",
"horizonDays": 90
}
}
}
],
"page": {
"limit": 20,
"nextCursor": null
}
}

Content type: application/json. Required fields, nullable values, and nested structures are defined below.

View complete response schema
{
"type": "object",
"additionalProperties": false,
"required": [
"data",
"page"
],
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"resourceType",
"type",
"id",
"slug",
"name",
"collection",
"capacity",
"media",
"amenityHighlights",
"links",
"publication",
"capabilities"
],
"properties": {
"resourceType": {
"enum": [
"bookable_product"
]
},
"type": {
"enum": [
"vacation_rental"
]
},
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"tagline": {
"type": "string"
},
"shortSummary": {
"type": "string"
},
"propertyType": {
"type": "string"
},
"collection": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"slug",
"name"
],
"properties": {
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"capacity": {
"type": "object",
"additionalProperties": false,
"required": [
"bedrooms",
"bathrooms",
"maxGuests"
],
"properties": {
"bedrooms": {
"type": [
"null",
"integer"
]
},
"bathrooms": {
"type": [
"null",
"number"
]
},
"maxGuests": {
"type": [
"null",
"integer"
]
}
}
},
"location": {
"type": "object",
"additionalProperties": false,
"required": [
"locality",
"region",
"postalCode",
"country",
"geo"
],
"properties": {
"locality": {
"type": [
"null",
"string"
]
},
"region": {
"type": [
"null",
"string"
]
},
"postalCode": {
"type": [
"null",
"string"
]
},
"country": {
"type": [
"null",
"string"
]
},
"geo": {
"anyOf": [
{
"type": "null"
},
{
"type": "object",
"additionalProperties": false,
"required": [
"latitude",
"longitude",
"precision"
],
"properties": {
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
},
"precision": {
"enum": [
"approximate"
]
}
}
}
]
}
}
},
"media": {
"type": "object",
"additionalProperties": false,
"required": [
"cardImages"
],
"properties": {
"hero": {
"type": "object",
"additionalProperties": false,
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"alt": {
"type": "string"
},
"caption": {
"type": "string"
}
}
},
"cardImages": {
"type": "array",
"maxItems": 5,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"alt": {
"type": "string"
},
"caption": {
"type": "string"
}
}
}
}
}
},
"amenityHighlights": {
"type": "array",
"maxItems": 12,
"items": {
"type": "string"
}
},
"pricing": {
"type": "object",
"additionalProperties": false,
"required": [
"nightlyFrom"
],
"properties": {
"nightlyFrom": {
"type": "object",
"additionalProperties": false,
"required": [
"amountMinor",
"currency",
"horizonDays"
],
"properties": {
"amountMinor": {
"type": "integer"
},
"currency": {
"type": "string"
},
"horizonDays": {
"type": "integer"
}
}
}
}
},
"links": {
"type": "object",
"additionalProperties": false,
"required": [
"self"
],
"properties": {
"self": {
"type": "string"
}
}
},
"publication": {
"type": "object",
"additionalProperties": false,
"required": [
"publishedAt",
"updatedAt"
],
"properties": {
"publishedAt": {
"type": [
"null",
"string"
],
"format": "date-time"
},
"visibility": {
"type": "string",
"enum": [
"published",
"staging"
]
},
"stagingExpiresAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"capabilities": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"page": {
"type": "object",
"additionalProperties": false,
"required": [
"limit",
"nextCursor"
],
"properties": {
"limit": {
"type": "integer"
},
"nextCursor": {
"type": [
"null",
"string"
]
}
}
}
}
}