OnSeasonChannel API

Import property content

Build and refresh your catalogue from the listing endpoints.

Search responses carry enough content for a results page. For property pages and a full catalogue, import content from the listing endpoints and keep it fresh.

Import the catalogue

  1. Page through List listings with status=ACTIVE and limit=100 until meta.current equals meta.totalPages.
  2. Store each listing by its id. Every other endpoint takes this ID.
  3. For listings whose propertyType is MULTI_UNIT or COMPLEX, call List units to get the bookable units or room types.

The list returns only listings that are enabled for your channel. A listing that disappears from the list is no longer sold through your channel.

Keep it fresh

Refresh a listing when its updatedAt changes. A daily full pass catches listings that were added or disabled. Prices and availability change far more often than content, so don't read them from the content feed. Use search, availability, and quotes for those.

Map the content

Agree the following mappings with OnSeason during certification:

  • How type (for example Apartment or Villa) and propertyType (SINGLE_UNIT, MULTI_UNIT, or COMPLEX) map to your catalogue.
  • How you sell multi-unit and complex properties: by unitID, by roomType, or by letting OnSeason assign a unit.
  • Image order and what you show when a listing has no thumbnailURL.
  • Amenity IDs and categories.
  • How you show house rules, check-in windows, and check-in instructions.

Understand the unit models

propertyTypeWhat it isHow to quote it
SINGLE_UNITOne rentable home. The units endpoint returns one auto-generated unit.Quote the listing. No unit is needed.
MULTI_UNITSeveral rentable units under one listing, such as apartments in one building.Send unitID, or send roomType and let OnSeason pick a free unit of that type.
COMPLEXA hotel-like property with room types.Same as MULTI_UNIT.

Source PMSs don't share a room-type taxonomy, so treat roomType values as labels from the PMS, not as a fixed list.

Treat optional content as optional

What a listing carries depends on its PMS. Ratings, timeZone, listingDetails, check-in windows, and unit pictures can each be missing. Show what is there and fall back cleanly when it is not.

startPrice on a listing and basePrice on a unit are display values from the content feed. They don't depend on dates or availability, and they leave out fees and taxes. Never show either one as a bookable price.

On this page