HomeGuidesChangelog
Guides

Content API

Get Started

Unlock the world's richest accommodation data—one API call at a time

Whether you're building the next breakthrough travel platform, powering a global booking engine, or enriching your hospitality marketplace, our Content API is your gateway to comprehensive, up-to-date, and structured accommodation data.

We offer two powerful ways to access our accommodation content—choose the one that best fits your integration needs.


Content Data File

Perfect for bulk data ingestion and database initialization.

Note : After the initial link that you receive from the account manager, it might take up to 72 hours to populate all data.

FormatCSV
CustomizationAvailable in your preferred language and currency.
ScopeInclude hotel-level information ONLY.
Refresh RecommendationRefresh at least once a week.

Content Feed API

i
Important: Identifier Data Type
To prevent integer overflow and support future growth, all identifiers (e.g., booking IDs, RoomTypeID, and other key fields) must be stored and processed using a 64-bit integer type (such as BIGINT, Long, or the equivalent in your technology stack).
Do not use 32-bit integers (INT). Once an identifier exceeds the limit, it may overflow and result in incorrect values, data loss, runtime errors, or inconsistent system behavior.

Ideal for real-time access to rich, detailed content.

FormatJSON
To specify your preferred response format, include "Content-Type" header:
Content-Type: application/json
CustomizationAvailable in your preferred language and currency.
ScopeInclude detailed and richer hotel and room level information.
Refresh frequency recommendationFull update : Every week
Partial update : Daily

We currently have multiple feed API on our end to suits your needs. Don't get overwhelmed, we are here to guide you on how to do Full Update and Partial Update.

The main feed API that you need to understand will be marked as "Important" on the below

Feed_id 1: Continents ⭐ Important

Example request (http GET)


   https://[baseURL]/datafeeds/feed/getfeed?feed_id=1&token={{token}}&site_id={{siteid}}
  

Parameters:

NameTypeIs Mandatory
tokenUniqueIdentifierTrue
site_idIntegerTrue
olanguage_idIntegerFalse

Response Schema:

PathAttributeTypeDescription
continentFeed.continents.continent[].continentIdcontinentIdLongUnique identifier for the continent
continentFeed.continents.continent[].continentNamecontinentNameStringName of the continent in original/English language
continentFeed.continents.continent[].continentTranslatedcontinentTranslatedStringTranslated name of the continent based on requested language
continentFeed.continents.continent[].activeHotelsactiveHotelsLongTotal number of active hotels available in the continent (not related to active hotels available on your feed)

Response Example:


  {
      "continentFeed": {
          "continents": {
              "continent": [
                  {
                      "continentId": 1,
                      "continentName": "Africa",
                      "continentTranslated": "Africa",
                      "activeHotels": 1
                  }
              ]
          }
      }
  }
  
Feed_id 2: Countries ⭐ Important

Example request (http GET)


 https://[baseURL]/datafeeds/feed/getfeed?feed_id=2&token={{token}}&site_id={{siteid}}
  

Parameters:

NameTypeIs Mandatory
tokenUniqueIdentifierTrue
site_idIntegerTrue
olanguage_idIntegerFalse
oregion_idIntegerFalse

Response Schema:

PathAttributeTypeDescription
countryFeed.countries.country[].countryIdcountryIdLongUnique identifier for the country
countryFeed.countries.country[].continentIdcontinentIdLongIdentifier of the continent to which this country belongs
countryFeed.countries.country[].countryNamecountryNameStringName of the country in original/English language
countryFeed.countries.country[].countryTranslatedcountryTranslatedStringTranslated name of the country based on requested language
countryFeed.countries.country[].activeHotelsactiveHotelsLongTotal number of active hotels available in the country (not related to active hotels available on your feed)
countryFeed.countries.country[].countryIsocountryIsoStringISO 3166-1 alpha-3 country code (3 characters)
countryFeed.countries.country[].countryIso2countryIso2StringISO 3166-1 alpha-2 country code (2 characters)
countryFeed.countries.country[].longitudelongitudeDoubleGeographic longitude coordinate of the country center
countryFeed.countries.country[].latitudelatitudeDoubleGeographic latitude coordinate of the country center

Response Example:


  {
      "countryFeed" : {
          "countries" : {
              "country" : [
                  {
                      "countryId": 294,
                      "continentId": 1,
                      "countryName": "Comoros",
                      "countryTranslated": "Comoros",
                      "activeHotels": 611,
                      "countryIso": "COM",
                      "countryIso2": "KM",
                      "longitude": 43.33145,
                      "latitude": -11.6213
                  }
              ]
          }
      }
  }
  
Feed_id 3: Cities ⭐ Important

Example request (http GET)


   https://[baseURL]/datafeeds/feed/getfeed?feed_id=3&token={{token}}&site_id={{siteid}}
  

Parameters:

NameTypeIs Mandatory
tokenUniqueIdentifierTrue
site_idIntegerTrue
ocountry_idIntegerFalse
olanguage_idIntegerFalse

Response Schema:

PathAttributeTypeDescription
cityFeed.cities.city[].cityIdcityIdLongUnique identifier for the city
cityFeed.cities.city[].countryIdcountryIdLongIdentifier of the country to which this city belongs
cityFeed.cities.city[].cityNamecityNameStringName of the city in original/English language
cityFeed.cities.city[].cityTranslatedcityTranslatedStringTranslated name of the city based on requested language
cityFeed.cities.city[].activeHotelsactiveHotelsLongTotal number of active hotels available in the city (not related to active hotels available on your feed)
cityFeed.cities.city[].longitudelongitudeDoubleGeographic longitude coordinate of the city center
cityFeed.cities.city[].latitudelatitudeDoubleGeographic latitude coordinate of the city center
cityFeed.cities.city[].noAreanoAreaLongNumber of areas/districts within this city

Response Example:


  {
      "cityFeed" : {
          "cities" : {
              "city" : [
                  {
                      "cityId": 688637,
                      "countryId": 294,
                      "cityName": "Test City",
                      "cityTranslated": "Test City",
                      "activeHotels": 595,
                      "longitude": 43.40929,
                      "latitude": -11.615324,
                      "noArea": 0
                  }
              ]
          }
      }
  }
  
Feed_id 4: Area within Cities

Example request (http GET)


   https://[baseURL]/datafeeds/feed/getfeed?feed_id=4&token={{token}}&site_id={{siteid}}&ocity_id={{cityid}}
  

Parameters:

NameTypeIs Mandatory
tokenUniqueIdentifierTrue
site_idIntegerTrue
ocity_idIntegerTrue
olanguage_idIntegerFalse

Response Schema:

PathAttributeTypeDescription
areaFeed.areas.area[].areaIdareaIdLongUnique identifier for the area
areaFeed.areas.area[].cityIdcityIdLongIdentifier of the city to which this area belongs
areaFeed.areas.area[].areaNameareaNameStringName of the area in original/English language
areaFeed.areas.area[].areaTranslatedareaTranslatedStringTranslated name of the area based on requested language
areaFeed.areas.area[].activeHotelsactiveHotelsLongTotal number of active hotels available in the area (not related to active hotels available on your feed)
areaFeed.areas.area[].longitudelongitudeDoubleGeographic longitude coordinate of the area center
areaFeed.areas.area[].latitudelatitudeDoubleGeographic latitude coordinate of the area center
areaFeed.areas.area[].polygonpolygonStringGeographic boundary coordinates defining the area shape

Response Example:


  {
      "areaFeed": {
          "areas": {
              "area": [
                  {
                      "areaId": 499670,
                      "cityId": 688637,
                      "areaName": "Test Area",
                      "areaTranslated": "Test Area",
                      "activeHotels": 554,
                      "longitude": 43.331237,
                      "latitude": -11.636096,
                      "polygon": ""
                  }
              ]
          }
      }
  }
  
Feed_id 5: Hotel ⭐ Important

Example request (http GET)


   https://[baseURL]/datafeeds/feed/getfeed?feed_id=5&token={{token}}&site_id={{siteid}}&mcity_id={{cityid}}
  

Parameters:

NameTypeIs Mandatory
tokenUniqueIdentifierTrue
site_idIntegerTrue
mcity_idIntegerTrue
oarea_idIntegerFalse
ohotel_idIntegerFalse
olanguage_idIntegerFalse
ocurrencyStringFalse

Response Schema:

PathAttributeTypeDescription
hotelInformationFeed.hotelInformations.hotelInformation[].hotelIdhotelIdLongUnique identifier for the hotel
hotelInformationFeed.hotelInformations.hotelInformation[].hotelNamehotelNameStringName of the hotel in original/English language
hotelInformationFeed.hotelInformations.hotelInformation[].hotelFormerlyNamehotelFormerlyNameStringPrevious name of the hotel if it was renamed
hotelInformationFeed.hotelInformations.hotelInformation[].translatedNametranslatedNameStringTranslated name of the hotel based on requested language
hotelInformationFeed.hotelInformations.hotelInformation[].starRatingstarRatingDoubleStar rating of the hotel (e.g., 3.0, 4.5, 5.0)
hotelInformationFeed.hotelInformations.hotelInformation[].continentIdcontinentIdLongIdentifier of the continent where the hotel is located
hotelInformationFeed.hotelInformations.hotelInformation[].countryIdcountryIdLongIdentifier of the country where the hotel is located
hotelInformationFeed.hotelInformations.hotelInformation[].cityIdcityIdLongIdentifier of the city where the hotel is located
hotelInformationFeed.hotelInformations.hotelInformation[].areaIdareaIdLongIdentifier of the area/district where the hotel is located
hotelInformationFeed.hotelInformations.hotelInformation[].longitudelongitudeDoubleGeographic longitude coordinate of the hotel
hotelInformationFeed.hotelInformations.hotelInformation[].latitudelatitudeDoubleGeographic latitude coordinate of the hotel
hotelInformationFeed.hotelInformations.hotelInformation[].hotelUrlhotelUrlStringDirect URL link to the hotel list page on Agoda
hotelInformationFeed.hotelInformations.hotelInformation[].popularityScorepopularityScoreLongPopularity ranking score of the hotel
hotelInformationFeed.hotelInformations.hotelInformation[].remarkremarkStringAdditional notes, public notes, or house rules for the hotel
hotelInformationFeed.hotelInformations.hotelInformation[].numberOfReviewsnumberOfReviewsLongTotal count of guest reviews for the hotel
hotelInformationFeed.hotelInformations.hotelInformation[].ratingAverageratingAverageDoubleWeighted average rating score from guest reviews
hotelInformationFeed.hotelInformations.hotelInformation[].childAndExtrabedPolicychildAndExtrabedPolicyObjectChild and extra bed policy information for the hotel
hotelInformationFeed.hotelInformations.hotelInformation[].childAndExtrabedPolicy.infantAgeinfantAgeStringMaximum age considered as infant
hotelInformationFeed.hotelInformations.hotelInformation[].childAndExtrabedPolicy.childrenAgeFromchildrenAgeFromStringMinimum age considered as child
hotelInformationFeed.hotelInformations.hotelInformation[].childAndExtrabedPolicy.childrenAgeTochildrenAgeToStringMaximum age considered as child
hotelInformationFeed.hotelInformations.hotelInformation[].childAndExtrabedPolicy.childrenStayFreechildrenStayFreeStringIndicates if children can stay free of charge
hotelInformationFeed.hotelInformations.hotelInformation[].childAndExtrabedPolicy.minGuestAgeminGuestAgeStringMinimum age required for guests to check-in
hotelInformationFeed.hotelInformations.hotelInformation[].accommodationTypeaccommodationTypeStringType of accommodation (e.g., Hotel, Resort, Apartment)
hotelInformationFeed.hotelInformations.hotelInformation[].nationalityRestrictionsnationalityRestrictionsStringComma-separated list of nationalities restricted from booking
hotelInformationFeed.hotelInformations.hotelInformation[].singleRoomPropertysingleRoomPropertyBooleanIndicates if property is a single room non-hotel accommodation
hotelInformationFeed.hotelInformations.hotelInformation[].taxIdtaxIdStringTax identification number of the hotel
hotelInformationFeed.hotelInformations.hotelInformation[].ownerIdownerIdIntUnique identifier of the property owner
hotelInformationFeed.hotelInformations.hotelInformation[].ownerNameownerNameStringName of the property owner
hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfocompanyTraceabilityInfoObjectCompany traceability information for DSA compliance
hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.tradingNametradingNameStringTrading name of the company operating the hotel
hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.emailemailStringContact email of the company
hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.phoneNophoneNoStringContact phone number of the company
hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.registrationNoregistrationNoStringBusiness registration number of the company
hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.companyTraceabilityFlagcompanyTraceabilityFlagBooleanIndicates if company traceability information is available
hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.addressaddressObjectAddress information of the company
hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.address.addressUnitaddressUnitStringUnit number of the company address
hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.address.addressFlooraddressFloorStringFloor number of the company address
hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.address.addressBuildingaddressBuildingStringBuilding name of the company address
hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.address.addressStreet1addressStreet1StringPrimary street address line
hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.address.addressStreet2addressStreet2StringSecondary street address line
hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.address.citycityStringCity of the company address
hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.address.statestateStringState or province of the company address
hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.address.countrycountryStringCountry of the company address
hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.address.postalCodepostalCodeStringPostal/ZIP code of the company address

Response Example:


  {
      "hotelInformationFeed": {
          "hotelInformations": {
              "hotelInformation": [
                  {
                      "hotelId": 58940827,
                      "hotelName": "DO NOT BOOK TEST HOTEL!",
                      "hotelFormerlyName": "",
                      "translatedName": "DO NOT BOOK TEST HOTEL!",
                      "starRating": 4.0,
                      "continentId": 1,
                      "countryId": 294,
                      "cityId": 688637,
                      "areaId": 573809,
                      "longitude": 43.40929,
                      "latitude": -11.615324,
                      "hotelUrl": "https://www.agoda.com/partners/partnersearch.aspx?hid=58940827",
                      "popularityScore": 0,
                      "phoneNo": "",
                      "remark": "",
                      "numberOfReviews": 0,
                      "ratingAverage": 0,
                      "childAndExtrabedPolicy": {
                          "infantAge": "0",
                          "childrenAgeFrom": "0",
                          "childrenAgeTo": "0",
                          "childrenStayFree": "false",
                          "minGuestAge": "0"
                      },
                      "accommodationType": "Serviced apartment",
                      "nationalityRestrictions": "",
                      "singleRoomProperty": false
                  }
              ]
          }
      }
  }
  
Feed_id 6: Roomtypes per Hotel

Example request (http GET)


 https://[baseURL]/datafeeds/feed/getfeed?feed_id=6&token={{token}}&site_id={{siteid}}&mhotel_id={{hotelid}}
  

Parameters:

NameTypeIs Mandatory
tokenUniqueIdentifierTrue
site_idIntegerTrue
mhotel_idIntegerTrue
olanguage_idIntegerFalse

Response Schema:

PathAttributeTypeDescription
roomtypeFeed.roomtypes.roomtypes[].hotelIdhotelIdLongUnique identifier of the hotel this room belongs to
roomtypeFeed.roomtypes.roomtypes[].hotelRoomtypeIdhotelRoomtypeIdLongUnique identifier for the room type
roomtypeFeed.roomtypes.roomtypes[].standardCaptionstandardCaptionStringStandard name/caption of the room type in English
roomtypeFeed.roomtypes.roomtypes[].standardCaptionTranslatedstandardCaptionTranslatedStringTranslated name of the room type based on requested language
roomtypeFeed.roomtypes.roomtypes[].maxOccupancyPerRoommaxOccupancyPerRoomLongMaximum number of guests allowed in the room
roomtypeFeed.roomtypes.roomtypes[].noOfRoomnoOfRoomLongNumber of rooms available of this type
roomtypeFeed.roomtypes.roomtypes[].sizeOfRoomsizeOfRoomDoubleSize of the room in square meters
roomtypeFeed.roomtypes.roomtypes[].roomSizeInclTerraceroomSizeInclTerraceBooleanIndicates if room size includes terrace area
roomtypeFeed.roomtypes.roomtypes[].viewsviewsStringView type from the room (e.g., Sea View, City View)
roomtypeFeed.roomtypes.roomtypes[].maxExtrabedsmaxExtrabedsLongMaximum number of extra beds allowed in the room
roomtypeFeed.roomtypes.roomtypes[].maxInfantInRoommaxInfantInRoomLongMaximum number of infants allowed in the room
roomtypeFeed.roomtypes.roomtypes[].hotelRoomtypePicturehotelRoomtypePictureStringPrimary picture URL of the room type
roomtypeFeed.roomtypes.roomtypes[].hotelRoomtypePictureshotelRoomtypePicturesarray[String]Array of picture URLs for the room type
roomtypeFeed.roomtypes.roomtypes[].bedTypebedTypeStringDescription of bed types available in the room
roomtypeFeed.roomtypes.roomtypes[].hotelMasterRoomtypeIdhotelMasterRoomtypeIdLongIdentifier of the master room type this room belongs to
roomtypeFeed.roomtypes.roomtypes[].hotelRoomtypeAlternateNamehotelRoomtypeAlternateNameStringAlternative name for the room type
roomtypeFeed.roomtypes.roomtypes[].sharedBathroomsharedBathroomBooleanIndicates if the bathroom is shared with other rooms
roomtypeFeed.roomtypes.roomtypes[].gendergenderStringGender restriction for the room (Male/Female/empty)

Response Example:


  {
      "roomtypeFeed": {
          "roomtypes": {
              "roomtypes": [
                  {
                      "hotelId": 58940827,
                      "hotelRoomtypeId": 977656781109012,
                      "standardCaption": "Double Room",
                      "standardCaptionTranslated": "Double Room",
                      "maxOccupancyPerRoom": 1,
                      "noOfRoom": 1,
                      "sizeOfRoom": 213,
                      "roomSizeInclTerrace": false,
                      "views": "",
                      "maxExtrabeds": 0,
                      "maxInfantInRoom": 0,
                      "hotelRoomtypePicture": "https://pix8.agoda.net/hotelImages/58940827/0/ea0016aa2d300846b743bf1687f326c8.jpg?ce=0&s=312x",
                      "bedType": "",
                      "hotelMasterRoomtypeId":893429496729645,
                      "hotelRoomtypeAlternateName": "",
                      "sharedBathroom": false,
                      "gender": ""
                  }
              ]
          }
      }
  }
  
Feed_id 7: Picture per Hotel

Example request (http GET)


https://[baseURL]/datafeeds/feed/getfeed?feed_id=7&token={{token}}&site_id={{siteid}}&mhotel_id={{hotelid}}
  

Parameters:

NameTypeIs Mandatory
tokenUniqueIdentifierTrue
site_idIntegerTrue
mhotel_idIntegerTrue
olanguage_idIntegerFalse

Response Schema:

PathAttributeTypeDescription
pictureFeed.pictures.picture[].hotelIdhotelIdLongUnique identifier of the hotel this picture belongs to
pictureFeed.pictures.picture[].pictureIdpictureIdLongUnique identifier for the picture
pictureFeed.pictures.picture[].captioncaptionStringCaption/description of the picture in English
pictureFeed.pictures.picture[].captionTranslatedcaptionTranslatedStringTranslated caption based on requested language
pictureFeed.pictures.picture[].URLURLStringURL to access the picture image
pictureFeed.pictures.picture[].pictureGrouppictureGroupStringCategory/group of the picture (e.g., ROOM, LOBBY, POOL)

Response Example:


  {
      "pictureFeed": {
          "pictures": {
              "picture": [
                  {
                      "hotelId": 58940827,
                      "pictureId": 145566058,
                      "caption": "",
                      "captionTranslated": "",
                      "URL": "https://pix8.agoda.net/hotelImages/58940827/0/d1933b7b567fce679b70120bba7bdb1d.jpg?ce=0&s=312x",
                      "pictureGroup": "other"
                  }
              ]
          }
      }
  }
  
Feed_id 9: Facilities per Hotel

Example request (http GET)


https://[baseURL]/datafeeds/feed/getfeed?feed_id=9&token={{token}}&site_id={{siteid}}&mhotel_id={{hotelid}}
  

Parameters:

NameTypeIs Mandatory
tokenUniqueIdentifierTrue
site_idIntegerTrue
mhotel_idIntegerTrue
olanguage_idIntegerFalse

Response Schema:

PathAttributeTypeDescription
facilityFeed.facilities.facility[].hotelIdhotelIdLongUnique identifier of the hotel this facility belongs to
facilityFeed.facilities.facility[].propertyGroupDescriptionpropertyGroupDescriptionStringName of the facility group/category
facilityFeed.facilities.facility[].propertyIdpropertyIdLongUnique identifier for the facility
facilityFeed.facilities.facility[].propertyNamepropertyNameStringName of the facility in English
facilityFeed.facilities.facility[].propertyTranslatedNamepropertyTranslatedNameStringTranslated name of the facility based on requested language

Response Example:


  {
      "facilityFeed": {
          "facilities": {
              "facility": [
                  {
                      "hotelId": 58940827,
                      "propertyGroupDescription": "Services and conveniences",
                      "propertyId": 8,
                      "propertyName": "Laundry service",
                      "propertyTranslatedName": "Laundry service"
                  }
              ]
          }
      }
  }
  
Feed_id 10: Other info per hotel ⭐ Important

Example request (http GET)


https://[baseURL]/datafeeds/feed/getfeed?feed_id=10&token={{token}}&site_id={{siteid}}&mhotel_id={{hotelid}}
  

Parameters:

Name Type Is Mandatory
token UniqueIdentifier True
site_id Integer True
mhotel_id Integer True
olanguage_id Integer False

Response Schema:

Path Attribute Type Description
hotelInfoFeed hotelInfoFeed object Root element of the hotel info feed response
hotelInfoFeed.hotelInfos hotelInfos object Container element for the list of hotel information
hotelInfoFeed.hotelInfos.hotelInfo hotelInfo array Array of hotel info objects
hotelInfoFeed.hotelInfos.hotelInfo[].hotelId hotelId Long Unique identifier of the hotel
hotelInfoFeed.hotelInfos.hotelInfo[].propertyId propertyId Long Unique identifier for the useful info property
hotelInfoFeed.hotelInfos.hotelInfo[].propertyName propertyName String Name of the info property in English
hotelInfoFeed.hotelInfos.hotelInfo[].propertyTranslatedName propertyTranslatedName String Translated name of the info property based on requested language
hotelInfoFeed.hotelInfos.hotelInfo[].propertyDetails propertyDetails String Detailed description/value of the property information

Response Example:


{
    "hotelInfoFeed": {
        "hotelInfos": {
            "hotelInfo": [
                {
                    "hotelId": 58940827,
                    "propertyId": 8,
                    "propertyName": "Check-in from",
                    "propertyTranslatedName": "Check-in from",
                    "propertyDetails": "15:00"
                },
                {
                    "hotelId": 58940827,
                    "propertyId": 45,
                    "propertyName": "Check-in until",
                    "propertyTranslatedName": "Check-in until",
                    "propertyDetails": "18:00"
                }
            ]
        }
    }
}
  
Feed_id 13: Languages and Codes ⭐ Important

Example request (http GET)


https://[baseURL]/datafeeds/feed/getfeed?feed_id=13&token={{token}}&site_id={{siteid}}
  

Parameters:

NameTypeIs Mandatory
tokenUniqueIdentifierTrue
site_idIntegerTrue

Response Schema:

PathAttributeTypeDescription
languageFeed.languages.language[].languageIdlanguageIdLongUnique identifier for the language
languageFeed.languages.language[].languageNamelanguageNameStringName of the language in English
languageFeed.languages.language[].translatedNametranslatedNameStringName of the language in its native form

Response Example:


  {
      "languageFeed" : {
          "languages" : {
              "language" : [
                  {
                      "languageId" : 1,
                      "languageName" : "English",
                      "translatedName" : "English"
                  }
              ]
          }
      }
  }
  
Feed_id 14: Facilities per Roomtype ⭐ Important

Example request (http GET)


https://[baseURL]/datafeeds/feed/getfeed?feed_id=14&token={{token}}&site_id={{siteid}}&mhotel_id={{hotelid}}
  

Parameters:

NameTypeIs Mandatory
tokenUniqueIdentifierTrue
site_idIntegerTrue
mhotel_idIntegerTrue
olanguage_idIntegerFalse

Response Schema:

PathAttributeTypeDescription
roomTypeFacilityFeed.roomTypeFacilities.roomTypeFacility[].hotelIdhotelIdLongUnique identifier of the hotel
roomTypeFacilityFeed.roomTypeFacilities.roomTypeFacility[].hotelRoomTypeIdhotelRoomTypeIdLongUnique identifier of the room type
roomTypeFacilityFeed.roomTypeFacilities.roomTypeFacility[].propertyIdpropertyIdLongUnique identifier for the facility
roomTypeFacilityFeed.roomTypeFacilities.roomTypeFacility[].propertyNamepropertyNameStringName of the facility in English
roomTypeFacilityFeed.roomTypeFacilities.roomTypeFacility[].translatedNametranslatedNameStringTranslated name of the facility based on requested language

Response Example:


  {
      "roomTypeFacilityFeed": {
          "roomTypeFacilities": {
              "roomTypeFacility": [
                  {
                      "hotelId": 58936620,
                      "hotelRoomTypeId": 987644722341094,
                      "propertyId": 25,
                      "propertyName": "Air conditioning",
                      "translatedName": "Air conditioning"
                  }
              ]
          }
      }
  }
  
Feed_id 15: Hotel Chains

Example request (http GET)


https://[baseURL]/datafeeds/feed/getfeed?feed_id=15&token={{token}}&site_id={{siteid}}
  

Parameters:

NameTypeIs Mandatory
tokenUniqueIdentifierTrue
site_idIntegerTrue

Response Schema:

PathAttributeTypeDescription
hotelChainFeed.hotelChains.hotelChain[].chainIdchainIdLongUnique identifier for the hotel chain
hotelChainFeed.hotelChains.hotelChain[].chainNamechainNameStringName of the hotel chain (e.g., Marriott, Hilton)

Response Example:


  {
      "hotelChainFeed" : {
          "hotelChains" : {
              "hotelChain" : [
                  {
                      "chainId" : 0,
                      "chainName" : "No chain"
                  }
              ]
          }
      }
  }
  
Feed_id 16: Hotel per Hotels Brand

Example request (http GET)


https://[baseURL]/datafeeds/feed/getfeed?feed_id=16&token={{token}}&site_id={{siteid}}&mbrand_id={{brandid}}
  

Parameters:

NameTypeIs Mandatory
tokenUniqueIdentifierTrue
site_idIntegerTrue
mbrand_idIntegerTrue
olanguage_idIntegerFalse

Response Schema:

PathAttributeTypeDescription
brandHotelFeed.brandHotels.brandHotel[].brandIdbrandIdLongUnique identifier of the hotel brand/chain
brandHotelFeed.brandHotels.brandHotel[].hotelIdhotelIdLongUnique identifier of the hotel belonging to the brand

Response Example:


{
    "brandHotelFeed": {
        "brandHotels": {
            "brandHotel": [
                {
                    "brandId": 12345,
                    "hotelId": 123456
                }
            ]
        }
    }
}
  
Feed_id 17: Hotel Description

Example request (http GET)


https://[baseURL]/datafeeds/feed/getfeed?feed_id=17&token={{token}}&site_id={{siteid}}&mcity_id={{cityid}}
  

Parameters:

NameTypeIs Mandatory
tokenUniqueIdentifierTrue
site_idIntegerTrue
mcity_idIntegerTrue
oarea_idIntegerFalse
ohotel_idIntegerFalse
olanguage_idIntegerFalse

Response Schema:

PathAttributeTypeDescription
hotelDescriptionFeed.hotelDescriptions.hotelDescription[].hotelIdhotelIdLongUnique identifier of the hotel
hotelDescriptionFeed.hotelDescriptions.hotelDescription[].overviewoverviewStringLong/detailed description of the hotel
hotelDescriptionFeed.hotelDescriptions.hotelDescription[].snippetsnippetStringShort summary description of the hotel

Response Example:


  {
      "hotelDescriptionFeed": {
          "hotelDescriptions": {
              "hotelDescription": [
                  {
                      "hotelId": 58936620,
                      "overview": "....",
                      "snippet": "...."
                  }
              ]
          }
      }
  }
  
Feed_id 18: Hotel Address

Example request (http GET)


https://[baseURL]/datafeeds/feed/getfeed?feed_id=18&token={{token}}&site_id={{siteid}}&mcity_id={{cityid}}
  

Parameters:

NameTypeIs Mandatory
tokenUniqueIdentifierTrue
site_idIntegerTrue
mcity_idIntegerTrue
oarea_idIntegerFalse
ohotel_idIntegerFalse

Response Schema:

PathAttributeTypeDescription
hotelAddressFeed.hotelAddresses.hotelAddress[].hotelIdhotelIdLongUnique identifier of the hotel
hotelAddressFeed.hotelAddresses.hotelAddress[].addressTypeaddressTypeStringType of address (e.g., English address, Local language)
hotelAddressFeed.hotelAddresses.hotelAddress[].addressLine1addressLine1StringPrimary address line of the hotel
hotelAddressFeed.hotelAddresses.hotelAddress[].addressLine2addressLine2StringSecondary address line of the hotel
hotelAddressFeed.hotelAddresses.hotelAddress[].postalCodepostalCodeStringPostal/ZIP code of the hotel location
hotelAddressFeed.hotelAddresses.hotelAddress[].statestateStringState or province where the hotel is located
hotelAddressFeed.hotelAddresses.hotelAddress[].citycityStringCity where the hotel is located
hotelAddressFeed.hotelAddresses.hotelAddress[].countrycountryStringCountry where the hotel is located

Response Example:


  {
      "hotelAddressFeed": {
          "hotelAddresses": {
              "hotelAddress": [
                  {
                      "hotelId": 58936620,
                      "addressType": "English address",
                      "addressLine1": "test street, comoros",
                      "addressLine2": "",
                      "postalCode": "00000",
                      "state": "Comoros",
                      "city": "Test City",
                      "country": "Comoros"
                  }
              ]
          }
      }
  }
  
Feed_id 19: Full Hotel Information ⭐ Important

Example request (http GET)


https://[baseURL]/datafeeds/feed/getfeed?feed_id=19&token={{token}}&site_id={{siteid}}&mhotel_id={{hotelid}}
  

Parameters:

NameTypeIs Mandatory
tokenUniqueIdentifierTrue
site_idIntegerTrue
mhotel_idIntegerTrue
olanguage_idIntegerFalse
ocurrencyStringFalse

Response Schema:

1) hotels.hotel[]

PathAttributeTypeDescription
hotelFullFeed.hotels.hotel[].hotelIdhotelIdLongUnique identifier for the hotel
hotelFullFeed.hotels.hotel[].hotelNamehotelNameStringName of the hotel in original/English language
hotelFullFeed.hotels.hotel[].hotelFormerlyNamehotelFormerlyNameStringPrevious name of the hotel if it was renamed
hotelFullFeed.hotels.hotel[].translatedNametranslatedNameStringTranslated name of the hotel based on requested language
hotelFullFeed.hotels.hotel[].starRatingstarRatingDoubleStar rating of the hotel (e.g., 3.0, 4.5, 5.0)
hotelFullFeed.hotels.hotel[].continentIdcontinentIdLongIdentifier of the continent where the hotel is located
hotelFullFeed.hotels.hotel[].countryIdcountryIdLongIdentifier of the country where the hotel is located
hotelFullFeed.hotels.hotel[].cityIdcityIdLongIdentifier of the city where the hotel is located
hotelFullFeed.hotels.hotel[].areaIdareaIdLongIdentifier of the area/district where the hotel is located
hotelFullFeed.hotels.hotel[].longitudelongitudeDoubleGeographic longitude coordinate of the hotel
hotelFullFeed.hotels.hotel[].latitudelatitudeDoubleGeographic latitude coordinate of the hotel
hotelFullFeed.hotels.hotel[].hotelUrlhotelUrlStringDirect URL link to the hotel list page on Agoda
hotelFullFeed.hotels.hotel[].popularityScorepopularityScoreLongPopularity ranking score of the hotel
hotelFullFeed.hotels.hotel[].remarkremarkStringAdditional notes, public notes, or house rules for the hotel
hotelFullFeed.hotels.hotel[].numberOfReviewsnumberOfReviewsLongTotal count of guest reviews for the hotel
hotelFullFeed.hotels.hotel[].ratingAverageratingAverageDoubleWeighted average rating score from guest reviews
hotelFullFeed.hotels.hotel[].childAndExtrabedPolicychildAndExtrabedPolicyObjectChild and extra bed policy information for the hotel
hotelFullFeed.hotels.hotel[].accommodationTypeaccommodationTypeStringType of accommodation (e.g., Hotel, Resort, Apartment)
hotelFullFeed.hotels.hotel[].nationalityRestrictionsnationalityRestrictionsStringComma-separated list of nationalities restricted from booking
hotelFullFeed.hotels.hotel[].singleRoomPropertysingleRoomPropertyBooleanIndicates if property is a single room non-hotel accommodation
hotelFullFeed.hotels.hotel[].taxIdtaxIdStringTax identification number of the hotel
hotelFullFeed.hotels.hotel[].ownerIdownerIdIntUnique identifier of the property owner
hotelFullFeed.hotels.hotel[].ownerNameownerNameStringName of the property owner
hotelFullFeed.hotels.hotel[].companyTraceabilityInfocompanyTraceabilityInfoObjectCompany traceability information for DSA compliance

2) addresses.address[]

PathAttributeTypeDescription
hotelFullFeed.addresses.address[].hotelIdhotelIdLongUnique identifier of the hotel
hotelFullFeed.addresses.address[].addressTypeaddressTypeStringType of address (e.g., English address, Local language)
hotelFullFeed.addresses.address[].addressLine1addressLine1StringPrimary address line of the hotel
hotelFullFeed.addresses.address[].addressLine2addressLine2StringSecondary address line of the hotel
hotelFullFeed.addresses.address[].postalCodepostalCodeStringPostal/ZIP code of the hotel location
hotelFullFeed.addresses.address[].statestateStringState or province where the hotel is located
hotelFullFeed.addresses.address[].citycityStringCity where the hotel is located
hotelFullFeed.addresses.address[].countrycountryStringCountry where the hotel is located

3) descriptions.description[]

PathAttributeTypeDescription
hotelFullFeed.descriptions.description[].hotelIdhotelIdLongUnique identifier of the hotel
hotelFullFeed.descriptions.description[].overviewoverviewStringLong/detailed description of the hotel
hotelFullFeed.descriptions.description[].snippetsnippetStringShort summary description of the hotel

4) facilities.facility[]

PathAttributeTypeDescription
hotelFullFeed.facilities.facility[].hotelIdhotelIdLongUnique identifier of the hotel
hotelFullFeed.facilities.facility[].propertyGroupDescriptionpropertyGroupDescriptionStringName of the facility group/category
hotelFullFeed.facilities.facility[].propertyIdpropertyIdLongUnique identifier for the facility
hotelFullFeed.facilities.facility[].propertyNamepropertyNameStringName of the facility in English
hotelFullFeed.facilities.facility[].propertyTranslatedNamepropertyTranslatedNameStringTranslated name of the facility based on requested language

5) pictures.picture[]

PathAttributeTypeDescription
hotelFullFeed.pictures.picture[].hotelIdhotelIdLongUnique identifier of the hotel this picture belongs to
hotelFullFeed.pictures.picture[].pictureIdpictureIdLongUnique identifier for the picture
hotelFullFeed.pictures.picture[].captioncaptionStringCaption/description of the picture in English
hotelFullFeed.pictures.picture[].captionTranslatedcaptionTranslatedStringTranslated caption based on requested language
hotelFullFeed.pictures.picture[].URLURLStringURL to access the picture image

6) roomtypes.roomtype[]

PathAttributeTypeDescription
hotelFullFeed.roomtypes.roomtype[].hotelIdhotelIdLongUnique identifier of the hotel this room belongs to
hotelFullFeed.roomtypes.roomtype[].hotelRoomtypeIdhotelRoomtypeIdLongUnique identifier for the room type
hotelFullFeed.roomtypes.roomtype[].standardCaptionstandardCaptionStringStandard name/caption of the room type in English
hotelFullFeed.roomtypes.roomtype[].standardCaptionTranslatedstandardCaptionTranslatedStringTranslated name of the room type based on requested language
hotelFullFeed.roomtypes.roomtype[].maxOccupancyPerRoommaxOccupancyPerRoomLongMaximum number of guests allowed in the room
hotelFullFeed.roomtypes.roomtype[].noOfRoomnoOfRoomLongNumber of rooms available of this type
hotelFullFeed.roomtypes.roomtype[].sizeOfRoomsizeOfRoomDoubleSize of the room in square meters
hotelFullFeed.roomtypes.roomtype[].roomSizeInclTerraceroomSizeInclTerraceBooleanIndicates if room size includes terrace area
hotelFullFeed.roomtypes.roomtype[].viewsviewsStringView type from the room
hotelFullFeed.roomtypes.roomtype[].maxExtrabedsmaxExtrabedsLongMaximum number of extra beds allowed in the room
hotelFullFeed.roomtypes.roomtype[].maxInfantInRoommaxInfantInRoomLongMaximum number of infants allowed in the room
hotelFullFeed.roomtypes.roomtype[].hotelRoomtypePicturehotelRoomtypePictureStringPrimary picture URL of the room type
hotelFullFeed.roomtypes.roomtype[].hotelRoomtypePictureshotelRoomtypePicturesarray[String]Array of picture URLs for the room type
hotelFullFeed.roomtypes.roomtype[].bedTypebedTypeStringDescription of bed types available in the room
hotelFullFeed.roomtypes.roomtype[].hotelMasterRoomtypeIdhotelMasterRoomtypeIdLongIdentifier of the master room type this room belongs to
hotelFullFeed.roomtypes.roomtype[].hotelRoomtypeAlternateNamehotelRoomtypeAlternateNameStringAlternative name for the room type
hotelFullFeed.roomtypes.roomtype[].sharedBathroomsharedBathroomBooleanIndicates if the bathroom is shared with other rooms
hotelFullFeed.roomtypes.roomtype[].gendergenderStringGender restriction for the room

Response Example:


  {
      "hotelFullFeed": {
          "hotels": {
              "hotel": [
                  {
                      "hotelId": 58940827,
                      "hotelName": "DO NOT BOOK TEST HOTEL!",
                      "hotelFormerlyName": "",
                      "translatedName": "DO NOT BOOK TEST HOTEL!",
                      "starRating": 4.0,
                      "continentId": 1,
                      "countryId": 294,
                      "cityId": 688637,
                      "areaId": 573809,
                      "longitude": 43.40929,
                      "latitude": -11.615324,
                      "hotelUrl": "https://www.agoda.com/partners/partnersearch.aspx?hid=58940827",
                      "popularityScore": 0,
                      "remark": "",
                      "numberOfReviews": 0,
                      "ratingAverage": 0,
                      "childAndExtrabedPolicy": {
                          "infantAge": "0",
                          "childrenAgeFrom": "0",
                          "childrenAgeTo": "0",
                          "childrenStayFree": "false",
                          "minGuestAge": "0"
                      },
                      "accommodationType": "Serviced apartment",
                      "nationalityRestrictions": "",
                      "singleRoomProperty": false,
                      "ownerId": 0,
                      "ownerName": ""
                  }
              ]
          },
          "addresses": {
              "address": [
                  {
                      "hotelId": 58940827,
                      "addressType": "English address",
                      "addressLine1": "test",
                      "addressLine2": "",
                      "postalCode": "",
                      "state": "Comoros",
                      "city": "Test City",
                      "country": "Comoros"
                  }
              ]
          },
          "descriptions": {
              "description": [
                  {
                      "hotelId": 58940827,
                      "overview": "",
                      "snippet": ""
                  }
              ]
          },
          "facilities": {
              "facility": [
                  {
                      "hotelId": 58940827,
                      "propertyGroupDescription": "Services and conveniences",
                      "propertyId": 8,
                      "propertyName": "Laundry service",
                      "propertyTranslatedName": "Laundry service"
                  }
              ]
          },
          "pictures": {
              "picture": [
                  {
                      "hotelId": 58940827,
                      "pictureId": 145566058,
                      "caption": "",
                      "captionTranslated": "",
                      "URL": "https://pix8.agoda.net/hotelImages/58940827/0/d1933b7b567fce679b70120bba7bdb1d.jpg?ce=0&s=312x"
                  }
              ]
          },
          "roomtypes": {
              "roomtype": [
                  {
                      "hotelId": 58940827,
                      "hotelRoomtypeId": 987644722341094,
                      "standardCaption": "Double Room",
                      "standardCaptionTranslated": "Double Room",
                      "maxOccupancyPerRoom": 1,
                      "noOfRoom": 1,
                      "sizeOfRoom": 213,
                      "roomSizeInclTerrace": false,
                      "views": "",
                      "maxExtrabeds": 0,
                      "maxInfantInRoom": 0,
                      "hotelRoomtypePicture": "https://pix8.agoda.net/hotelImages/987644722341094/0/ea0016aa2d300846b743bf1687f326c8.jpg?ce=0&s=312x",
                      "bedType": "",
                      "hotelMasterRoomtypeId":893429496729645,
                      "hotelRoomtypeAlternateName": "",
                      "sharedBathroom": false,
                      "gender": ""
                  }
              ]
          }
      }
  }
  
Feed_id 20: Hotel Brands

Example request (http GET)


https://[baseURL]/datafeeds/feed/getfeed?feed_id=20&token={{token}}&site_id={{siteid}}
  

Parameters:

NameTypeIs Mandatory
tokenUniqueIdentifierTrue
site_idIntegerTrue

Response Schema:

PathAttributeTypeDescription
hotelBrandFeed.hotelBrands.hotelBrand[].brandIdbrandIdLongUnique identifier for the hotel brand
hotelBrandFeed.hotelBrands.hotelBrand[].brandNamebrandNameStringName of the hotel brand
hotelBrandFeed.hotelBrands.hotelBrand[].chainIdchainIdLongUnique identifier of the hotel chain this brand belongs to

Response Example:


  {
      "hotelBrandFeed" : {
          "hotelBrands" : {
              "hotelBrand" : [
                  {
                      "brandId" : 2186,
                      "brandName" : "JP_Sai Industries (Ideal Resort)",
                      "chainId" : 1009
                  }
              ]
          }
      }
  }
  
Feed_id 21: States/Provinces

Example request (http GET)


https://[baseURL]/datafeeds/feed/getfeed?feed_id=21&token={{token}}&site_id={{siteid}}
  

Parameters:

NameTypeIs Mandatory
tokenUniqueIdentifierTrue
site_idIntegerTrue
ocountry_idIntegerFalse
olanguage_idIntegerFalse

Response Schema:

PathAttributeTypeDescription
stateFeed.states.state[].stateIdstateIdLongUnique identifier for the state/province
stateFeed.states.state[].stateNamestateNameStringName of the state/province in original language
stateFeed.states.state[].stateTranslatedstateTranslatedStringTranslated name of the state/province in the requested language

Response Example:


  {
      "stateFeed": {
          "states": {
              "state": [
                  {
                      "stateId": 4050,
                      "stateName": "Comoros",
                      "stateTranslated": "Comoros"
                  }
              ]
          }
      }
  }
  
Feed_id 22: Benefits

Example request (http GET)


https://[baseURL]/datafeeds/feed/getfeed?feed_id=22&token={{token}}&site_id={{siteid}}
  

Parameters:

NameTypeIs Mandatory
tokenUniqueIdentifierTrue
site_idIntegerTrue
olanguage_idIntegerFalse

Response Schema:

PathAttributeTypeDescription
benefitFeed.benefits.benefit[].benefitIdbenefitIdLongUnique identifier for the benefit
benefitFeed.benefits.benefit[].benefitNamebenefitNameStringName of the benefit in original language
benefitFeed.benefits.benefit[].benefitTranslatedbenefitTranslatedStringTranslated name of the benefit in the requested language
benefitFeed.benefits.benefit[].benefitTemplatebenefitTemplateStringTemplate text for benefits with variables (empty if no variables)
benefitFeed.benefits.benefit[].benefitTemplateTranslatedbenefitTemplateTranslatedStringTranslated template text for benefits with variables
benefitFeed.benefits.benefit[].benefitWithVariablesbenefitWithVariablesBooleanIndicates if the benefit text contains variable placeholders

Response Example:


  {
      "benefitFeed" : {
          "benefits" : {
              "benefit" : [
                  {
                      "benefitId" : 1,
                      "benefitName" : "Breakfast",
                      "benefitTranslated" : "Breakfast",
                      "benefitTemplate" : "",
                      "benefitTemplateTranslated" : "",
                      "benefitWithVariables" : false
                  }
              ]
          }
      }
  }
  
Feed_id 30: Agoda Preferred Hotel

Example request (http GET)


https://[baseURL]/datafeeds/feed/getfeed?feed_id=30&token={{token}}&site_id={{siteid}}
  

Parameters:

NameTypeIs Mandatory
tokenUniqueIdentifierTrue
site_idIntegerTrue
ocountry_idIntegerFalse
ocity_idIntegerFalse

Response Schema:

PathAttributeTypeDescription
agodaPreferredFeed.agodaPreferredHotels.hotels[].hotelIdhotelIdLongUnique identifier for the Agoda preferred hotel
agodaPreferredFeed.agodaPreferredHotels.hotels[].countryIdcountryIdLongCountry identifier where the preferred hotel is located
agodaPreferredFeed.agodaPreferredHotels.hotels[].cityIdcityIdLongCity identifier where the preferred hotel is located

Response Example:


  {
      "agodaPreferredFeed" : {
          "agodaPreferredHotels" : {
              "hotels" : [
                  {
                      "hotelId" : 12345,
                      "countryId" : 123,
                      "cityId" : 123
                  }
              ]
          }
      }
  }
  
Feed_id 31: Local Information

Example request (http GET)


https://[baseURL]/datafeeds/feed/getfeed?feed_id=31&token={{token}}&site_id={{siteid}}&mhotel_id={{hotelid}}
  

Parameters:

NameTypeIs Mandatory
tokenUniqueIdentifierTrue
site_idIntegerTrue
mhotel_idIntegerTrue
olanguage_idIntegerFalse

Response Schema:

nearbyProperties.places[]

PathAttributeTypeDescription
localInformationFeed.nearbyPropertiesnearbyPropertiesObjectContainer for nearby property information (airports, stations, etc.)
localInformationFeed.nearbyProperties.placesplacesArrayArray of nearby property objects
localInformationFeed.nearbyProperties.places[].categoryNamecategoryNameStringCategory of the nearby property (e.g., Airport, Train Station)
localInformationFeed.nearbyProperties.places[].IATACodeIATACodeStringIATA code for airports or stations (if applicable)
localInformationFeed.nearbyProperties.places[].namenameStringName of the nearby property
localInformationFeed.nearbyProperties.places[].distancedistanceDoubleDistance from the hotel to this property
localInformationFeed.nearbyProperties.places[].distanceUnitdistanceUnitStringUnit of measurement for distance (e.g., km, mi)

nearbyPlaces.places[]

PathAttributeTypeDescription
localInformationFeed.nearbyPlacesnearbyPlacesObjectContainer for nearby places of interest
localInformationFeed.nearbyPlaces.placesplacesArrayArray of nearby place objects
localInformationFeed.nearbyPlaces.places[].namenameStringName of the nearby place
localInformationFeed.nearbyPlaces.places[].distancedistanceDoubleDistance from the hotel to this place
localInformationFeed.nearbyPlaces.places[].distanceUnitdistanceUnitStringUnit of measurement for distance (e.g., km, mi)

topPlaces.places[]

PathAttributeTypeDescription
localInformationFeed.topPlacestopPlacesObjectContainer for top attractions and landmarks
localInformationFeed.topPlaces.placesplacesArrayArray of top place objects
localInformationFeed.topPlaces.places[].namenameStringName of the top attraction or landmark
localInformationFeed.topPlaces.places[].distancedistanceDoubleDistance from the hotel to this attraction
localInformationFeed.topPlaces.places[].distanceUnitdistanceUnitStringUnit of measurement for distance (e.g., km, mi)

Response Example:


  {
      "localInformationFeed": {
          "nearbyPlaces": {
              "places": [
                  {
                      "name": "test landmark",
                      "distance": 8.81,
                      "distanceUnit": "kilometers"
                  }
              ]
          }
      }
  }
  
Feed_id 32: Hotel Change ⭐ Important

Example request (http GET)


https://[baseURL]/datafeeds/feed/getfeed?feed_id=32&token={{token}}&site_id={{siteid}}&mdate={{YYYYMMDD}}&mtypeid={{mtypeid}}
  

Parameters:

Name Type Is Mandatory
token UniqueIdentifier True
site_id Integer True
mdate Date (YYYYMMDD) - in Bangkok Timezone (UTC +7) True
mtypeid Integer True
opageid Integer False

Pagination

This feed can return results in multiple pages. To retrieve subsequent pages, submit the opageid request parameter.

  • How to get the first page: omit opageid (or set opageid=1 if you prefer).
  • How to get next pages: set opageid to the desired page number (e.g., opageid=2, opageid=3, ...).
  • How to know the total pages: check the response at changedHotelFeed.changed.page.total.
  • How to know the current page: check the response at changedHotelFeed.changed.page.id.

Example

Page 1 (default):


https://[baseURL]/datafeeds/feed/getfeed?feed_id=32&token={{token}}&site_id={{siteid}}&mdate={{YYYYMMDD}}&mtypeid={{mtypeid}}
  

Page 2:


https://[baseURL]/datafeeds/feed/getfeed?feed_id=32&token={{token}}&site_id={{siteid}}&mdate={{YYYYMMDD}}&mtypeid={{mtypeid}}&opageid=2
  

Additional Information:

  • mdate is the date in the format YYYYMMDD, within the range [today() - 7, today() - 1]. (the date is based on Bangkok timezone (UTC+7))
  • The possible values for mtypeid are:
    • mtypeid=1: HotelID has content updates on mdate; update the content
    • mtypeid=2: HotelID is newly enabled for partners on mdate; map these new properties
    • mtypeid=3: HotelID is disabled/closed for partners on mdate; remove these properties from search

Response Schema:

Path Attribute Type Description
changedHotelFeed changedHotelFeed object Root element of the changed hotel feed response
changedHotelFeed.changed changed object Container for changed hotel data
changedHotelFeed.changed.hotels hotels object/array Hotel change data (can be simple list or detailed list)
changedHotelFeed.changed.hotels.hotel_id hotel_id array[Long] Array of hotel IDs that have changed (simple format)
changedHotelFeed.changed.page page object Pagination information for the response
changedHotelFeed.changed.page.id id Int Current page number in the paginated response
changedHotelFeed.changed.page.total total Int Total number of pages available

Response Example:


  {
      "changedHotelFeed": {
          "changed": {
              "hotels": {
                  "hotel_id": [
                      12345,
                      67891
                  ]
              },
              "page": {
                  "id": 1,
                  "total": 1
              }
          }
      }
  }
  

Best Practice - Regularly refreshing content

To keep your hotel content fresh and up-to-date, we recommend the following schedule:

Full Refresh

Recommended frequency : Weekly

Use this job to rebuild your entire location + hotel content dataset from scratch (or to validate that your local dataset is still consistent).

What you will achieve

By the end of the weekly refresh, your local database will contain:

  • Full geo hierarchy: Continent → Country → City
  • Full hotel catalog per city (list of hotelId)
  • Full hotel content per hotelId (via Feed 19)
  • Optional operational/policy details (via Feed 10)
  • Optional multi-language content (via olanguage_id)

Prerequisites

You must have:

  • token (provided to you)
  • site_id (provided to you)
  • baseURL (provided to you)

All requests are HTTP GET:

https://[baseURL]/datafeeds/feed/getfeed?...params...

Step-by-step process (do in this order)

1. Build the geographic hierarchy

  1. Feed 1 (Continents)

    • Call once
    • Store continents keyed by continentId
  2. Feed 2 (Countries)

    • Call once
    • Store countries keyed by countryId
    • Link each country to its parent continent using continentId
  3. Feed 3 (Cities)

    • Call once
    • Store cities keyed by cityId
    • Link each city to its parent country using countryId

Why this matters: you need cityId to fetch hotels in Step 2.


2. Load the hotel catalog per city (hotelId list)

For each cityId from Feed 3:

  • Call Feed 5 (Hotel) with mcity_id=<cityId>
  • Store each hotel’s primary fields (at minimum store hotelId)

Example:

https://[baseURL]/datafeeds/feed/getfeed?feed_id=5&token={{token}}&site_id={{siteid}}&mcity_id={{cityId}}

Tip: this is usually the largest step. Implement throttling + retries.


3. Load language codes (only if you need multi-language content)

If you want to store translated hotel content:

  1. Call Feed 13 (Languages and Codes) once
  2. Decide which languages you will support (which olanguage_id values)

Example:

https://[baseURL]/datafeeds/feed/getfeed?feed_id=13&token={{token}}&site_id={{siteid}}

If you only need default language content, you can skip using olanguage_id.


4. Pull full hotel content for each hotelId (main content load)

For each hotelId collected in Step 2:

  1. Call Feed 19 (Full Hotel Information) with mhotel_id=<hotelId>
  2. Store the returned content into your DB:
    • Hotel core info
    • Addresses
    • Descriptions
    • Facilities
    • Pictures
    • Roomtypes

Example:

https://[baseURL]/datafeeds/feed/getfeed?feed_id=19&token={{token}}&site_id={{siteid}}&mhotel_id={{hotelId}}

Multi-language support (optional):

  • Repeat Feed 19 for each selected language:
    • &olanguage_id=<languageId>
  • Store localized fields per language (e.g., hotel name/description/facility translations)

5. (Recommended) Enrich with operational details (Feed 10)

For each hotelId:

  1. Call Feed 10 (Other info per hotel) with mhotel_id=<hotelId>
  2. Store/upsert operational details such as:
    • Check-in from / until
    • Check-out until
    • Number of rooms
    • Other useful info

Example:

https://[baseURL]/datafeeds/feed/getfeed?feed_id=10&token={{token}}&site_id={{siteid}}&mhotel_id={{hotelId}}

Why: Feed 10 often contains operational details partners want to display, and it may not be fully covered in Feed 19.


Operational recommendations (for reliable weekly runs)

  • Rate limit: Implement a small delay between requests — slow down after errors.
  • Retry strategy: retry timeouts and 5xxresponses with exponential backoff.
  • Checkpointing: store progress (last processed cityId / hotelId) so the job can resume.
  • Parallelism: if allowed, parallelize by city/hotel, but start with low concurrency.
  • Logging: track counts:
    • continents / countries / cities fetched
    • hotels per city
    • total hotels fully processed (Feed 19, and Feed 10 if enabled)

Suggested schedule

Run once per week during low-traffic hours (e.g., Sunday night).

If you also run the daily incremental sync (Feed 32), the weekly job acts as a “full reconciliation” safety net.


Content Update

Recommended frequency : Daily

Use this daily job to detect what changed yesterday and refresh only the affected hotels.

What you will achieve

By the end of the daily refresh, your local database will be updated for:

  • Hotels that became inactive/disabled (remove/deactivate locally)
  • Hotels that became newly enabled/active (add + pull full info)
  • Hotels with content updates (refresh hotel content)

This job uses:

  • Feed 32 to detect which hotels changed
  • Feed 19 to pull full hotel content for affected hotels
  • Feed 10 to pull operational/policy details for affected hotels
  • (Optional) Feed 13 if you fetch multi-language content

Step-by-step process (do in this order)

1. Set mdate correctly (Bangkok (UTC+7) timezone)

Feed 32 requires:

  • mdate must be within [today - 7, today - 1]
  • Date is based on Bangkok timezone (UTC+7)

Example: Today Bangkok timezone(UTC+7): 2026-03-02
So for daily refresh, use:

  • mdate = 20260301

2. Daily processing order (must follow this order)

Process Feed 32 by mtypeid in the following order:

  1. mtypeid=3 → hotels disabled/inactive (deactivate/remove locally)
  2. mtypeid=2 → newly enabled hotels (add/map + fetch content)
  3. mtypeid=1 → content updates (refresh content)

Why this order: it prevents re-adding/updating hotels that should be removed first.


3. For each mtypeid, page through Feed 32 using opageid

Feed 32 is paginated. For each mtypeid:

  1. Start with opageid=1 (or omit opageid for the first page)
  2. Call Feed 32
  3. Check pagination in response:
    • changedHotelFeed.changed.page.id (current page)
    • changedHotelFeed.changed.page.total (total pages)
  4. If id < total, increment opageid and call again
  5. Apply actions per page (recommended), and update your DB before requesting the next page

Example request:

https://[baseURL]/datafeeds/feed/getfeed?feed_id=32&token={{token}}&site_id={{siteid}}&mdate=20260301&mtypeid={{mtypeid}}&opageid={{opageid}}

4. Actions to apply for each mtypeid

A) mtypeid=3 (inactive/disabled hotels)

For each page of results from Feed 32:

  1. Read the list of hotel_id
  2. Deactivate or remove these hotels in your local system
  3. Update database (commit changes)
  4. Fetch next page (if any)

What “deactivate/remove” means (typical implementation):

  • Mark hotel as not searchable / inactive in your DB
  • Optionally hide from UI or exclude from your search index

B) mtypeid=2 (newly enabled hotels)

For each page of results from Feed 32:

  1. Read the list of hotel_id
  2. For each hotelId, call:
    • Feed 19 to pull full hotel information
    • Feed 10 to pull operational/policy info
  3. Update database (commit changes)
  4. Fetch next page (if any)

Feed 19 example:

https://[baseURL]/datafeeds/feed/getfeed?feed_id=19&token={{token}}&site_id={{siteid}}&mhotel_id={{hotelId}}

Feed 10 example:

https://[baseURL]/datafeeds/feed/getfeed?feed_id=10&token={{token}}&site_id={{siteid}}&mhotel_id={{hotelId}}

C) mtypeid=1 (content updates)

For each page of results from Feed 32:

  1. Read the list of hotel_id
  2. For each hotelId, call:
    • Feed 19 to refresh full hotel information
    • Feed 10 to refresh operational/policy info
  3. Update database (commit changes)
  4. Fetch next page (if any)

5. Multi-language support (optional)

If you store content in multiple languages:

  1. Call Feed 13 (Languages and Codes) periodically (e.g., daily or cache weekly)
  2. For mtypeid=2 and mtypeid=1, repeat Feed 19 per language:
https://[baseURL]/datafeeds/feed/getfeed?feed_id=19&token={{token}}&site_id={{siteid}}&mhotel_id={{hotelId}}&olanguage_id={{languageId}}

Then store localized fields per language in your DB.


Operational recommendations (for reliable daily runs)

  • Apply changes per page and commit DB updates before moving to the next page
  • Retry transient failures (timeouts/5xx) with exponential backoff
  • Log what you did
    • mdate used
    • counts of hotels per mtypeid
    • number of pages processed per mtypeid
    • number of hotels updated/deactivated
  • Checkpoint progress
    • last processed mtypeid + opageid so you can resume

Quick checklist for daily refresh :

  • Compute mdate as yesterday in Bangkok (UTC+7) timezone
  • Run Feed 32 in order: mtypeid 3 → 2 → 1
  • Loop pages with opageid
  • For each page, apply action + update database, then request next page
  • For mtypeid 1 and 2: refresh using Feed 19 + Feed 10