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 Curated Content by Provider Hotel IDs
      • Get Updated Curated Content
      • 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
    • File Based Room Mapping (Offline)
    • Customized Room Mapping Rules and Case Study
    • 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
    • HotelContent
    • GetHotelsByLocationIdRes
    • RoomMappingBody
    • Unica.Core.Contracts.Location.MasterLocationListRes
    • GetMasterHotelBrandsResponse1
    • CuratedHotels
    • GetHotelsByPolygonRes
    • RoomMappingBody2
    • Unica.Core.Contracts.Location.MasterLocationRes
    • GetMasterPropertyTypesResponse2
    • CuratedHotelsWithLocationContent
    • GetMappingsCountRes
    • KeyValue
    • Unica.Core.Contracts.Models.Airport
    • GetMasterCountriesResponse3
    • ReviewHotels
    • Unica.Core.Contracts.Models.ApiResponse
    • FacilityGroupFixtures4
    • ProviderMappingsStats
    • ProviderFacility
    • Unica.Core.Contracts.Models.Bed
    • GetMasterHotelChainsResponse5
    • MappingsStats
    • Unica.Core.Contracts.Models.Billing.AccountUsageBalance
    • ReviewMappingsofBookedHotelsRequest
    • ProviderRoomContent
    • Unica.Core.Contracts.Models.Billing.BillingEntry
    • LocationByPolygonRequest
    • RoomMappingRequest
    • Unica.Core.Contracts.Models.Billing.BilllingHistory
    • ProviderHotelIdentifiers
    • GenericResponse
    • Unica.Core.Contracts.Models.Billing.UsageBalanceDetails
    • ProviderHotelIdentifier
    • GetUnmappedHotelsResponse
    • GetMasterRoomAmenitiesResponse
    • Unica.Core.Contracts.Models.ConnectedLocation
    • GetMasterHotelChainsResponse
    • GetUnmappedHotelsV2Response
    • GetMasterRoomAttributesResponse
    • Unica.Core.Contracts.Models.DownloadStats
    • HotelChains
    • GetProviderContentResponse
    • MappedRoomRate
    • Unica.Core.Contracts.Models.DownloadStatsStatus
    • HotelMapping
    • GetProviderContentByHotelIdsResponse
    • RoomMappingResponse2
    • Unica.Core.Contracts.Models.Facility
    • HotelProviderIdentifier
    • GetCuratedContentResponse
    • ErrorResponse
    • Unica.Core.Contracts.Models.GetAllCountriesResV3
    • AsyncRoomMappingResponse
    • Bed
    • GetUpdatedCuratedContentResponse
    • Unica.Core.Contracts.Models.GetAllHotelBrandsRes
    • Status
    • GetMappingStatisticsResponse
    • Unica.Core.Contracts.Models.GetAllHotelChainsRes
    • Message
    • ReviewMappingsofBookedHotelsResponse
    • Unica.Core.Contracts.Models.GetAllMasterTagsResV3
    • StatusCode
    • GetProviderMappingResponse
    • Unica.Core.Contracts.Models.GetAllPropertyTypesRes
    • FacilityGroupFixtures
    • GetProviderMappingByProviderResponse
    • Unica.Core.Contracts.Models.GetMappingHistoryReq
    • GuestReview
    • GetMappingHistoryByRunIdResponse
    • Unica.Core.Contracts.Models.GetMappingsCountRes
    • CategoryRating
    • GetProviderNamesResponse
    • Unica.Core.Contracts.Models.GetProviderMappingStatsRS
    • Facility
    • GetProviderHotelIdsByVervotechIdResponse
    • Unica.Core.Contracts.Models.HotelsAPI.HotelContentField
    • GetMasterHotelBrandsResponse2
    • NearByLocation
    • GetAllVervotechIdsResponse
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.CreateUnmappedProviderHotelsFileReq
    • GetMasterPropertyTypesResponse3
    • TrainStations
    • StartMappingByFtpFolderResponse
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.CuratedHotelWithLocationMapping
    • GetMasterCountriesResponse4
    • PointOfInterests
    • PropertyContent400Error
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetCuratedContentByVervotechIdsReq
    • FacilityGroupFixtures5
    • ConnectedLocations
    • PropertyContent404Error
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetCuratedContentWithLocationRes
    • GetMasterHotelChainsResponse6
    • Neighbourhoods
    • HotelChain404Error
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetMappingByProviderRes
    • GetMasterHotelBrandsResponse3
    • Stadiums
    • MasterCountry404Error
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetMappingsRes
    • GetMasterPropertyTypesResponse4
    • LocationMapping
    • BucketFolderNotFound
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetMasterFacilityGroups
    • GetMasterCountriesResponse5
    • GetMasterHotelBrandsResponse
    • ProviderNames404Error
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetOSMLocationsRQ
    • FacilityGroupFixtures6
    • HotelBrands
    • PropertyType404Error
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetProviderContentByProviderIdsReq
    • GetMasterHotelChainsResponse7
    • GetMasterPropertyTypesResponse
    • Error401
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetProviderContentByVervotechIdsReq
    • PropertyTypes
    • Error403
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetProviderContentRes
    • GetMasterCountriesResponse
    • Error426
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetUnmappedProviderHotelsReq
    • Countries
    • Error500
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetUnmappedProviderHotelsRes
    • Room
    • Error503
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetUnmappedProviderHotelsV2Req
    • Locations
    • Facility404Error
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetUnmappedProviderHotelsV2Res
    • ResumeKey
    • TotalHotelsCount404Error
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetUpdatedCuratedContentRes
    • Error
    • LocationsRS
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetVervotechIdsRes
    • UnmappedHotelContent
    • Location404Error
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.HotelProviderIdentifierV3
    • HotelsByLocationIdRes
    • Location400Error
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.MasterFacilityGroups
    • Tag
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.ProviderHotelIdsRes
    • schema1
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.ProviderHotelMappings
    • schema2
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.ProviderMapping
    • schema3
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.ProviderMappingRes
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.ProviderMappingType
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.ReviewBookedHotelsReq
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.StartMappingByFtpFolderRes
    • Unica.Core.Contracts.Models.Image
    • Unica.Core.Contracts.Models.ImageSize
    • Unica.Core.Contracts.Models.KeyValue
    • Unica.Core.Contracts.Models.Link
    • Unica.Core.Contracts.Models.MappingStats
    • Unica.Core.Contracts.Models.MappingStatsRes
    • Unica.Core.Contracts.Models.MasterChain.HotelBrand
    • Unica.Core.Contracts.Models.MasterChain.HotelChain
    • Unica.Core.Contracts.Models.MasterLocation.LocationMappingRes
    • Unica.Core.Contracts.Models.MasterTags.Tags
    • Unica.Core.Contracts.Models.Neighbourhood
    • Unica.Core.Contracts.Models.PoI
    • Unica.Core.Contracts.Models.ProviderHotelHistory
    • Unica.Core.Contracts.Models.ProviderHotelHistoryRes
    • Unica.Core.Contracts.Models.ProviderHotelIdentifier
    • Unica.Core.Contracts.Models.ProviderMappingStats
    • Unica.Core.Contracts.Models.RawMapHotel
    • Unica.Core.Contracts.Models.Room
    • Unica.Core.Contracts.Models.RoomArea
    • Unica.Core.Contracts.Models.Stadium
    • Unica.Core.Contracts.Models.TrainStation
    • Unica.Core.Contracts.Models.VerifyMapping
    • Unica.DataContracts.Common.Address
    • Unica.DataContracts.Common.Bed
    • Unica.DataContracts.Common.CategoryRating
    • Unica.DataContracts.Common.CheckinInfo
    • Unica.DataContracts.Common.CheckoutInfo
    • Unica.DataContracts.Common.Contact
    • Unica.DataContracts.Common.Description
    • Unica.DataContracts.Common.DistanceUnit
    • Unica.DataContracts.Common.Facility
    • Unica.DataContracts.Common.Fee
    • Unica.DataContracts.Common.FeeType
    • Unica.DataContracts.Common.GeoCode
    • Unica.DataContracts.Common.GuestReview
    • Unica.DataContracts.Common.Image
    • Unica.DataContracts.Common.ImageSize
    • Unica.DataContracts.Common.KeyValue
    • Unica.DataContracts.Common.Link
    • Unica.DataContracts.Common.PointOfInterest
    • Unica.DataContracts.Common.Policy
    • Unica.DataContracts.Common.ReviewDistribution
    • Unica.DataContracts.Common.Room
    • Unica.DataContracts.Common.RoomArea
    • Unica.DataContracts.Common.Statistics
    • Unica.DataContracts.Common.UserReview
    • Unica.DataContracts.HotelMappingV3.DTORawMapHotel
    • Unica.DataContracts.HotelMappingV3.ProviderHotel
    • Unica.DataContracts.MasterLocation.MasterLocation
    • Unica.Host.Web.Controllers.GetProviderNamesRes
    • Unica.Services.CoreService.Models.GetProviderMappingMappingRq
    • Unica.Services.CoreService.Models.HotelMappingReq
    • NewHotelMapping
    • UpdatedHotelMapping
    • DeletedHotelMapping
  1. Room Mapping

FAQ

This FAQ consolidates the questions Vervotech customers most frequently ask about Room Mapping, grouped by audience.
ℹ️ Note: If your question isn't answered here reach out to customersuccess@vervotech.com.

Q: What problem does Room Mapping solve at a product level?#

A: Travel platforms aggregate inventory from many suppliers, and each supplier describes the same physical room differently. Without a unifying layer, search results show duplicates, comparing prices is unreliable, and travelers get confused. Room Mapping groups equivalent rooms across suppliers into a single standardized record so your platform can show one room per type with the best available rate — improving conversion and trust.

Q: What does a "successful" Room Mapping outcome look like?#

A: Two signals indicate Room Mapping is working as intended:
Reduced duplicates — fewer near-identical rows in search and shopping results for the same hotel.
Higher confidence on matched rates — most mapped rates carry a MatchScore more than 90, meaning the system is highly confident the supplier's room belongs to a known standardized room group.

Q: Will any rooms be silently dropped from the response?#

A: No. Every room in the input is processed and represented in the response. Rooms that match a known standardized group are mapped to that group; rooms with insufficient signal to map confidently are returned separately rather than discarded. This means your downstream systems can trust that input volume equals output volume.

Q: How do we control which suppliers' content is used for mapped rooms?#

A: Two configuration levers govern content assembly:
ProviderContentType — Merged combines fields from multiple providers in the order you specify; PreferredProvider uses the first provider in your list that has matching content for the room.
ProviderContentPreference — an ordered list of provider names. The system walks this list to find content (such as images and descriptions).
This lets you balance richness (Merged) against editorial control or commercial preference (PreferredProvider).

Q: What inputs improve mapping quality the most?#

A: Beyond the mandatory RoomName, RoomCode, Provider, and ProviderHotelId, the highest-leverage optional fields are:
Bed — bedding configuration (e.g., "1 King", "2 Doubles")
View — view designation (e.g., "City View", "Ocean View")
Description — supplier room description
Attributes — room attributes

Q: Which endpoint should I use — sync or async?#

A: Use the synchronous Map Rooms endpoint for real-time shopping flows where latency matters and your batch fits within the per-request payload limit. Use the asynchronous Map Large Rooms Async endpoint for large batches: submit the job, then poll Get Async Room Mapping API Response for the result. For bulk historical mapping or scheduled backfills, use the file-based offline workflow.

Q: What fields are mandatory in a Map Rooms request?#

A: Per room rate, the following are required:
FieldPurpose
IndexUnique index for this room rate within the request
ProviderSupplier name (must match Vervotech's master provider names)
ProviderHotelIdSupplier's hotel identifier
RoomNameSupplier's room name string
RoomCodeSupplier's room code (in case room content is required)
roomRates (the array itself) and a valid accountId / token are also required at the request level. All other room attributes (Bed, View, Description, Refundability, BoardBasis) are optional.

Q: What is the MatchScore (confidence score) and how should I use it?#

A: The MatchScore is a numeric indicator of how strongly an input rate matches its assigned standardized room group. It is computed from attributes such as room category, bed type, view, and other features. Higher values (closer to 100) indicate stronger matches. Typical usage:
High scores — display the mapped grouping confidently in production.
Low scores — optionally route through a quality-review queue or fall back to a per-supplier display until confidence improves.
The exact threshold is up to your product, but most teams pick a value during validation and tune it from there.

Q: What's the difference between Merged and PreferredProvider content types?#

A:
ModeBehavior
MergedCombines content (e.g., images, descriptions) from multiple providers in the order specified in ProviderContentPreference, filling in fields where any provider has data — producing a richer, more complete result.
PreferredProviderUses content from the first provider in ProviderContentPreference that has matching room codes for that group. If that provider lacks content, the system falls through to the next provider in the list — but it does not merge across providers.
Choose Merged for maximum richness. Choose PreferredProvider when you want a single, editorially consistent voice per room.

Q: How do I get room images in the response?#

A: Two request fields drive image inclusion:
ProviderContentType — set to Merged or PreferredProvider (see above).
ProviderContentPreference — ordered list of provider names whose content (including images) should be considered.
Images are returned only when a matching room code is found in one of the listed providers' content. If none of the listed providers has matching content for that room, no images will be returned for it.

Q: What's the recommended way to handle a 1011 (Unauthorized providers) error?#

A: First, call Get Provider Names to confirm exactly which providers your account is authorized to map. Compare the names you're sending in the Provider field — they are case-sensitive and must match Vervotech's master list exactly. If a provider you expect isn't in the list, contact Vervotech to enable it for your account before retrying.

Q: Which languages are supported in the response?#

A: Vervotech supports the following BCP-47 codes today: en-US, es-ES, tr-TR, fr-FR, it-IT, ar-SA. More may be added in future. Supply the desired language code in the appropriate request field (refer to the API reference for the exact parameter name in the endpoint you are calling).

Previous
References
Next
Map Rooms
Built with