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
    • File Based Room Mapping (Offline)
    • Customized Room Mapping Rules and Case Study
    • References
    • FAQ
    • Choosing Your Integration Path
    • 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

Choosing Your Integration Path

Room mapping is available through three paths. They share the same mapping engine, but they differ in how much you can send at once, how quickly you get an answer, and how much detail comes back. Pick the path that matches the job before you build against it, because changing path later means reworking your integration.

Comparing the three paths#

Real timeAsynchronousFile based (offline)
EndpointPOST /api/2.0/mapping/roomsPOST /api/2.0/mapping/maproomsasync, then GET /api/2.0/mapping/getmappingasyncPOST /api/MappingTool/FileBasedMapping
Hotels per submissionOneOneMany
Rooms per submissionUp to the payload limit configured on your accountBuilt for room sets above the real time limitUp to 100,000 rows, and at most 10 MB per file
How you get the resultIn the responsePoll using the returned traceIdEmail notification, then download the output file
Confidence score (matchScore, cfs)YesYesNo
Account mapping rule configurationAppliedAppliedNot applied
Language (culture)YesYesEnglish only

What you give up with file based mapping#

File based mapping is the quickest way to get a large catalogue mapped without writing an integration, and it is the only path that accepts many hotels in one submission. Those conveniences come with real limitations. Every one of them is a behaviour to design around rather than discover in production.
Account mapping rule configuration is not applied to file based runs. Offline runs are processed in a shared service context rather than in your account context, so mapping rules configured against your account do not take effect. The same rooms can therefore group differently in a file based run than they do through the API. If you depend on your own mapping rules, use the real time or asynchronous path.
No confidence scores. The output file carries the mapping result only. There is no matchScore and no cfs, so you cannot rank or triage the results by confidence the way you can on the API.
Rows beyond the batch limit are skipped silently. A maximum of 100,000 rooms are processed per batch. Rows beyond that are skipped, and the run still finishes with status Completed. Always compare the row count of your output file against your input file.
Column headers are matched exactly, and letter case matters. A misspelled or differently cased header is not reported as an error. The column is read as empty instead, and the file is processed as though you had sent no value at all.
A run is all or nothing. If one hotel in the file cannot be processed, the whole run fails and no partial output is uploaded. You resubmit the entire file.
There is no idempotency key. Re-uploading the same file starts a new and independent run. Nothing detects or merges duplicate submissions.
There is no per row error report. The only failure detail is a run level status and reason, so a problem with a single row is not attributed to that row.
Supply VervotechHotelId wherever you have it. When a hotel cannot be resolved to a Vervotech ID, its rooms are grouped only among themselves and carry a placeholder identifier in the output, which cannot be joined to your Vervotech content.
File based runs are processed in English. The culture option is not available on this path.

Choosing#

Choose real time for live pricing and availability flows, for anything that needs a confidence score, and whenever your own mapping rules must apply.
Choose asynchronous when a single hotel carries more rooms than the real time path accepts and you can tolerate polling for the result.
Choose file based for one off or periodic bulk analysis across many hotels, for catalogue onboarding, and for evaluating coverage before you build an integration.
Previous
FAQ
Next
Map Rooms
Built with