Search Suggest 2.0 API Response
API: {{ base_api }}/search/suggest.json Example response:
{
"data": {
"promotions": [
{
"id": "10",
"type": "restaurant_tags",
"attributes": {
"cover": {
"url": "/uploads/restaurant_tag/cover/10/pexels-the-castlebar-5893533.jpg"
},
"title": "International",
"title_en": "Hashtags:International",
"tag_type": "hashtags",
"total_restaurants": 218
}
}
],
"interesting": [
{
"id": "10",
"type": "restaurant_tags",
"attributes": {
"cover": {
"url": "/uploads/restaurant_tag/cover/10/pexels-the-castlebar-5893533.jpg"
},
"title": "International",
"title_en": "Cuisine:International",
"tag_type": "cuisine",
"total_restaurants": 218
}
}
],
"restaurants": [
{
"id": "837",
"type": "restaurants",
"attributes": {
"lowest_ayce_price": "฿1,999",
"lowest_pp_price": null,
"lowest_xp_price": null,
"lowest_hs_price": null,
"lowest_bfp_price": null,
"lowest_sm_price": null,
"lowest_hah_price": null,
"price_per_person": {
"amount": "1999.0",
"currency": "THB",
"symbol": "฿",
"format": "฿1,999"
},
"price_and_pricing_type": {
"amount": 1999,
"currency": "THB",
"symbol": "฿",
"format": "฿1,999",
"pricing_type": "per_person"
},
"is_deleted": false,
"lat": "13.7797",
"lng": "100.4748",
"largest_table": 30,
"branch_id": 82,
"min_party_size": 1,
"name": "Copper Beyond Buffet (Hungry Hub Dine In)",
"names": {
"th": "Copper Beyond Buffet (Hungry Hub Dine In)",
"en": "Copper Beyond Buffet (Hungry Hub Dine In)"
},
"slug": "copper-beyond-buffet-hungry-hub-dine-in",
"favorited": false,
"allow_booking": true,
"availability": "in stock",
"reviews_score": 4.8,
"reviews_count": 38470,
"address": "71, 50 Borommaratchachonnani Rd, Khwaeng Arun Amarin, Khet Bangkok Noi, Krung Thep Maha Nakhon 10700",
"map_location": "http://www.google.com/maps?q=13.7797,100.4748",
"promoted_by_hh": true,
"enable_big_group_feature": true,
"location": "Pinklao",
"primary_location": {
"id": 1255,
"name": "Pinklao"
},
"cuisine": "International",
"primary_cuisine": {
"id": 10,
"name": "International"
},
"image_cover_url": {
"thumb": "https://images.hungryhub.com/uploads/restaurants/837/photos/108323/RackMultipart20230915-226-c39tjd.jpg",
"large": "https://images.hungryhub.com/uploads/restaurants/837/photos/108323/RackMultipart20230915-226-c39tjd.jpg",
"square": "https://images.hungryhub.com/uploads/restaurants/837/photos/108323/RackMultipart20230915-226-c39tjd.jpg"
},
"canonical_link": "https://web.hungryhub.com/restaurants/copper-beyond-buffet-hungry-hub-dine-in?locale=th",
"last_booking_was_made": "Mon, 06 Nov 2023 04:58:59 +0000",
"total_covers": 981374,
"time_slots": {},
"reservation_system_only": false,
"parking": false,
"corkage_charge": "Free",
"opening_hours": null,
"food_details": "",
"days_in_advance": 90,
"ambience": "",
"expiry_date": "2023-11-15",
"small_note": "",
"accept_kids": false,
"self_pickup_message": "",
"custom_text": "",
"booking_flow": "date_first",
"has_multiple_pricing": false,
"earn_point": true,
"record_guests": false,
"my_mooban_vr_link": "",
"accept_voucher": true,
"description": "<strong>Copper Buffet: A Worldclass Buffet Experience in Bangkok</strong><br>\r\n<br>Copper Buffet is back with a new concept, Beyond Buffet, that elevates the best international buffet in Bangkok to a worldclass cuisine.\r\nThe restaurant has introduced new kitchen equipment from the United States, such as a Smoke-master that adds flavor and aroma to food, and a The Wood Show Broiler, a world-class meat grill used in fine dining restaurants.<br>\r\n<br>The heart of deliciousness starts with the use of the finest ingredients. Copper Buffet has gathered ingredients from all over the world to create over 150 international dishes, including Australian Oyster Blade, Beef Tongue, Alaska Sole, Chutoro, Snow Fish, Pork Ribs, seafood on ice, oysters, and grilled shrimp.<br>\r\n<br>The restaurant also offers a variety of Japanese dishes, such as sashimi, salmon, and imported sushi. Western dishes include wagyu spaghetti, truffle soup, pasta, and pizza.\r\nFor steak lovers, Copper Buffet offers a variety of options, including wagyu steak, salmon steak, and pork ribs barbecue sauce.\r\nThai dishes are also available, such as wagyu A5 boat noodles and lobster khao soi.<br>\r\n<br>The restaurant also features a new dessert bar with a variety of desserts created by Chef James Patcha Techakinkrai.\r\nCopper Buffet has also expanded its restaurant to accommodate more customers. The new atmosphere is more luxurious, with modern classic furniture that gives a sense of timeless elegance.<br>\r\n<br>All of this can be enjoyed unlimitedly at Copper Buffet with the All You Can Eat promotion when booking through Hungry Hub. <br>\r\n\r\n<br><b>Conditions: </b><br>\r\n• This package cannot be used with membership cards and discount offers.<br>\r\n• Customers cannot change the package once they have made a booking via Hungry Hub.<br>\r\n<br><br><br><b>Restaurants have the right to request a deposit from customers. Failure to pay a deposit may be subject to a booking cancellation.</b>",
"custom_seats": [],
"tags": [],
"logo_url": {
"medium": "https://images.hungryhub.com/uploads/restaurant/logo/837/340110251_179146471604025_5768990074815965140_n.jpeg",
"thumb": "https://images.hungryhub.com/uploads/restaurant/logo/837/340110251_179146471604025_5768990074815965140_n.jpeg"
},
"platform": [
"mobile",
"web"
],
"custom_section_title": "How to use",
"custom_section_content": "<p>To enjoy Hungry Hub exclusive dining offers, just follow 3 easy steps!<br>1) Book a table by choosing a restaurant, date, time, party size and click time slot to book.<br>2) You will get a confirmation email and SMS once you complete the booking.<br>3) You can simply show your Booking ID to dine and pay directly at the restaurant.</p><a style=\"text-decoration:underline;color:blue\" href=\"http://bit.ly/2sZ9ksi\">Read our FAQs</a>",
"available_package_types": [
"ayce"
],
"reservation_duration_in_hours": "15 minutes",
"opening_hours_short": "10:00 - 19:15",
"weekday_opening_hours": {
"mon": "10:00 - 19:15",
"tue": "10:00 - 19:15",
"wed": "10:00 - 19:15",
"thu": "10:00 - 19:15",
"fri": "10:00 - 19:15",
"sat": "10:00 - 18:45",
"sun": "10:00 - 18:45"
},
"opening_hours_v2": null,
"hashtags": [
{
"id": 1729,
"label": "Solo Diner",
"link_to_group_landing_page": "https://web.hungryhub.com/restaurants/group/best-buffet-deals-for-solo-diner?locale=en"
},
{
"id": 1737,
"label": "Everyday deals",
"link_to_group_landing_page": ""
},
{
"id": 1764,
"label": "Birthday Celebration ",
"link_to_group_landing_page": "https://web.hungryhub.com/restaurants/group/birthday-celebration-restaurants?locale=en"
}
],
"videos": [
"https://www.youtube.com/embed/wqzW5nhTV7U"
],
"locations": [
{
"id": 1234,
"title": "จรัญสนิทวงศ์"
},
{
"id": 1255,
"title": "ปิ่นเกล้า"
},
{
"id": 1557,
"title": "บางกอกน้อย"
}
],
"cuisines": [],
"jsonld": "",
"link": "https://web.hungryhub.com/en/restaurants/copper-beyond-buffet-hungry-hub-dine-in",
"seo": {
"title": "Copper Buffet Pinklao - international buffet with special deals",
"description": "Book special packages from Copper Buffet Pinklao international buffet featuring a parade of new menus from Chef Michelin Star Exclusive only at Hungry Hub.",
"keywords": "Coppery Buffet Delivery | Copper | คอปเปอร์ บุฟเฟ่ต์ | Delivery | Bearhouse | จอง | Book Now | Reservation | Buffet in Bangkok | จัดส่ง | Hungry@Home | Copper Buffet (The Sense Pinklao) | บุฟเฟ่ต์ ปิ่นเกล้า | บุฟเฟ่ต์ อาหารนานาชาติ | บุฟเฟ่ต์ พลัส | Hungry Hub | บุฟเฟ่ต์กรุงเทพ | บุฟเฟ่ต์ในห้าง | รวมร้านบุฟเฟ่ต์"
},
"link_to_group_landing_page": "https://web.hungryhub.com/copper-buffet-unlimited-international-buffet?locale=en",
"gb_primepay_public_key": "1yg8M4ShJCL7SZaqTt9lgC72qJ9HU4ju",
"support_order_now": false,
"cooking_time": 30,
"has_delivery_pricing_tier": false,
"phone": "0922811818",
"phone_for_delivery": "0988241800",
"covid19_rating": {
"overall_cleanliness": "4.85",
"social_distancing": "4.59",
"staff_protection": "4.89"
},
"price_summaries": [
{
"lowest_price": "฿1,999",
"highest_price": "฿4,199",
"package_type": "ayce",
"pricing_type": "per_pack"
},
{
"lowest_price": "฿1,999",
"highest_price": "฿4,199",
"package_type": "ayce",
"pricing_type": "per_person"
}
],
"has_ticket_groups": false,
"tnc_image_url": "",
"breadcrumbs": [
{
"order": 0,
"title": "Home",
"link": "https://hungryhub.com/en?utm_medium=breadcrumbs&utm_version=2"
},
{
"order": 1,
"title": "Restaurants",
"link": "https://hungryhub.com/en/restaurants/search.html?utm_medium=breadcrumbs&utm_version=2"
},
{
"order": 2,
"title": "Copper Beyond Buffet (Hungry Hub Dine In)",
"link": "https://web.hungryhub.com/en/restaurants/copper-beyond-buffet-hungry-hub-dine-in?utm_medium=breadcrumbs&utm_version=2"
}
]
},
"relationships": {
"pictures": {
"data": [
{
"id": "108323",
"type": "restaurants-pictures"
},
{
"id": "95712",
"type": "restaurants-pictures"
},
{
"id": "65984",
"type": "restaurants-pictures"
},
{
"id": "106754",
"type": "restaurants-pictures"
},
{
"id": "106755",
"type": "restaurants-pictures"
},
{
"id": "33739",
"type": "restaurants-pictures"
},
{
"id": "106756",
"type": "restaurants-pictures"
},
{
"id": "106757",
"type": "restaurants-pictures"
},
{
"id": "106758",
"type": "restaurants-pictures"
},
{
"id": "106759",
"type": "restaurants-pictures"
},
{
"id": "106760",
"type": "restaurants-pictures"
},
{
"id": "106761",
"type": "restaurants-pictures"
},
{
"id": "106762",
"type": "restaurants-pictures"
},
{
"id": "106763",
"type": "restaurants-pictures"
},
{
"id": "106764",
"type": "restaurants-pictures"
},
{
"id": "106765",
"type": "restaurants-pictures"
},
{
"id": "106766",
"type": "restaurants-pictures"
},
{
"id": "106767",
"type": "restaurants-pictures"
},
{
"id": "106768",
"type": "restaurants-pictures"
},
{
"id": "106769",
"type": "restaurants-pictures"
},
{
"id": "101372",
"type": "restaurants-pictures"
},
{
"id": "106770",
"type": "restaurants-pictures"
},
{
"id": "101373",
"type": "restaurants-pictures"
},
{
"id": "101374",
"type": "restaurants-pictures"
},
{
"id": "106771",
"type": "restaurants-pictures"
},
{
"id": "101375",
"type": "restaurants-pictures"
},
{
"id": "101376",
"type": "restaurants-pictures"
},
{
"id": "106772",
"type": "restaurants-pictures"
},
{
"id": "101377",
"type": "restaurants-pictures"
},
{
"id": "106773",
"type": "restaurants-pictures"
},
{
"id": "101378",
"type": "restaurants-pictures"
},
{
"id": "106774",
"type": "restaurants-pictures"
},
{
"id": "101379",
"type": "restaurants-pictures"
},
{
"id": "106775",
"type": "restaurants-pictures"
},
{
"id": "106776",
"type": "restaurants-pictures"
},
{
"id": "106777",
"type": "restaurants-pictures"
},
{
"id": "106778",
"type": "restaurants-pictures"
},
{
"id": "106779",
"type": "restaurants-pictures"
},
{
"id": "106780",
"type": "restaurants-pictures"
},
{
"id": "106781",
"type": "restaurants-pictures"
}
]
},
"restaurant_packages": {
"data": [
{
"id": "28655",
"type": "restaurant-packages"
},
{
"id": "30044",
"type": "restaurant-packages"
},
{
"id": "26097",
"type": "restaurant-packages"
},
{
"id": "26106",
"type": "restaurant-packages"
},
{
"id": "26223",
"type": "restaurant-packages"
},
{
"id": "26226",
"type": "restaurant-packages"
},
{
"id": "26111",
"type": "restaurant-packages"
},
{
"id": "26229",
"type": "restaurant-packages"
}
]
},
"last_reviews": {
"data": []
},
"blogger_reviews": {
"data": []
}
}
}
]
},
"message": null,
"success": true,
"did_you_mean": []
}
Search Suggest 2.0 Hybrid Event
For search suggest 2.0 we'll implement several tags and also restaurant items.
Web Event: onTagClicked
Response:
{
"id": "6",
"type": "restaurant_tags",
"attributes": {
"cover": {
"url": "https://hhstaging.hungryhub.com/uploads/restaurant_tag/cover/6/cuisine-indian.jpeg"
},
"title": "Indian",
"title_en": "Cuisine:Indian",
"tag_type": "cuisine",
"total_restaurants": 1
}
}
Android and iOS need to mapping the tag_type to filter on search page. So, we'll send these payloads to event doSearch on the search page.
Cuisine
For cuisine we'll send this payload to hybrid:
{
"cuisine_ids": [
{
"id": 1234,
"name": "Pizza"
}
]
}
Dining Style
Example response:
{
"id": "1643",
"type": "restaurant_tags",
"attributes": {
"cover": {
"url": "/uploads/restaurant_tag/cover/1643/Casual_Dining.jpg"
},
"title": "Casual Dining",
"title_en": "DiningStyle:Casual Dining",
"tag_type": "DiningStyle",
"total_restaurants": 302
}
}
For dining style we'll send this payload to hybrid:
{
"dining_style_ids": [
{
"id": "1647",
"name": "Buffet"
}
]
}
Location
Example Response:
{
"id": "1468",
"type": "restaurant_tags",
"attributes": {
"cover": {
"url": "/uploads/restaurant_tag/cover/1468/rajdamri_bkk.jpeg"
},
"title": "Rajdamri",
"title_en": "PopularZone:Rajdamri",
"tag_type": "PopularZone",
"total_restaurants": 164
}
}
tag_type available:
- location
- PopularZone
- ShoppingMall
- BtsRoute
- MrtRoute Since we have several types of location filter we need to put type in the location_ids filter like this:
{
"location_ids": [
{
"id": 1468,
"name": "Rajdamri",
"type": "popular_zone"
}
]
}
Available types of location:
- location
- popular_zone
- shopping_mall
- bts_route
- mrt_route

Web Event: onRestaurantClicked For restaurant section we'll receive event like this:
{
"restaurant_id": 12,
"restaurant_link": ""
}
and then we navigate to specific restaurant page.
No changes on UI search result:
If users put some word and showing result like existing data we'll have this event: Web Event: onSearchTagResultClicked
{
"id": 1231,
"type": "popularzones",
"attributes": {
"name": "Arun Amarin",
"total_restaurants": "5"
}
}
The response is same as API {{ base_api }}/suggest.json so we can use existing navigation logic for this response.
Web Event: onRestaurantResultClicked
{
"id": 2723,
"slug": "arun-thai-cuisine-by-see-fah",
"cover_image": "https://www.hungryhub.com/uploads/restaurants/2723/photos/71796/RackMultipart20220325-6508-y0wro2.JPG",
"name": "ARUN THAI CUISINE BY SEE FAH",
"menu_name": "",
"location": "Ploenchit",
"cuisine": "Thai"
}
Client app will redirect users to specific restaurant.
Web Event: onSearchKeyword Handle if user type something and press enter will trigger this event.
{
"keyword": "pizza"
}
Update 21 Nov 2023
Based on this post on slack. We'll have promotion more like homepage icon logic. So, we'll use target_url instead of tag data. We have several type of navigation mostly we'll use existing deeplink that we have: Web Event: onPromotionClicked
{
"target_url": "https://web.hungryhub.com/restaurants/group/rooftop-promotion-rooftop?locale=en"
}
Update 12 Dec 2023
Since we have performance issues after release. Like, delay when open search suggest we make search input into native and use hybrid for the result only. Here are the update:
- Add query
searchbar=falseto hide hybrid search input - Create native search input

- Add event
doSearchSuggestevery type 3 or more keyword with this payload:
{
"keyword": "asok"
}
- If press enter will search by query to search page.
Update 12 November
We need to handle doSetupData for android and iOS to match users preference by their location: Hybrid Event: doSearchSuggest Payload:
{
"location": {
"lat": 13.730005,
"long": 100.5770843
}
}