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.
| Format | CSV |
| Customization | Available in your preferred language and currency. |
| Scope | Include hotel-level information ONLY. |
| Refresh Recommendation | Refresh at least once a week. |
Content Feed API
BIGINT, Long, or the equivalent in your technology stack).
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.
| Format | JSON To specify your preferred response format, include "Content-Type" header: Content-Type: application/json |
| Customization | Available in your preferred language and currency. |
| Scope | Include detailed and richer hotel and room level information. |
| Refresh frequency recommendation | Full 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:
| Name | Type | Is Mandatory |
|---|---|---|
| token | UniqueIdentifier | True |
| site_id | Integer | True |
| olanguage_id | Integer | False |
Response Schema:
| Path | Attribute | Type | Description |
|---|---|---|---|
| continentFeed.continents.continent[].continentId | continentId | Long | Unique identifier for the continent |
| continentFeed.continents.continent[].continentName | continentName | String | Name of the continent in original/English language |
| continentFeed.continents.continent[].continentTranslated | continentTranslated | String | Translated name of the continent based on requested language |
| continentFeed.continents.continent[].activeHotels | activeHotels | Long | Total 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:
| Name | Type | Is Mandatory |
|---|---|---|
| token | UniqueIdentifier | True |
| site_id | Integer | True |
| olanguage_id | Integer | False |
| oregion_id | Integer | False |
Response Schema:
| Path | Attribute | Type | Description |
|---|---|---|---|
| countryFeed.countries.country[].countryId | countryId | Long | Unique identifier for the country |
| countryFeed.countries.country[].continentId | continentId | Long | Identifier of the continent to which this country belongs |
| countryFeed.countries.country[].countryName | countryName | String | Name of the country in original/English language |
| countryFeed.countries.country[].countryTranslated | countryTranslated | String | Translated name of the country based on requested language |
| countryFeed.countries.country[].activeHotels | activeHotels | Long | Total number of active hotels available in the country (not related to active hotels available on your feed) |
| countryFeed.countries.country[].countryIso | countryIso | String | ISO 3166-1 alpha-3 country code (3 characters) |
| countryFeed.countries.country[].countryIso2 | countryIso2 | String | ISO 3166-1 alpha-2 country code (2 characters) |
| countryFeed.countries.country[].longitude | longitude | Double | Geographic longitude coordinate of the country center |
| countryFeed.countries.country[].latitude | latitude | Double | Geographic 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:
| Name | Type | Is Mandatory |
|---|---|---|
| token | UniqueIdentifier | True |
| site_id | Integer | True |
| ocountry_id | Integer | False |
| olanguage_id | Integer | False |
Response Schema:
| Path | Attribute | Type | Description |
|---|---|---|---|
| cityFeed.cities.city[].cityId | cityId | Long | Unique identifier for the city |
| cityFeed.cities.city[].countryId | countryId | Long | Identifier of the country to which this city belongs |
| cityFeed.cities.city[].cityName | cityName | String | Name of the city in original/English language |
| cityFeed.cities.city[].cityTranslated | cityTranslated | String | Translated name of the city based on requested language |
| cityFeed.cities.city[].activeHotels | activeHotels | Long | Total number of active hotels available in the city (not related to active hotels available on your feed) |
| cityFeed.cities.city[].longitude | longitude | Double | Geographic longitude coordinate of the city center |
| cityFeed.cities.city[].latitude | latitude | Double | Geographic latitude coordinate of the city center |
| cityFeed.cities.city[].noArea | noArea | Long | Number 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:
| Name | Type | Is Mandatory |
|---|---|---|
| token | UniqueIdentifier | True |
| site_id | Integer | True |
| ocity_id | Integer | True |
| olanguage_id | Integer | False |
Response Schema:
| Path | Attribute | Type | Description |
|---|---|---|---|
| areaFeed.areas.area[].areaId | areaId | Long | Unique identifier for the area |
| areaFeed.areas.area[].cityId | cityId | Long | Identifier of the city to which this area belongs |
| areaFeed.areas.area[].areaName | areaName | String | Name of the area in original/English language |
| areaFeed.areas.area[].areaTranslated | areaTranslated | String | Translated name of the area based on requested language |
| areaFeed.areas.area[].activeHotels | activeHotels | Long | Total number of active hotels available in the area (not related to active hotels available on your feed) |
| areaFeed.areas.area[].longitude | longitude | Double | Geographic longitude coordinate of the area center |
| areaFeed.areas.area[].latitude | latitude | Double | Geographic latitude coordinate of the area center |
| areaFeed.areas.area[].polygon | polygon | String | Geographic 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:
| Name | Type | Is Mandatory |
|---|---|---|
| token | UniqueIdentifier | True |
| site_id | Integer | True |
| mcity_id | Integer | True |
| oarea_id | Integer | False |
| ohotel_id | Integer | False |
| olanguage_id | Integer | False |
| ocurrency | String | False |
Response Schema:
| Path | Attribute | Type | Description |
|---|---|---|---|
| hotelInformationFeed.hotelInformations.hotelInformation[].hotelId | hotelId | Long | Unique identifier for the hotel |
| hotelInformationFeed.hotelInformations.hotelInformation[].hotelName | hotelName | String | Name of the hotel in original/English language |
| hotelInformationFeed.hotelInformations.hotelInformation[].hotelFormerlyName | hotelFormerlyName | String | Previous name of the hotel if it was renamed |
| hotelInformationFeed.hotelInformations.hotelInformation[].translatedName | translatedName | String | Translated name of the hotel based on requested language |
| hotelInformationFeed.hotelInformations.hotelInformation[].starRating | starRating | Double | Star rating of the hotel (e.g., 3.0, 4.5, 5.0) |
| hotelInformationFeed.hotelInformations.hotelInformation[].continentId | continentId | Long | Identifier of the continent where the hotel is located |
| hotelInformationFeed.hotelInformations.hotelInformation[].countryId | countryId | Long | Identifier of the country where the hotel is located |
| hotelInformationFeed.hotelInformations.hotelInformation[].cityId | cityId | Long | Identifier of the city where the hotel is located |
| hotelInformationFeed.hotelInformations.hotelInformation[].areaId | areaId | Long | Identifier of the area/district where the hotel is located |
| hotelInformationFeed.hotelInformations.hotelInformation[].longitude | longitude | Double | Geographic longitude coordinate of the hotel |
| hotelInformationFeed.hotelInformations.hotelInformation[].latitude | latitude | Double | Geographic latitude coordinate of the hotel |
| hotelInformationFeed.hotelInformations.hotelInformation[].hotelUrl | hotelUrl | String | Direct URL link to the hotel list page on Agoda |
| hotelInformationFeed.hotelInformations.hotelInformation[].popularityScore | popularityScore | Long | Popularity ranking score of the hotel |
| hotelInformationFeed.hotelInformations.hotelInformation[].remark | remark | String | Additional notes, public notes, or house rules for the hotel |
| hotelInformationFeed.hotelInformations.hotelInformation[].numberOfReviews | numberOfReviews | Long | Total count of guest reviews for the hotel |
| hotelInformationFeed.hotelInformations.hotelInformation[].ratingAverage | ratingAverage | Double | Weighted average rating score from guest reviews |
| hotelInformationFeed.hotelInformations.hotelInformation[].childAndExtrabedPolicy | childAndExtrabedPolicy | Object | Child and extra bed policy information for the hotel |
| hotelInformationFeed.hotelInformations.hotelInformation[].childAndExtrabedPolicy.infantAge | infantAge | String | Maximum age considered as infant |
| hotelInformationFeed.hotelInformations.hotelInformation[].childAndExtrabedPolicy.childrenAgeFrom | childrenAgeFrom | String | Minimum age considered as child |
| hotelInformationFeed.hotelInformations.hotelInformation[].childAndExtrabedPolicy.childrenAgeTo | childrenAgeTo | String | Maximum age considered as child |
| hotelInformationFeed.hotelInformations.hotelInformation[].childAndExtrabedPolicy.childrenStayFree | childrenStayFree | String | Indicates if children can stay free of charge |
| hotelInformationFeed.hotelInformations.hotelInformation[].childAndExtrabedPolicy.minGuestAge | minGuestAge | String | Minimum age required for guests to check-in |
| hotelInformationFeed.hotelInformations.hotelInformation[].accommodationType | accommodationType | String | Type of accommodation (e.g., Hotel, Resort, Apartment) |
| hotelInformationFeed.hotelInformations.hotelInformation[].nationalityRestrictions | nationalityRestrictions | String | Comma-separated list of nationalities restricted from booking |
| hotelInformationFeed.hotelInformations.hotelInformation[].singleRoomProperty | singleRoomProperty | Boolean | Indicates if property is a single room non-hotel accommodation |
| hotelInformationFeed.hotelInformations.hotelInformation[].taxId | taxId | String | Tax identification number of the hotel |
| hotelInformationFeed.hotelInformations.hotelInformation[].ownerId | ownerId | Int | Unique identifier of the property owner |
| hotelInformationFeed.hotelInformations.hotelInformation[].ownerName | ownerName | String | Name of the property owner |
| hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo | companyTraceabilityInfo | Object | Company traceability information for DSA compliance |
| hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.tradingName | tradingName | String | Trading name of the company operating the hotel |
| hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.email | String | Contact email of the company | |
| hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.phoneNo | phoneNo | String | Contact phone number of the company |
| hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.registrationNo | registrationNo | String | Business registration number of the company |
| hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.companyTraceabilityFlag | companyTraceabilityFlag | Boolean | Indicates if company traceability information is available |
| hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.address | address | Object | Address information of the company |
| hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.address.addressUnit | addressUnit | String | Unit number of the company address |
| hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.address.addressFloor | addressFloor | String | Floor number of the company address |
| hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.address.addressBuilding | addressBuilding | String | Building name of the company address |
| hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.address.addressStreet1 | addressStreet1 | String | Primary street address line |
| hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.address.addressStreet2 | addressStreet2 | String | Secondary street address line |
| hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.address.city | city | String | City of the company address |
| hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.address.state | state | String | State or province of the company address |
| hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.address.country | country | String | Country of the company address |
| hotelInformationFeed.hotelInformations.hotelInformation[].companyTraceabilityInfo.address.postalCode | postalCode | String | Postal/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:
| 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 |
|---|---|---|---|
| roomtypeFeed.roomtypes.roomtypes[].hotelId | hotelId | Long | Unique identifier of the hotel this room belongs to |
| roomtypeFeed.roomtypes.roomtypes[].hotelRoomtypeId | hotelRoomtypeId | Long | Unique identifier for the room type |
| roomtypeFeed.roomtypes.roomtypes[].standardCaption | standardCaption | String | Standard name/caption of the room type in English |
| roomtypeFeed.roomtypes.roomtypes[].standardCaptionTranslated | standardCaptionTranslated | String | Translated name of the room type based on requested language |
| roomtypeFeed.roomtypes.roomtypes[].maxOccupancyPerRoom | maxOccupancyPerRoom | Long | Maximum number of guests allowed in the room |
| roomtypeFeed.roomtypes.roomtypes[].noOfRoom | noOfRoom | Long | Number of rooms available of this type |
| roomtypeFeed.roomtypes.roomtypes[].sizeOfRoom | sizeOfRoom | Double | Size of the room in square meters |
| roomtypeFeed.roomtypes.roomtypes[].roomSizeInclTerrace | roomSizeInclTerrace | Boolean | Indicates if room size includes terrace area |
| roomtypeFeed.roomtypes.roomtypes[].views | views | String | View type from the room (e.g., Sea View, City View) |
| roomtypeFeed.roomtypes.roomtypes[].maxExtrabeds | maxExtrabeds | Long | Maximum number of extra beds allowed in the room |
| roomtypeFeed.roomtypes.roomtypes[].maxInfantInRoom | maxInfantInRoom | Long | Maximum number of infants allowed in the room |
| roomtypeFeed.roomtypes.roomtypes[].hotelRoomtypePicture | hotelRoomtypePicture | String | Primary picture URL of the room type |
| roomtypeFeed.roomtypes.roomtypes[].hotelRoomtypePictures | hotelRoomtypePictures | array[String] | Array of picture URLs for the room type |
| roomtypeFeed.roomtypes.roomtypes[].bedType | bedType | String | Description of bed types available in the room |
| roomtypeFeed.roomtypes.roomtypes[].hotelMasterRoomtypeId | hotelMasterRoomtypeId | Long | Identifier of the master room type this room belongs to |
| roomtypeFeed.roomtypes.roomtypes[].hotelRoomtypeAlternateName | hotelRoomtypeAlternateName | String | Alternative name for the room type |
| roomtypeFeed.roomtypes.roomtypes[].sharedBathroom | sharedBathroom | Boolean | Indicates if the bathroom is shared with other rooms |
| roomtypeFeed.roomtypes.roomtypes[].gender | gender | String | Gender 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:
| 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 |
|---|---|---|---|
| pictureFeed.pictures.picture[].hotelId | hotelId | Long | Unique identifier of the hotel this picture belongs to |
| pictureFeed.pictures.picture[].pictureId | pictureId | Long | Unique identifier for the picture |
| pictureFeed.pictures.picture[].caption | caption | String | Caption/description of the picture in English |
| pictureFeed.pictures.picture[].captionTranslated | captionTranslated | String | Translated caption based on requested language |
| pictureFeed.pictures.picture[].URL | URL | String | URL to access the picture image |
| pictureFeed.pictures.picture[].pictureGroup | pictureGroup | String | Category/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:
| 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 |
|---|---|---|---|
| facilityFeed.facilities.facility[].hotelId | hotelId | Long | Unique identifier of the hotel this facility belongs to |
| facilityFeed.facilities.facility[].propertyGroupDescription | propertyGroupDescription | String | Name of the facility group/category |
| facilityFeed.facilities.facility[].propertyId | propertyId | Long | Unique identifier for the facility |
| facilityFeed.facilities.facility[].propertyName | propertyName | String | Name of the facility in English |
| facilityFeed.facilities.facility[].propertyTranslatedName | propertyTranslatedName | String | Translated 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:
| Name | Type | Is Mandatory |
|---|---|---|
| token | UniqueIdentifier | True |
| site_id | Integer | True |
Response Schema:
| Path | Attribute | Type | Description |
|---|---|---|---|
| languageFeed.languages.language[].languageId | languageId | Long | Unique identifier for the language |
| languageFeed.languages.language[].languageName | languageName | String | Name of the language in English |
| languageFeed.languages.language[].translatedName | translatedName | String | Name 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:
| 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 |
|---|---|---|---|
| roomTypeFacilityFeed.roomTypeFacilities.roomTypeFacility[].hotelId | hotelId | Long | Unique identifier of the hotel |
| roomTypeFacilityFeed.roomTypeFacilities.roomTypeFacility[].hotelRoomTypeId | hotelRoomTypeId | Long | Unique identifier of the room type |
| roomTypeFacilityFeed.roomTypeFacilities.roomTypeFacility[].propertyId | propertyId | Long | Unique identifier for the facility |
| roomTypeFacilityFeed.roomTypeFacilities.roomTypeFacility[].propertyName | propertyName | String | Name of the facility in English |
| roomTypeFacilityFeed.roomTypeFacilities.roomTypeFacility[].translatedName | translatedName | String | Translated 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:
| Name | Type | Is Mandatory |
|---|---|---|
| token | UniqueIdentifier | True |
| site_id | Integer | True |
Response Schema:
| Path | Attribute | Type | Description |
|---|---|---|---|
| hotelChainFeed.hotelChains.hotelChain[].chainId | chainId | Long | Unique identifier for the hotel chain |
| hotelChainFeed.hotelChains.hotelChain[].chainName | chainName | String | Name 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:
| Name | Type | Is Mandatory |
|---|---|---|
| token | UniqueIdentifier | True |
| site_id | Integer | True |
| mbrand_id | Integer | True |
| olanguage_id | Integer | False |
Response Schema:
| Path | Attribute | Type | Description |
|---|---|---|---|
| brandHotelFeed.brandHotels.brandHotel[].brandId | brandId | Long | Unique identifier of the hotel brand/chain |
| brandHotelFeed.brandHotels.brandHotel[].hotelId | hotelId | Long | Unique 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:
| Name | Type | Is Mandatory |
|---|---|---|
| token | UniqueIdentifier | True |
| site_id | Integer | True |
| mcity_id | Integer | True |
| oarea_id | Integer | False |
| ohotel_id | Integer | False |
| olanguage_id | Integer | False |
Response Schema:
| Path | Attribute | Type | Description |
|---|---|---|---|
| hotelDescriptionFeed.hotelDescriptions.hotelDescription[].hotelId | hotelId | Long | Unique identifier of the hotel |
| hotelDescriptionFeed.hotelDescriptions.hotelDescription[].overview | overview | String | Long/detailed description of the hotel |
| hotelDescriptionFeed.hotelDescriptions.hotelDescription[].snippet | snippet | String | Short 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:
| Name | Type | Is Mandatory |
|---|---|---|
| token | UniqueIdentifier | True |
| site_id | Integer | True |
| mcity_id | Integer | True |
| oarea_id | Integer | False |
| ohotel_id | Integer | False |
Response Schema:
| Path | Attribute | Type | Description |
|---|---|---|---|
| hotelAddressFeed.hotelAddresses.hotelAddress[].hotelId | hotelId | Long | Unique identifier of the hotel |
| hotelAddressFeed.hotelAddresses.hotelAddress[].addressType | addressType | String | Type of address (e.g., English address, Local language) |
| hotelAddressFeed.hotelAddresses.hotelAddress[].addressLine1 | addressLine1 | String | Primary address line of the hotel |
| hotelAddressFeed.hotelAddresses.hotelAddress[].addressLine2 | addressLine2 | String | Secondary address line of the hotel |
| hotelAddressFeed.hotelAddresses.hotelAddress[].postalCode | postalCode | String | Postal/ZIP code of the hotel location |
| hotelAddressFeed.hotelAddresses.hotelAddress[].state | state | String | State or province where the hotel is located |
| hotelAddressFeed.hotelAddresses.hotelAddress[].city | city | String | City where the hotel is located |
| hotelAddressFeed.hotelAddresses.hotelAddress[].country | country | String | Country 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:
| Name | Type | Is Mandatory |
|---|---|---|
| token | UniqueIdentifier | True |
| site_id | Integer | True |
| mhotel_id | Integer | True |
| olanguage_id | Integer | False |
| ocurrency | String | False |
Response Schema:
1) hotels.hotel[]
| Path | Attribute | Type | Description |
|---|---|---|---|
| hotelFullFeed.hotels.hotel[].hotelId | hotelId | Long | Unique identifier for the hotel |
| hotelFullFeed.hotels.hotel[].hotelName | hotelName | String | Name of the hotel in original/English language |
| hotelFullFeed.hotels.hotel[].hotelFormerlyName | hotelFormerlyName | String | Previous name of the hotel if it was renamed |
| hotelFullFeed.hotels.hotel[].translatedName | translatedName | String | Translated name of the hotel based on requested language |
| hotelFullFeed.hotels.hotel[].starRating | starRating | Double | Star rating of the hotel (e.g., 3.0, 4.5, 5.0) |
| hotelFullFeed.hotels.hotel[].continentId | continentId | Long | Identifier of the continent where the hotel is located |
| hotelFullFeed.hotels.hotel[].countryId | countryId | Long | Identifier of the country where the hotel is located |
| hotelFullFeed.hotels.hotel[].cityId | cityId | Long | Identifier of the city where the hotel is located |
| hotelFullFeed.hotels.hotel[].areaId | areaId | Long | Identifier of the area/district where the hotel is located |
| hotelFullFeed.hotels.hotel[].longitude | longitude | Double | Geographic longitude coordinate of the hotel |
| hotelFullFeed.hotels.hotel[].latitude | latitude | Double | Geographic latitude coordinate of the hotel |
| hotelFullFeed.hotels.hotel[].hotelUrl | hotelUrl | String | Direct URL link to the hotel list page on Agoda |
| hotelFullFeed.hotels.hotel[].popularityScore | popularityScore | Long | Popularity ranking score of the hotel |
| hotelFullFeed.hotels.hotel[].remark | remark | String | Additional notes, public notes, or house rules for the hotel |
| hotelFullFeed.hotels.hotel[].numberOfReviews | numberOfReviews | Long | Total count of guest reviews for the hotel |
| hotelFullFeed.hotels.hotel[].ratingAverage | ratingAverage | Double | Weighted average rating score from guest reviews |
| hotelFullFeed.hotels.hotel[].childAndExtrabedPolicy | childAndExtrabedPolicy | Object | Child and extra bed policy information for the hotel |
| hotelFullFeed.hotels.hotel[].accommodationType | accommodationType | String | Type of accommodation (e.g., Hotel, Resort, Apartment) |
| hotelFullFeed.hotels.hotel[].nationalityRestrictions | nationalityRestrictions | String | Comma-separated list of nationalities restricted from booking |
| hotelFullFeed.hotels.hotel[].singleRoomProperty | singleRoomProperty | Boolean | Indicates if property is a single room non-hotel accommodation |
| hotelFullFeed.hotels.hotel[].taxId | taxId | String | Tax identification number of the hotel |
| hotelFullFeed.hotels.hotel[].ownerId | ownerId | Int | Unique identifier of the property owner |
| hotelFullFeed.hotels.hotel[].ownerName | ownerName | String | Name of the property owner |
| hotelFullFeed.hotels.hotel[].companyTraceabilityInfo | companyTraceabilityInfo | Object | Company traceability information for DSA compliance |
2) addresses.address[]
| Path | Attribute | Type | Description |
|---|---|---|---|
| hotelFullFeed.addresses.address[].hotelId | hotelId | Long | Unique identifier of the hotel |
| hotelFullFeed.addresses.address[].addressType | addressType | String | Type of address (e.g., English address, Local language) |
| hotelFullFeed.addresses.address[].addressLine1 | addressLine1 | String | Primary address line of the hotel |
| hotelFullFeed.addresses.address[].addressLine2 | addressLine2 | String | Secondary address line of the hotel |
| hotelFullFeed.addresses.address[].postalCode | postalCode | String | Postal/ZIP code of the hotel location |
| hotelFullFeed.addresses.address[].state | state | String | State or province where the hotel is located |
| hotelFullFeed.addresses.address[].city | city | String | City where the hotel is located |
| hotelFullFeed.addresses.address[].country | country | String | Country where the hotel is located |
3) descriptions.description[]
| Path | Attribute | Type | Description |
|---|---|---|---|
| hotelFullFeed.descriptions.description[].hotelId | hotelId | Long | Unique identifier of the hotel |
| hotelFullFeed.descriptions.description[].overview | overview | String | Long/detailed description of the hotel |
| hotelFullFeed.descriptions.description[].snippet | snippet | String | Short summary description of the hotel |
4) facilities.facility[]
| Path | Attribute | Type | Description |
|---|---|---|---|
| hotelFullFeed.facilities.facility[].hotelId | hotelId | Long | Unique identifier of the hotel |
| hotelFullFeed.facilities.facility[].propertyGroupDescription | propertyGroupDescription | String | Name of the facility group/category |
| hotelFullFeed.facilities.facility[].propertyId | propertyId | Long | Unique identifier for the facility |
| hotelFullFeed.facilities.facility[].propertyName | propertyName | String | Name of the facility in English |
| hotelFullFeed.facilities.facility[].propertyTranslatedName | propertyTranslatedName | String | Translated name of the facility based on requested language |
5) pictures.picture[]
| Path | Attribute | Type | Description |
|---|---|---|---|
| hotelFullFeed.pictures.picture[].hotelId | hotelId | Long | Unique identifier of the hotel this picture belongs to |
| hotelFullFeed.pictures.picture[].pictureId | pictureId | Long | Unique identifier for the picture |
| hotelFullFeed.pictures.picture[].caption | caption | String | Caption/description of the picture in English |
| hotelFullFeed.pictures.picture[].captionTranslated | captionTranslated | String | Translated caption based on requested language |
| hotelFullFeed.pictures.picture[].URL | URL | String | URL to access the picture image |
6) roomtypes.roomtype[]
| Path | Attribute | Type | Description |
|---|---|---|---|
| hotelFullFeed.roomtypes.roomtype[].hotelId | hotelId | Long | Unique identifier of the hotel this room belongs to |
| hotelFullFeed.roomtypes.roomtype[].hotelRoomtypeId | hotelRoomtypeId | Long | Unique identifier for the room type |
| hotelFullFeed.roomtypes.roomtype[].standardCaption | standardCaption | String | Standard name/caption of the room type in English |
| hotelFullFeed.roomtypes.roomtype[].standardCaptionTranslated | standardCaptionTranslated | String | Translated name of the room type based on requested language |
| hotelFullFeed.roomtypes.roomtype[].maxOccupancyPerRoom | maxOccupancyPerRoom | Long | Maximum number of guests allowed in the room |
| hotelFullFeed.roomtypes.roomtype[].noOfRoom | noOfRoom | Long | Number of rooms available of this type |
| hotelFullFeed.roomtypes.roomtype[].sizeOfRoom | sizeOfRoom | Double | Size of the room in square meters |
| hotelFullFeed.roomtypes.roomtype[].roomSizeInclTerrace | roomSizeInclTerrace | Boolean | Indicates if room size includes terrace area |
| hotelFullFeed.roomtypes.roomtype[].views | views | String | View type from the room |
| hotelFullFeed.roomtypes.roomtype[].maxExtrabeds | maxExtrabeds | Long | Maximum number of extra beds allowed in the room |
| hotelFullFeed.roomtypes.roomtype[].maxInfantInRoom | maxInfantInRoom | Long | Maximum number of infants allowed in the room |
| hotelFullFeed.roomtypes.roomtype[].hotelRoomtypePicture | hotelRoomtypePicture | String | Primary picture URL of the room type |
| hotelFullFeed.roomtypes.roomtype[].hotelRoomtypePictures | hotelRoomtypePictures | array[String] | Array of picture URLs for the room type |
| hotelFullFeed.roomtypes.roomtype[].bedType | bedType | String | Description of bed types available in the room |
| hotelFullFeed.roomtypes.roomtype[].hotelMasterRoomtypeId | hotelMasterRoomtypeId | Long | Identifier of the master room type this room belongs to |
| hotelFullFeed.roomtypes.roomtype[].hotelRoomtypeAlternateName | hotelRoomtypeAlternateName | String | Alternative name for the room type |
| hotelFullFeed.roomtypes.roomtype[].sharedBathroom | sharedBathroom | Boolean | Indicates if the bathroom is shared with other rooms |
| hotelFullFeed.roomtypes.roomtype[].gender | gender | String | Gender 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:
| Name | Type | Is Mandatory |
|---|---|---|
| token | UniqueIdentifier | True |
| site_id | Integer | True |
Response Schema:
| Path | Attribute | Type | Description |
|---|---|---|---|
| hotelBrandFeed.hotelBrands.hotelBrand[].brandId | brandId | Long | Unique identifier for the hotel brand |
| hotelBrandFeed.hotelBrands.hotelBrand[].brandName | brandName | String | Name of the hotel brand |
| hotelBrandFeed.hotelBrands.hotelBrand[].chainId | chainId | Long | Unique 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:
| Name | Type | Is Mandatory |
|---|---|---|
| token | UniqueIdentifier | True |
| site_id | Integer | True |
| ocountry_id | Integer | False |
| olanguage_id | Integer | False |
Response Schema:
| Path | Attribute | Type | Description |
|---|---|---|---|
| stateFeed.states.state[].stateId | stateId | Long | Unique identifier for the state/province |
| stateFeed.states.state[].stateName | stateName | String | Name of the state/province in original language |
| stateFeed.states.state[].stateTranslated | stateTranslated | String | Translated 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:
| Name | Type | Is Mandatory |
|---|---|---|
| token | UniqueIdentifier | True |
| site_id | Integer | True |
| olanguage_id | Integer | False |
Response Schema:
| Path | Attribute | Type | Description |
|---|---|---|---|
| benefitFeed.benefits.benefit[].benefitId | benefitId | Long | Unique identifier for the benefit |
| benefitFeed.benefits.benefit[].benefitName | benefitName | String | Name of the benefit in original language |
| benefitFeed.benefits.benefit[].benefitTranslated | benefitTranslated | String | Translated name of the benefit in the requested language |
| benefitFeed.benefits.benefit[].benefitTemplate | benefitTemplate | String | Template text for benefits with variables (empty if no variables) |
| benefitFeed.benefits.benefit[].benefitTemplateTranslated | benefitTemplateTranslated | String | Translated template text for benefits with variables |
| benefitFeed.benefits.benefit[].benefitWithVariables | benefitWithVariables | Boolean | Indicates 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:
| Name | Type | Is Mandatory |
|---|---|---|
| token | UniqueIdentifier | True |
| site_id | Integer | True |
| ocountry_id | Integer | False |
| ocity_id | Integer | False |
Response Schema:
| Path | Attribute | Type | Description |
|---|---|---|---|
| agodaPreferredFeed.agodaPreferredHotels.hotels[].hotelId | hotelId | Long | Unique identifier for the Agoda preferred hotel |
| agodaPreferredFeed.agodaPreferredHotels.hotels[].countryId | countryId | Long | Country identifier where the preferred hotel is located |
| agodaPreferredFeed.agodaPreferredHotels.hotels[].cityId | cityId | Long | City 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:
| Name | Type | Is Mandatory |
|---|---|---|
| token | UniqueIdentifier | True |
| site_id | Integer | True |
| mhotel_id | Integer | True |
| olanguage_id | Integer | False |
Response Schema:
nearbyProperties.places[]
| Path | Attribute | Type | Description |
|---|---|---|---|
| localInformationFeed.nearbyProperties | nearbyProperties | Object | Container for nearby property information (airports, stations, etc.) |
| localInformationFeed.nearbyProperties.places | places | Array | Array of nearby property objects |
| localInformationFeed.nearbyProperties.places[].categoryName | categoryName | String | Category of the nearby property (e.g., Airport, Train Station) |
| localInformationFeed.nearbyProperties.places[].IATACode | IATACode | String | IATA code for airports or stations (if applicable) |
| localInformationFeed.nearbyProperties.places[].name | name | String | Name of the nearby property |
| localInformationFeed.nearbyProperties.places[].distance | distance | Double | Distance from the hotel to this property |
| localInformationFeed.nearbyProperties.places[].distanceUnit | distanceUnit | String | Unit of measurement for distance (e.g., km, mi) |
nearbyPlaces.places[]
| Path | Attribute | Type | Description |
|---|---|---|---|
| localInformationFeed.nearbyPlaces | nearbyPlaces | Object | Container for nearby places of interest |
| localInformationFeed.nearbyPlaces.places | places | Array | Array of nearby place objects |
| localInformationFeed.nearbyPlaces.places[].name | name | String | Name of the nearby place |
| localInformationFeed.nearbyPlaces.places[].distance | distance | Double | Distance from the hotel to this place |
| localInformationFeed.nearbyPlaces.places[].distanceUnit | distanceUnit | String | Unit of measurement for distance (e.g., km, mi) |
topPlaces.places[]
| Path | Attribute | Type | Description |
|---|---|---|---|
| localInformationFeed.topPlaces | topPlaces | Object | Container for top attractions and landmarks |
| localInformationFeed.topPlaces.places | places | Array | Array of top place objects |
| localInformationFeed.topPlaces.places[].name | name | String | Name of the top attraction or landmark |
| localInformationFeed.topPlaces.places[].distance | distance | Double | Distance from the hotel to this attraction |
| localInformationFeed.topPlaces.places[].distanceUnit | distanceUnit | String | Unit 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 setopageid=1if you prefer). -
How to get next pages: set
opageidto 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
-
Feed 1 (Continents)
- Call once
- Store continents keyed by
continentId
-
Feed 2 (Countries)
- Call once
- Store countries keyed by
countryId - Link each country to its parent continent using
continentId
-
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:
- Call Feed 13 (Languages and Codes) once
- Decide which languages you will support (which
olanguage_idvalues)
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:
- Call Feed 19 (Full Hotel Information) with
mhotel_id=<hotelId> - 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:
- Call Feed 10 (Other info per hotel) with
mhotel_id=<hotelId> - 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)
mdate correctly (Bangkok (UTC+7) timezone)Feed 32 requires:
mdatemust 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:
mtypeid=3→ hotels disabled/inactive (deactivate/remove locally)mtypeid=2→ newly enabled hotels (add/map + fetch content)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
mtypeid, page through Feed 32 using opageidFeed 32 is paginated. For each mtypeid:
- Start with
opageid=1(or omitopageidfor the first page) - Call Feed 32
- Check pagination in response:
changedHotelFeed.changed.page.id(current page)changedHotelFeed.changed.page.total(total pages)
- If
id < total, incrementopageidand call again - 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
mtypeidA) mtypeid=3 (inactive/disabled hotels)
mtypeid=3 (inactive/disabled hotels)For each page of results from Feed 32:
- Read the list of
hotel_id - Deactivate or remove these hotels in your local system
- Update database (commit changes)
- 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)
mtypeid=2 (newly enabled hotels)For each page of results from Feed 32:
- Read the list of
hotel_id - For each
hotelId, call:- Feed 19 to pull full hotel information
- Feed 10 to pull operational/policy info
- Update database (commit changes)
- 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)
mtypeid=1 (content updates)For each page of results from Feed 32:
- Read the list of
hotel_id - For each
hotelId, call:- Feed 19 to refresh full hotel information
- Feed 10 to refresh operational/policy info
- Update database (commit changes)
- Fetch next page (if any)
5. Multi-language support (optional)
If you store content in multiple languages:
- Call Feed 13 (Languages and Codes) periodically (e.g., daily or cache weekly)
- For
mtypeid=2andmtypeid=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+opageidso you can resume
- last processed
Quick checklist for daily refresh :
- Compute
mdateas 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
Updated 6 days ago
