1. Room Mapping
Vervotech
  • Hotel Mapping
    • Getting Started
    • Access & Onboarding with Vervotech
    • Explore your providers
    • Integration and Go Live
    • Map Providers Content
    • Webhook
    • References
    • FAQ
    • Metadata Content
      • Get Master Hotel Facilities
      • Get Master Hotel Chains
      • Get Master Hotel Brands
      • Get Master Property Types
      • Get All Master Countries
      • Get All Vervotech IDs
    • Mappings
      • Get Mappings
      • Get New Mappings
      • Get Updated Mappings
      • Get Deleted Mappings
      • Get Mapping Statistics
      • Export Mappings File
      • Get Mapping Counts
      • Get Provider Hotel Mappings by Provider ID
      • Get Provider Hotel Mappings by Vervotech ID
    • Curated Content
      • Get Updated Curated Content
      • Get Curated Content by Provider Hotel IDs
      • Get Curated Content by Vervotech IDs
    • Provider Content
      • Get Unmapped Provider Hotels
      • Get Unmapped Provider Hotels V2
      • Create Unmapped Provider Hotels File
      • Get All Provider Names
      • Get Provider Content by Provider Hotel IDs
      • Get Provider Content by Vervotech IDs
    • Location Content
      • Get Location by ID
      • Get All Locations
    • Operational APIs
      • Review Mappings of Booked Hotels by File
      • Review Mappings of Booked Hotels
      • Start Mapping by SFTP Folder
      • Get Mapping History by Run ID
    • Dynamic Mapping APIs
      • Find Match
    • Dual Mapping APIs
      • Overview
      • Get Mappings by Provider Hotel ID
      • Get Mappings with Content by Provider Hotel ID
      • Get Dual Mapping API Statistics
  • Room Mapping
    • Getting Started
    • Choosing Your Integration Path
    • Integration Guidelines and Go Live
    • Preparing Your Request Data
    • Room Name and Description Guidelines
    • Room Mapping Customizations
    • Preparing Your Files
    • How Supplier Content Is Standardised
    • Service Limits
    • References
    • FAQ
    • Mapping API
      • Map Rooms
      • Get Master Room Amenities
      • Get Master Room Attributes
      • Get Provider Names
      • Get All Provider Names
    • Async Room Mapping API
      • Get Async Room Mapping Response
      • Map Large Rooms Async
    • Board Basis Mappings
      • Get All Master Board Basis
      • Map Board Basis
  • Schemas
    • Schemas
    • Response
      • GetMasterHotelBrandsResponse
      • GetMasterPropertyTypesResponse
      • GetMasterCountriesResponse
      • FacilityGroupFixtures
      • GetMasterHotelChainsResponse
    • GetMasterHotelBrandsResponse1
    • GetMasterPropertyTypesResponse2
    • GetMasterCountriesResponse3
    • FacilityGroupFixtures4
    • GetMasterHotelChainsResponse5
    • GetMasterHotelBrandsResponse2
    • GetMasterPropertyTypesResponse3
    • GetMasterCountriesResponse4
    • PropertyContent400Error
    • FacilityGroupFixtures5
    • PropertyContent404Error
    • GetMasterHotelChainsResponse6
    • HotelChain404Error
    • MasterCountry404Error
    • BucketFolderNotFound
    • ProviderNames404Error
    • PropertyType404Error
    • Error401
    • Error403
    • Error426
    • Error500
    • Error503
    • Facility404Error
    • TotalHotelsCount404Error
    • Location404Error
    • Location400Error
    • GetMasterHotelBrandsResponse3
    • GetMasterPropertyTypesResponse4
    • GetMasterCountriesResponse5
    • FacilityGroupFixtures6
    • GetMasterHotelChainsResponse7
    • Status
    • Message
    • StatusCode
    • ResumeKey
    • Tag
    • GetHotelsByLocationIdRes
    • GetHotelsByPolygonRes
    • Unica.Core.Contracts.Models.DownloadStatsStatus
    • Unica.Core.Contracts.Models.HotelsAPI.HotelContentField
    • PropertyTypes
    • schema1
    • schema3
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.ProviderMappingType
    • Unica.Core.Contracts.Models.ImageSize
    • Unica.DataContracts.Common.DistanceUnit
    • Unica.DataContracts.Common.FeeType
    • Unica.DataContracts.Common.ImageSize
    • Unica.Services.CoreService.Models.GetProviderMappingMappingRq
    • Countries
    • KeyValue
    • ProviderFacility
    • GenericResponse
    • ProviderHotelIdentifier
    • GetUnmappedHotelsResponse
    • GetMasterHotelChainsResponse
    • GetUnmappedHotelsV2Response
    • GetCuratedContentResponse
    • ErrorResponse
    • Bed
    • GetUpdatedCuratedContentResponse
    • ReviewMappingsofBookedHotelsResponse
    • GetProviderMappingResponse
    • GetProviderMappingByProviderResponse
    • GetMappingHistoryByRunIdResponse
    • CategoryRating
    • GetMasterHotelBrandsResponse
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetOSMLocationsRQ
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetProviderContentByProviderIdsReq
    • GetMasterPropertyTypesResponse
    • GetMasterCountriesResponse
    • Error
    • LocationsRS
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.ProviderHotelMappings
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.ReviewBookedHotelsReq
    • Unica.Core.Contracts.Models.MasterTags.Tags
    • Unica.Core.Contracts.Models.ProviderHotelIdentifier
    • Unica.DataContracts.Common.CategoryRating
    • Unica.DataContracts.Common.CheckoutInfo
    • Unica.DataContracts.Common.Description
    • Unica.DataContracts.Common.GeoCode
    • Unica.DataContracts.Common.Link
    • Unica.DataContracts.Common.Policy
    • Unica.DataContracts.Common.ReviewDistribution
    • Unica.Core.Contracts.Location.MasterLocationRes
    • GetMappingsCountRes
    • Unica.Core.Contracts.Models.Airport
    • Unica.Core.Contracts.Models.ApiResponse
    • Unica.Core.Contracts.Models.Billing.AccountUsageBalance
    • Unica.Core.Contracts.Models.Billing.BilllingHistory
    • Unica.Core.Contracts.Models.ConnectedLocation
    • Unica.Core.Contracts.Models.Facility
    • AsyncRoomMappingResponse
    • Unica.Core.Contracts.Models.GetAllHotelBrandsRes
    • GetMappingStatisticsResponse
    • Unica.Core.Contracts.Models.GetAllHotelChainsRes
    • Unica.Core.Contracts.Models.GetAllMasterTagsResV3
    • Unica.Core.Contracts.Models.GetMappingHistoryReq
    • Facility
    • NearByLocation
    • TrainStations
    • StartMappingByFtpFolderResponse
    • PointOfInterests
    • ConnectedLocations
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetCuratedContentWithLocationRes
    • Neighbourhoods
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetMappingByProviderRes
    • Stadiums
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetMasterFacilityGroups
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetProviderContentRes
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetUnmappedProviderHotelsRes
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.MasterFacilityGroups
    • Unica.Core.Contracts.Models.KeyValue
    • Unica.Core.Contracts.Models.Link
    • Unica.Core.Contracts.Models.MappingStatsRes
    • Unica.Core.Contracts.Models.MasterChain.HotelBrand
    • Unica.Core.Contracts.Models.MasterChain.HotelChain
    • Unica.Core.Contracts.Models.Neighbourhood
    • Unica.Core.Contracts.Models.PoI
    • Unica.Core.Contracts.Models.ProviderHotelHistoryRes
    • Unica.Core.Contracts.Models.RoomArea
    • Unica.Core.Contracts.Models.Stadium
    • Unica.Core.Contracts.Models.TrainStation
    • Unica.DataContracts.Common.Facility
    • Unica.DataContracts.Common.Fee
    • Unica.DataContracts.Common.KeyValue
    • Unica.DataContracts.Common.RoomArea
    • Unica.DataContracts.Common.Statistics
    • Unica.Core.Contracts.Location.MasterLocationListRes
    • Unica.Core.Contracts.Models.Bed
    • LocationByPolygonRequest
    • ProviderHotelIdentifiers
    • Unica.Core.Contracts.Models.Billing.UsageBalanceDetails
    • MappedRoomRate
    • HotelProviderIdentifier
    • Unica.Core.Contracts.Models.GetAllCountriesResV3
    • Unica.Core.Contracts.Models.GetAllPropertyTypesRes
    • GuestReview
    • Unica.Core.Contracts.Models.GetMappingsCountRes
    • GetProviderNamesResponse
    • Unica.Core.Contracts.Models.GetProviderMappingStatsRS
    • GetAllVervotechIdsResponse
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.CreateUnmappedProviderHotelsFileReq
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetCuratedContentByVervotechIdsReq
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetMappingsRes
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetUnmappedProviderHotelsReq
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetUnmappedProviderHotelsV2Req
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetUnmappedProviderHotelsV2Res
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetUpdatedCuratedContentRes
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetVervotechIdsRes
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.HotelProviderIdentifierV3
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.ProviderHotelIdsRes
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.ProviderMapping
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.ProviderMappingRes
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.StartMappingByFtpFolderRes
    • Unica.Core.Contracts.Models.Image
    • Unica.DataContracts.Common.Bed
    • Unica.DataContracts.Common.Contact
    • Unica.DataContracts.Common.Image
    • Unica.DataContracts.Common.PointOfInterest
    • Unica.Host.Web.Controllers.GetProviderNamesRes
    • RoomMappingRequest
    • HotelChains
    • LocationMapping
    • HotelBrands
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetProviderContentByVervotechIdsReq
    • schema2
    • Unica.Core.Contracts.Models.VerifyMapping
    • Unica.DataContracts.Common.CheckinInfo
    • Unica.DataContracts.Common.GuestReview
    • Unica.DataContracts.Common.UserReview
    • Unica.Services.CoreService.Models.HotelMappingReq
    • HotelMapping
    • NewHotelMapping
    • UpdatedHotelMapping
    • DeletedHotelMapping
    • Unica.Core.Contracts.Models.MasterLocation.LocationMappingRes
    • Unica.Core.Contracts.Models.ProviderHotelHistory
    • Unica.DataContracts.Common.Address
    • Unica.DataContracts.Common.Room
    • ReviewHotels
    • ReviewMappingsofBookedHotelsRequest
    • Unica.Core.Contracts.Models.Billing.BillingEntry
    • GetMasterRoomAmenitiesResponse
    • GetProviderContentResponse
    • GetProviderContentByHotelIdsResponse
    • Room
    • Unica.Core.Contracts.Models.ProviderMappingStats
    • Unica.DataContracts.MasterLocation.MasterLocation
    • Locations
    • Unica.Core.Contracts.Models.Room
    • RoomMappingBody2
    • ProviderMappingsStats
    • GetMasterRoomAttributesResponse
    • FacilityGroupFixtures
    • GetProviderHotelIdsByVervotechIdResponse
    • RoomMappingBody
    • Unica.Core.Contracts.Models.MappingStats
    • MappingsStats
    • HotelsByLocationIdRes
    • UnmappedHotelContent
    • Unica.DataContracts.HotelMappingV3.DTORawMapHotel
    • ProviderRoomContent
    • Unica.DataContracts.HotelMappingV3.ProviderHotel
    • RoomMappingResponse2
    • HotelContent
    • Unica.Core.Contracts.Models.RawMapHotel
    • CuratedHotels
    • CuratedHotelsWithLocationContent
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.CuratedHotelWithLocationMapping
    • Unica.Core.Contracts.Models.DownloadStats
  1. Room Mapping

How Supplier Content Is Standardised

Every room you send passes through the same standardisation pipeline before any grouping happens. Knowing what that pipeline does, and what it keys off, explains most of the results you will see.

The pipeline#

1.
Structured attributes are merged into the room text, so the attributes you send as fields and the details a supplier wrote into the room name are considered together.
2.
The text is cleaned. Embedded HTML is stripped, underscores and separators are normalised, and duplicated whitespace is collapsed.
3.
Non-distinguishing phrases are removed. Marketing copy, promotional wording and rate conditions do not describe the room, so they are dropped before comparison.
4.
Tokens are normalised. Abbreviations are expanded, common misspellings are repaired, and recognised non-English terms are mapped to their English equivalents.
5.
Attributes are extracted into structured values: room category, bed types and counts, view, occupancy, board basis, accessibility and other room features.
6.
Rooms are grouped on the resulting attributes.

Standardisation is supplier aware#

The provider value you send is not just a label. It selects how your room content is interpreted, because suppliers write room names in materially different styles, with their own abbreviations, their own noise wording and their own use of the description field.
How the value is compared depends on which check it reaches, and the two checks behave differently.
Entitlement is checked first, and it is strict. Your provider value is compared against the provider list your account is entitled to, exactly and case sensitively, with no trimming. A value with different casing or a stray leading or trailing space is rejected with status code 1011 before it is interpreted at all.
Interpretation is lenient, and silent. A provider that passes the entitlement check but has no supplier specific handling is read with the default interpretation. No warning is returned, and the mapping still runs. Only a handful of supplier families have bespoke handling; every other entitled provider is read this way, which is normal and expected.
Always source provider from the provider names endpoint, and keep the value stable across requests. Changing the spelling of a provider name, or introducing a variant such as an internal code, will either be rejected outright or silently change how that supplier's content is read.
Send one supplier's rooms under one provider name. Do not merge several suppliers behind a single value, and do not split one supplier across several.
The entitlement list is scoped to your account rather than being a global master list, and the file based path checks against a differently scoped list again. See Preparing Your Files for what that means in practice.

Board basis#

Board basis is standardised from a keyword vocabulary that covers both common wording and supplier specific wording. The supported standard values, and the keywords behind them, are listed under References.

When the vocabulary does not cover your content#

The vocabulary is extended continuously from real supplier data. If you see room names that are consistently misread, or a supplier whose wording is not being interpreted well, send samples to customersuccess@vervotech.com. Real examples are far more actionable than a description of the problem.
Previous
Preparing Your Files
Next
Service Limits
Built with