1. Operational APIs
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
        GET
      • Review Mappings of Booked Hotels
        POST
      • Start Mapping by SFTP Folder
        GET
      • Get Mapping History by Run ID
        POST
    • 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. Operational APIs

Start Mapping by SFTP Folder

GET
/mappings/StartMappingByFtpFolder
Triggers the hotel mapping process for provider content files uploaded to the SFTP server. Follow the steps below to prepare, upload, and initiate mapping.

Step 1: Prepare Hotel Content Files#

Download content template
Requirements:
File extension must be .csv
Create a separate file for each provider
Column names must match the template exactly (case-sensitive)
Do not include invalid values such as NULL, null, or whitespace
Template columns:
| Column | Required | Description | |--------|----------|-------------| | SupplierName | Yes | Provider name from the master list | | SupplierHotelId | Yes | Property ID from the provider | | HotelName | Yes | Property name | | Line1 | Yes | Address line 1 | | Line2 | No | Address line 2 | | CityName | Yes | City name | | CityCode | No | City/location code | | StateName | No | State name | | StateCode | No | State code | | ZipCode | Yes | Postal/zip code | | CountryName | Conditional | Country name (either CountryName or CountryCode is required) | | CountryCode | Conditional | ISO country code (either CountryName or CountryCode is required) | | StarRating | Yes | Star rating | | Lat | Yes | Latitude | | Long | Yes | Longitude | | ChainCode | No | Hotel chain code | | Phones | No | Phone numbers | | Fax | No | Fax number | | Email | No | Email address | | Website | No | Official website URL | | PropertyType | No | Property type (e.g., Hotel, Motel, Resort, Villa) |

Step 2: Upload Files to SFTP#

2.1 Connect to the SFTP server using any SFTP client. Retrieve credentials from the Vervotech client portal under Load Provider Content.
2.2 Create the directory structure at the SFTP root:
[FTP Root]/[DATE]/[ProviderName]/[ProviderKey]
| Component | Format | Description | |-----------|--------|-------------| | DATE | DDMMYYYY | Upload date | | ProviderName | String | Provider name from the master list. Contact Vervotech Support if not listed. | | ProviderKey | String | Provider key from the Vervotech client portal under Manage Your Providers. |
2.3 Upload one CSV file per folder (recommended). Example paths:
18122022/HotelBeds/accountId__accountId__HotelBeds/HotelBedsProperties.csv 18122022/Priceline/accountId__accountId__Priceline/PricelineProperties.csv 18122022/EAN/accountId__accountId__EAN/EANProperties.csv

Step 3: Trigger Mapping via Client Portal#

1.
Log in to the Vervotech client portal.
2.
Navigate to Load Provider Content.
3.
Enter the full SFTP folder path and click Start Mapping.
4.
A unique RunId is generated for each file. Wait for processing to complete before uploading new files.

Step 4: Monitor Progress#

Check mapping progress under Providers Content Processing in the client portal using the RunId.

Step 5: Trigger Mapping via API#

Automate the workflow programmatically:
1.
Upload files using an SFTP client.
2.
Call this API with the SFTP folder path as input.
3.
The response includes a RunId for tracking progress.

Request

Query Params

Header Params

Responses

🟢200OK
application/json
OK
Body

🟠403Forbidden
🟠404Not Found
🔴500Internal Server Error
🔴503Service Unavailable
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request GET 'https://hotelmapping.vervotech.com/api/3.0/mappings/StartMappingByFtpFolder?templateType=Vervotech_Template&folderName=18122019/HotelBeds/johndoe__johndoe__HotelBeds' \
--header 'apikey: 056ec4c3-be6b-4c36-a4cc-a403ce9592a1' \
--header 'accountId: DemoAccount'
Response Response Example
200 - Example 1
{
    "Status": true,
    "Message": "Success",
    "RunId": "rc1234-3232-5657",
    "MappingStats": [
        {
            "RunId": "f676e8a6-00b4-4231-8a1a-5a19d290837d",
            "MissingCountryCodes": 0,
            "MissingGeoCodes": 0,
            "MissingHotelChains": 0,
            "MissingPhones": 0,
            "MissingStarRatings": 0,
            "MissingZipCodes": 0,
            "MissingCity": 0,
            "MissingFax": 0,
            "MissingName": 0,
            "MissingState": 0,
            "MissingAddress": 0,
            "PublishCount": 0,
            "TotalProviderCount": 0,
            "StorageFilePath": "11092022/MGHoliday/via__via__MGHoliday/MGHoliday.csv",
            "ValidationMessage": "File format is Valid. Hotel count 269076.",
            "StartDate": "2022-09-12T10:03:57.134Z",
            "EndDate": "2022-09-12T11:30:07.219Z",
            "WorkFlowType": "FTPDownloader",
            "DownloadStats": [
                {
                    "status": "None",
                    "runId": "string",
                    "language": "string",
                    "clientCode": "string",
                    "originalFileName": "string",
                    "fileType": "string",
                    "fileUploadUrl": "string",
                    "resultDownloadUrl": "string",
                    "estimatedCompletionTime": "string",
                    "workFlowType": "string",
                    "totalProviderCount": 0,
                    "disabledCount": 0,
                    "recycledCount": 0,
                    "newCount": 0,
                    "downloadedHotelsCount": 0,
                    "newlyMappedCount": 0,
                    "matchCount": 0,
                    "updateCount": 0,
                    "suspectCount": 0,
                    "recycleSuspectCount": 0,
                    "recycleMappedCount": 0,
                    "preSuspectCount": null,
                    "publishCount": 0,
                    "startDate": "2019-08-24T14:15:22.123Z",
                    "endDate": "2019-08-24T14:15:22.123Z",
                    "lastUpdatedDateTime": "2019-08-24T14:15:22.123Z",
                    "contentDownloadFinishedOn": "2019-08-24T14:15:22.123Z",
                    "propertiesCreditsUsed": 0,
                    "missingAddress": 0,
                    "missingZipCodes": 0,
                    "missingPhones": 0,
                    "missingGeoCodes": 0,
                    "missingCountryCodes": 0,
                    "missingHotelChains": 0,
                    "missingChainCodes": 0,
                    "missingChainNames": 0,
                    "missingStarRatings": 0,
                    "missingCity": 0,
                    "missingFax": 0,
                    "missingName": 0,
                    "missingState": 0,
                    "missingPropertyType": 0,
                    "missingLat": 0,
                    "missingLong": 0,
                    "uniqueProperties": 0,
                    "isHotelDisablerCompleted": true,
                    "hotelDisablerStatus": "string",
                    "invalidHotels": 0,
                    "testProperties": 0,
                    "inValidHotelNamesFormat": 0,
                    "inValidAddressFormat": 0,
                    "key": "string",
                    "providerFamily": "string",
                    "isExclusiveDownloader": true,
                    "isScheduledDownloader": true
                }
            ],
            "Status": "None"
        }
    ],
    "StatusCode": 2000
}
Previous
Review Mappings of Booked Hotels
Next
Get Mapping History by Run ID
Built with