{"id":2748,"date":"2025-02-24T11:17:15","date_gmt":"2025-02-24T11:17:15","guid":{"rendered":"https:\/\/www.makcorps.com\/blog\/?p=2748"},"modified":"2025-04-09T10:23:43","modified_gmt":"2025-04-09T10:23:43","slug":"extract-hotel-prices-from-multiple-vendors-using-google-sheet-api","status":"publish","type":"post","link":"https:\/\/www.makcorps.com\/blog\/extract-hotel-prices-from-multiple-vendors-using-google-sheet-api\/","title":{"rendered":"Extract Hotel Price Data From Multiple Vendors Using Google Sheet and Hotel Price API"},"content":{"rendered":"\n<p>Tracking hotel prices across multiple vendors is a headache. Hotel rates fluctuate constantly, different sites display prices in various formats, and manually checking them takes forever. Most solutions require coding knowledge which makes it difficult for non-programming users.&nbsp;<\/p>\n\n\n\n<p>Luckily, you don\u2019t need to be a developer to extract hotel price data efficiently. In this guide, we\u2019ll show you how to use <strong>Google Sheets<\/strong> and <strong><a href=\"https:\/\/www.makcorps.com\/\">Makcorps Hotel Price API<\/a> <\/strong>to pull real-time prices from multiple vendors and highlight the cheapest price offered for a particular hotel, all without writing a single line of code<\/p>\n\n\n\n<p>To make things even easier, at the end of this blog, you will get a <strong>ready-to-use Google Sheet template<\/strong> with everything set up for you.&nbsp;<\/p>\n\n\n\n<p>Stick around till the end to grab your free copy!<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_76 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #e29a12;color:#e29a12\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #e29a12;color:#e29a12\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.makcorps.com\/blog\/extract-hotel-prices-from-multiple-vendors-using-google-sheet-api\/#What_Youll_Need_to_Get_Started\" >What You\u2019ll Need to Get Started<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.makcorps.com\/blog\/extract-hotel-prices-from-multiple-vendors-using-google-sheet-api\/#Step-by-Step_Guide_to_Extract_Hotel_Prices_Using_Google_Sheets_and_Hotel_Price_API\" >Step-by-Step Guide to Extract Hotel Prices Using Google Sheets and Hotel Price API<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.makcorps.com\/blog\/extract-hotel-prices-from-multiple-vendors-using-google-sheet-api\/#1_Get_Your_Makcorps_API_Key\" >1. Get Your Makcorps API Key<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.makcorps.com\/blog\/extract-hotel-prices-from-multiple-vendors-using-google-sheet-api\/#2_Set_Up_the_Google_Sheet_with_the_Required_Parameters\" >2. Set Up the Google Sheet with the Required Parameters<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.makcorps.com\/blog\/extract-hotel-prices-from-multiple-vendors-using-google-sheet-api\/#1_Create_the_Input_Sheet_for_extracting_Hotel_ID\" >1. Create the Input Sheet for extracting Hotel ID:<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.makcorps.com\/blog\/extract-hotel-prices-from-multiple-vendors-using-google-sheet-api\/#2_Prepare_Sheet_for_Hotel_Id_Output\" >2. Prepare Sheet for Hotel Id Output<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.makcorps.com\/blog\/extract-hotel-prices-from-multiple-vendors-using-google-sheet-api\/#3_Fetch_and_Add_Hotel_IDs_Using_the_API\" >3. Fetch and Add Hotel IDs Using the API<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.makcorps.com\/blog\/extract-hotel-prices-from-multiple-vendors-using-google-sheet-api\/#5_Set_Up_the_Price_Tracking_Input_Sheet\" >5. Set Up the Price Tracking Input Sheet<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.makcorps.com\/blog\/extract-hotel-prices-from-multiple-vendors-using-google-sheet-api\/#6_Set_Up_the_Price_Tracking_Output_Sheet\" >6. Set Up the Price Tracking Output Sheet<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.makcorps.com\/blog\/extract-hotel-prices-from-multiple-vendors-using-google-sheet-api\/#7_Fetch_Hotel_Prices_and_Populate_the_Output_Sheet\" >7. Fetch Hotel Prices and Populate the Output Sheet<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.makcorps.com\/blog\/extract-hotel-prices-from-multiple-vendors-using-google-sheet-api\/#8_Add_Functionality_to_Highlight_the_Cheapest_Rates\" >8. Add Functionality to Highlight the Cheapest Rates<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.makcorps.com\/blog\/extract-hotel-prices-from-multiple-vendors-using-google-sheet-api\/#Step-by-Step_Guide_to_Implement_the_Script\" >Step-by-Step Guide to Implement the Script<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.makcorps.com\/blog\/extract-hotel-prices-from-multiple-vendors-using-google-sheet-api\/#Get_Your_Free_Google_Sheet_Blueprint\" >Get Your Free Google Sheet Blueprint&nbsp;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.makcorps.com\/blog\/extract-hotel-prices-from-multiple-vendors-using-google-sheet-api\/#Wrapping_Up\" >Wrapping Up<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"What_Youll_Need_to_Get_Started\"><\/span><strong>What You\u2019ll Need to Get Started<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>1. Makcorps API Key<\/strong><\/h4>\n\n\n\n<p>To access hotel mapping and pricing data, you&#8217;ll need an API key from Makcorps. <a href=\"https:\/\/www.makcorps.com\/\">Sign up<\/a> to receive 30 free API requests, with each API call counting as 1 request. You can test the API and upgrade your plan based on your data needs from <a href=\"https:\/\/makcorps.com\/#sectionPricing\" target=\"_blank\" rel=\"noopener\">here<\/a>.&nbsp;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>2. Google Sheets<\/strong><\/h4>\n\n\n\n<p>This is where we\u2019ll organize and extract the data.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>3. API Requirements<\/strong><\/h4>\n\n\n\n<p>We\u2019ll be using <strong>two APIs<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Hotel Mapping API<\/strong> \u2013 Retrieves the hotel ID based on the hotel name. <em>(Requires: API key, hotel name)<\/em><\/li>\n\n\n\n<li><strong>Hotel Price API (Search by Hotel ID)<\/strong> \u2013 Fetches real-time pricing data. <em>(Requires: API key, hotel ID, number of adults, room count, check-in, and check-out dates and currency code if required in any other than USD)<\/em><\/li>\n<\/ul>\n\n\n\n<p>Once set up, these APIs will work together to extract hotel prices seamlessly into your Google Sheet. <strong>Check out the documentation<\/strong> for the<a href=\"https:\/\/docs.makcorps.com\/mapping-api-hotel-city-ids\" target=\"_blank\" rel=\"noopener\"> Hotel Mapping API<\/a> and<a href=\"https:\/\/docs.makcorps.com\/hotel-apis\/hotel-api-search-by-hotel-id\" target=\"_blank\" rel=\"noopener\"> Hotel Price API<\/a> to learn more.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Step-by-Step_Guide_to_Extract_Hotel_Prices_Using_Google_Sheets_and_Hotel_Price_API\"><\/span>Step-by-Step Guide to Extract Hotel Prices Using Google Sheets and Hotel Price API<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>To get accurate and real-time hotel price data, make sure to follow each step carefully. Missing any step may lead to errors or incomplete data extraction.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_Get_Your_Makcorps_API_Key\"><\/span><strong>1. Get Your Makcorps API Key<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.makcorps.com\/signup.html\">Sign up<\/a> here.<\/li>\n\n\n\n<li>After signing up, you\u2019ll receive an email to verify your account\u2014make sure to complete this step.<\/li>\n\n\n\n<li>Once verified, your API key will be sent to you via email, like this.&nbsp;<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXdp12KRxeQCwgNzdEynaktwMrVaV3CUa1CubckUVbpQ1_BLp8maHnU84idoL1Vp0KC82sSB9NxO3AgRQkXNQK7_qYkRsLS97ldwguedbOC7awW8muspRnLv6o5GlpCdT_7XlBiXCg?key=0P80u-Kd_sWg7bZSjQDkruVG\" alt=\"\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_Set_Up_the_Google_Sheet_with_the_Required_Parameters\"><\/span>2. Set Up the Google Sheet with the Required Parameters<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Since we\u2019ll be using <strong>two APIs<\/strong>, we need to create <strong>four sheets<\/strong> for input and output. The first step is to extract the <strong>hotel ID<\/strong> for the hotels you want to track.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_Create_the_Input_Sheet_for_extracting_Hotel_ID\"><\/span>1. Create the Input Sheet for extracting Hotel ID:<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Name the sheet <strong>&#8220;input&#8221;<\/strong>.<\/li>\n\n\n\n<li>In <strong>Column A<\/strong>, add the heading <strong>&#8220;Hotel Name&#8221;<\/strong>.<\/li>\n\n\n\n<li>Below the heading, list the hotels you want to extract data for.<\/li>\n\n\n\n<li>If a hotel is part of a global chain, <strong>include the city name<\/strong> to ensure accurate results. (For example, instead of just \u201cHyatt,\u201d write \u201cHyatt, New York.\u201d)<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXdjP_hmgMI_94Su-gKkSbpB6P4NH1RP-WMG5fv7v4vz-R8vhRZsw8u5N0sy_M87UWOQuzpDR_nXaCSqAhnqiF_vOtPsv00i6oqxmqtYiIBAA8wcmYSyS6dk143ztkMfqaJr7XuO_A?key=0P80u-Kd_sWg7bZSjQDkruVG\" alt=\"\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_Prepare_Sheet_for_Hotel_Id_Output\"><\/span><strong>2. Prepare Sheet for Hotel Id Output<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Now that we have listed the hotel names in the &#8220;input&#8221; sheet, we need a separate sheet to store the hotel IDs retrieved from the API.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Create a new sheet and name it &#8220;<strong>hotel id output<\/strong>&#8220;.<\/li>\n\n\n\n<li>In Column A, add the heading &#8220;Hotel Name&#8221;\u2014this will match the names from the input sheet.<\/li>\n\n\n\n<li>In Column B, add the heading &#8220;Hotel ID&#8221;\u2014this is where the API will return the unique hotel ID for each hotel listed.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXfkKZHxIMWXYN_9J7jtSp2C-XE9aoNagyUS5IvRSN6ecVoy2jPkI7I9S89w2NgHv4j51oSaFZJURT1Fuaw_lkcVKnYtA5IGKbhKB8mcZuuyVKYymCRPnaLNvqf7EgiBvOqZYtEONg?key=0P80u-Kd_sWg7bZSjQDkruVG\" alt=\"\"\/><\/figure>\n\n\n\n<p>Once the API fetches the data, hotel IDs will populate next to their respective hotel names automatically. This sheet will act as a reference for the next step, where we\u2019ll use these hotel IDs to fetch price data.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3_Fetch_and_Add_Hotel_IDs_Using_the_API\"><\/span><strong>3. Fetch and Add Hotel IDs Using the API<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Now that we have set up the <strong>input sheet<\/strong> with hotel names and the <strong>hotel_id_output<\/strong> sheet to store hotel IDs, it\u2019s time to retrieve the IDs using the <strong>Hotel Mapping API<\/strong>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Steps to Add the Code and Get Hotel IDs:<\/strong><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open your <strong>Google Sheet<\/strong> and go to <strong>Extensions &gt; Apps Script<\/strong>.<\/li>\n\n\n\n<li>Go to Code.gs.&nbsp;<\/li>\n\n\n\n<li>Delete any existing code and paste the following script. The function will be named <strong>&#8220;getHotelIDs&#8221;<\/strong>, and it will appear as <strong>&#8220;fetchHotelIDs&#8221;<\/strong> in the Apps Script editor:<\/li>\n<\/ol>\n\n\n\n<p><strong>Script:&nbsp;<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function fetchHotelIDs() {\n  var ss = SpreadsheetApp.openById(\"YOUR_SPREADSHEET_ID\"); \/\/ Your actual Spreadsheet ID\n  var inputSheet = ss.getSheetByName(\"input\"); \/\/ Sheet name for input\n  var outputSheet = ss.getSheetByName(\"hotel id output\"); \/\/ Sheet name for output\n  var inputRange = inputSheet.getRange(\"A2:A\" + inputSheet.getLastRow()); \/\/ Dynamic range for hotel names\n  var hotelNames = inputRange.getValues();\n  var apiResults = &#91;];\n\n\n  for (var i = 0; i &lt; hotelNames.length; i++) {\n    var hotelName = encodeURIComponent(hotelNames&#91;i]&#91;0]);\n    if (hotelName !== \"\") {\n      var url = \"https:\/\/api.makcorps.com\/mapping?api_key=YOUR_MAKCORPS_API_KEY&amp;name=\" + hotelName;\n      var options = {\n        \"method\": \"get\",\n        \"muteHttpExceptions\": true\n      };\n\n\n      var response = UrlFetchApp.fetch(url, options);\n      var json = JSON.parse(response.getContentText());\n     \n      Logger.log(json); \/\/ Log API response for debugging\n\n\n      if (json &amp;&amp; json.length &gt; 0 &amp;&amp; json&#91;0].hasOwnProperty(\"document_id\")) {\n        apiResults.push(&#91;hotelNames&#91;i]&#91;0], json&#91;0].document_id]);\n      } else {\n        apiResults.push(&#91;hotelNames&#91;i]&#91;0], \"No ID Found\"]);\n      }\n    } else {\n      apiResults.push(&#91;hotelNames&#91;i]&#91;0], \"Invalid Hotel Name\"]);\n    }\n  }\n\n\n  \/\/ Output results to the 'hotel id output' sheet\n  if (apiResults.length &gt; 0) {\n    var outputRange = outputSheet.getRange(2, 1, apiResults.length, 2);\n    outputRange.setValues(apiResults);\n  }\n}\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Required Edits Before Running the Script:<\/strong><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Replace <\/strong><strong>YOUR_SPREADSHEET_ID <\/strong>in the code with your actual Google Spreadsheet ID.\n<ul class=\"wp-block-list\">\n<li>You can find this in your Google Sheet URL (it\u2019s the long string of letters\/numbers between \/d\/ and \/edit).<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXfIOy97d3t8IEKxZmoN1bazgt-Fd42taJJvvGII0Os34ROZJv51RoxovW82OZuBv5kmpXl6h5F2FKeI6xTVAFoglH730LicHfxiMpDkIFuqnQUl4h5aXZ3QUWT08DcR5exRXSZKYw?key=0P80u-Kd_sWg7bZSjQDkruVG\" alt=\"\"\/><\/figure>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>Replace <\/strong><strong>YOUR_MAKCORPS_API_KEY<\/strong> with your API key.<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>How to Run the Script:<\/strong><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click the <strong>Run<\/strong> button \u25b6 in the Apps Script editor.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXfN0PPwbyv4OKisg6wvLXVloKBzRVQFrlHjNEgY3Nmwbg9kwv-Y1k-8gjIMdejck0ttGH5sU8XOrWb3aXnefZZGWEIP7vHhZ6ZZfxMPkxtTjOc9sRkE2alA5lDmE-j39cz0pq75?key=0P80u-Kd_sWg7bZSjQDkruVG\" alt=\"\"\/><\/figure>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>The function will be listed as <strong>&#8220;fetchHotelIDs&#8221;<\/strong> in the Apps Script editor.<\/li>\n\n\n\n<li>The first time you run the script, Google will ask for <strong>permissions<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Click <strong>&#8220;Review Permissions.&#8221;<\/strong><\/li>\n\n\n\n<li>Select your Google account.<\/li>\n\n\n\n<li>Click <strong>&#8220;Allow&#8221;<\/strong> to grant the necessary access.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Once permissions are granted, run the script again.&nbsp;<\/li>\n\n\n\n<li>The script will fetch <strong>hotel IDs<\/strong> and populate them in the <strong>hotel id output<\/strong> sheet next to their respective hotel names.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXcccS0dgijww-RSsHyAeysx4WhB0sFTQ3DUM_DAmHUcn4U496AfYsNByxvDObDhKX6kDlStC-plDIw2Eeceu3sSSNWRgG9f1uyFZ9qtJARO_KY4oryNSKEaUdKnFymDecfhN6U5YQ?key=0P80u-Kd_sWg7bZSjQDkruVG\" alt=\"\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"5_Set_Up_the_Price_Tracking_Input_Sheet\"><\/span><strong>5. Set Up the Price Tracking Input Sheet<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The <strong>&#8220;price tracking input&#8221;<\/strong> sheet is where you&#8217;ll enter the details needed to fetch real-time hotel prices using the <strong>Hotel Price API<\/strong>. Follow these steps to fill in the required details correctly.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 1: Create the &#8220;price tracking input&#8221; Sheet<\/strong><\/h4>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 2: Add Column Headings<\/strong><\/h4>\n\n\n\n<p>In <strong>Row 1<\/strong>, enter the following column names exactly as shown:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Column A:<\/strong> Hotel Name<\/li>\n\n\n\n<li><strong>Column B:<\/strong> Hotel ID<\/li>\n\n\n\n<li><strong>Column C:<\/strong> Check-In Date<\/li>\n\n\n\n<li><strong>Column D:<\/strong> Check-Out Date<\/li>\n\n\n\n<li><strong>Column E:<\/strong> Adults<\/li>\n\n\n\n<li><strong>Column F:<\/strong> Rooms<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 3: Copy Hotel Names and IDs<\/strong><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open the <strong>&#8220;hotel id output&#8221;<\/strong> sheet.<\/li>\n<\/ol>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>Copy the hotel names and hotel IDs from <strong>Column A and Column B <\/strong>of the \u201chotel id output sheet\u201d and paste them into <strong>Column A<\/strong> and Column of the &#8220;price tracking input&#8221; sheet.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXfJDK8kOuPt_R1uh9DacQzEDmP_SaeIO2KW9QpyrU3g2NyVFq1h5SfD0q4GIsZKGEKEpLxRN5ncgIW2MAKCIusN2l32PWfHW_WY_LpnDNug1nXFunVgXID9OrM9fSXQMCyWKQQ91w?key=0P80u-Kd_sWg7bZSjQDkruVG\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXc2Xzlda5Vt7M3_7RPIXa1HFAOnilRBBYr07qE50WVc4FeqEGeoM8Juy8NVhHKEAI74PaY0VifFfpzYh3NXTsnBPm3IIvcoaSS5iImV3qIYwCf_qcaoosHVDblhrr3_NIXJUPF8Pw?key=0P80u-Kd_sWg7bZSjQDkruVG\" alt=\"\"\/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 4: Enter Booking Details in Price Tracking Input Sheet<\/strong><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Check-In Date (Column C):<\/strong> Enter the check-in date in <strong>YYYY-MM-DD<\/strong> format.<\/li>\n\n\n\n<li><strong>Check-Out Date (Column D):<\/strong> Enter the check-out date in <strong>YYYY-MM-DD<\/strong> format.<\/li>\n\n\n\n<li><strong>Adults (Column E):<\/strong> Enter the number of adults per room.&nbsp;<\/li>\n\n\n\n<li><strong>Rooms (Column F):<\/strong> Enter the number of rooms you want to check prices for.&nbsp;<\/li>\n<\/ol>\n\n\n\n<p>Once all details are filled in, this sheet will serve as the <strong>input for fetching hotel prices<\/strong> using the API.<\/p>\n\n\n\n<p>Next, we will write the script to <strong>fetch hotel prices and store them in the &#8220;price tracking output&#8221; sheet<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"6_Set_Up_the_Price_Tracking_Output_Sheet\"><\/span><strong>6. Set Up the Price Tracking Output Sheet<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Now that we have entered the necessary input details, we need a sheet to store the <strong>hotel price data<\/strong> retrieved from the API.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 1: Create the &#8220;price tracking output&#8221; Sheet<\/strong><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click the <strong>&#8220;+&#8221; (plus) button<\/strong> at the bottom to add a new sheet.<\/li>\n\n\n\n<li>Rename it to <strong>&#8220;price tracking output&#8221;<\/strong> (if not already named).<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 2: Add Column Headings<\/strong><\/h4>\n\n\n\n<p>In <strong>Row 1<\/strong>, enter the following column names exactly as shown in the image:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Column A:<\/strong> Hotel Name<\/li>\n\n\n\n<li><strong>Column B:<\/strong> Vendors <em>(The platform providing the price, e.g., Expedia, Booking.com, etc.)<\/em><\/li>\n\n\n\n<li><strong>Column C:<\/strong> Price&nbsp;<\/li>\n\n\n\n<li><strong>Column D:<\/strong> Tax<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXdQE55l-NEUfGmuQjVIto7ThrY29DyI_XSHSpwHMnP1D0MFjKeBPGL5kWDg-ncREKKzt7fRE94orv66I7Ctphc0Cu9ZBZhHAlqeBgpMTo-Cy3hOmPgMrIbGhxsd-rVCJiCDb5iDGQ?key=0P80u-Kd_sWg7bZSjQDkruVG\" alt=\"\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"7_Fetch_Hotel_Prices_and_Populate_the_Output_Sheet\"><\/span>7. Fetch Hotel Prices and Populate the Output Sheet<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Now that we have set up the <strong>&#8220;price tracking output&#8221;<\/strong> sheet, it&#8217;s time to run the script to fetch hotel price data using the <strong>Hotel Price API<\/strong> and populate the output sheet.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXdAkazT3x56MRV-WXsEsF1vf4eVlThlSo9ibFj8BRB8Oef9Au8JQ-jRulDZFaYpFCgET1Bepypp0KVcpmaIbl8o18SA49rvYMbhdL3HdpllBBJjo1bGVxEGvR3ksBqE80t23c0w?key=0P80u-Kd_sWg7bZSjQDkruVG\" alt=\"\"\/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 1: Open Apps Script<\/strong><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In your Google Sheet, go to <strong>Extensions &gt; Apps Script<\/strong> <strong>&gt; Code.gs<\/strong><\/li>\n\n\n\n<li>Paste the following script <strong>below the existing Hotel ID script<\/strong> and save.<\/li>\n<\/ol>\n\n\n\n<p><strong>Script:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function fetchHotelPrices() {\n\n&nbsp;&nbsp;var ss = SpreadsheetApp.getActiveSpreadsheet();\n\n&nbsp;&nbsp;var inputSheet = ss.getSheetByName(\"price tracking input\");\n\n&nbsp;&nbsp;var outputSheet = ss.getSheetByName(\"price tracking output\");\n\n&nbsp;&nbsp;var lastRow = inputSheet.getLastRow();\n\n&nbsp;&nbsp;\/\/ Start writing from the second row to preserve headers\n\n&nbsp;&nbsp;\/\/ Clear only the data rows, keep the headers intact\n\n&nbsp;&nbsp;var dataRange = outputSheet.getRange(\"A2:D\" + outputSheet.getLastRow());\n\n&nbsp;&nbsp;if (outputSheet.getLastRow() &gt; 1) {&nbsp; \/\/ Check if there's data below the header\n\n&nbsp;&nbsp;&nbsp;&nbsp;dataRange.clearContent();\n\n&nbsp;&nbsp;}\n\n&nbsp;&nbsp;var outputRow = 2;&nbsp; \/\/ Initialize outputRow to start writing from row 2\n\n&nbsp;&nbsp;for (var i = 2; i &lt;= lastRow; i++) {\n\n&nbsp;&nbsp;&nbsp;&nbsp;var hotelName = inputSheet.getRange(i, 1).getValue();\n\n&nbsp;&nbsp;&nbsp;&nbsp;var hotelId = inputSheet.getRange(i, 2).getValue();\n\n&nbsp;&nbsp;&nbsp;&nbsp;var checkIn = formatDate(inputSheet.getRange(i, 3).getValue());\n\n&nbsp;&nbsp;&nbsp;&nbsp;var checkOut = formatDate(inputSheet.getRange(i, 4).getValue());\n\n&nbsp;&nbsp;&nbsp;&nbsp;var adults = inputSheet.getRange(i, 5).getValue();\n\n&nbsp;&nbsp;&nbsp;&nbsp;var rooms = inputSheet.getRange(i, 6).getValue();\n\n&nbsp;&nbsp;&nbsp;&nbsp;var apiUrl = 'https:\/\/api.makcorps.com\/hotel?hotelid=' + hotelId + '&amp;rooms=' + rooms + '&amp;adults=' + adults + '&amp;checkin=' + checkIn + '&amp;checkout=' + checkOut + '&amp;api_key=YOUR_MAKCORPS_API_KEY';\n\n&nbsp;&nbsp;&nbsp;&nbsp;var options = {\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'method': 'get',\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'muteHttpExceptions': true\n\n&nbsp;&nbsp;&nbsp;&nbsp;};\n\n&nbsp;&nbsp;&nbsp;&nbsp;var response = UrlFetchApp.fetch(apiUrl, options);\n\n&nbsp;&nbsp;&nbsp;&nbsp;if (response.getResponseCode() == 200) {\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var json = JSON.parse(response.getContentText());\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (json &amp;&amp; json.comparison &amp;&amp; json.comparison&#91;0].length &gt; 0) {\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var comparisonData = json.comparison&#91;0];&nbsp; \/\/ Assuming the data is in the first index\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;comparisonData.forEach(function (vendorData, index) {\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var vendor = vendorData&#91;'vendor' + (index + 1)];\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var price = vendorData&#91;'price' + (index + 1)];\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var tax = vendorData&#91;'tax' + (index + 1)];\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (vendor &amp;&amp; price &amp;&amp; tax) {\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outputSheet.getRange('A' + outputRow + ':D' + outputRow).setValues(&#91;&#91;hotelName, vendor, price, tax]]);\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outputRow++;&nbsp; \/\/ Increment output row for next data entry\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else {\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outputSheet.getRange('A' + outputRow + ':D' + outputRow).setValues(&#91;&#91;hotelName, 'No data', 'N\/A', 'N\/A']]);\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outputRow++;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n\n&nbsp;&nbsp;&nbsp;&nbsp;} else {\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outputSheet.getRange('A' + outputRow + ':D' + outputRow).setValues(&#91;&#91;hotelName, 'Failed to fetch', 'N\/A', 'N\/A']]);\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outputRow++;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Logger.log('Failed to fetch data for Hotel ID: ' + hotelId + ' with response: ' + response.getContentText());\n\n&nbsp;&nbsp;&nbsp;&nbsp;}\n\n&nbsp;&nbsp;}\n\n}\n\nfunction formatDate(date) {\n\n&nbsp;&nbsp;return Utilities.formatDate(date, Session.getScriptTimeZone(), 'yyyy-MM-dd');\n\n}<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 2: Replace <\/strong><strong>YOUR_MAKCORPS_API_KEY<\/strong><strong> <\/strong>with your API key in the code.&nbsp;<\/h4>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 3: Select and Run the Script<\/strong><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click on the <strong>dropdown menu<\/strong> in the Apps Script editor (as shown in the image).<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXdCE0CticAtRBbikmVyyLRkjStpj0czxv3hXsE7CA29PBnNKmwG4cFJ_Yp8DWUEsI8-TCXUua36UGgbmC6T4rwhT5YBTapN7ahYeTuORJxyZduHjvb7pJHYahBXDoCUoxRhRetsug?key=0P80u-Kd_sWg7bZSjQDkruVG\" alt=\"\"\/><\/figure>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>Select <strong>&#8220;fetchHotelPrices&#8221;<\/strong> from the list.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXfVwOruZsd4SPuf-_kTUF8T9K0pVCZTiyUjkZvXNArJ9fPikIq0dxej0jB9Y0eR3Yav5TbtB4SbZXhcVhrbd9OhIc59TMC0UHybvv84EhEC0agr0uJyZW9wsuKCdO9UWIGQwbtUxQ?key=0P80u-Kd_sWg7bZSjQDkruVG\" alt=\"\"\/><\/figure>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>Click the <strong>Run<\/strong> button \u25b6 to execute the script.&nbsp;<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 4: Check the &#8220;price tracking output&#8221; Sheet<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The script will pull hotel prices and fill them into the output sheet.<\/li>\n\n\n\n<li>If the script runs successfully, vendor names, prices, and tax details will appear in their respective columns.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXcAD2I3j08JZjH6ZhatfWu9AsFjL7gBQIJfMtCsh8WrlgharG_jVEkmgoj_7AR7F0D1jIpDzA0o4BhqNlIquPJND1TWR9RUXc-MjUbjMTuPR-nOrVKXnygiCjQREuxEDGav83wC?key=0P80u-Kd_sWg7bZSjQDkruVG\" alt=\"\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If there\u2019s an issue, it may show <strong>&#8220;Failed to fetch&#8221;<\/strong> in the output in that case, you can run the script again and check the output.&nbsp;<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"8_Add_Functionality_to_Highlight_the_Cheapest_Rates\"><\/span>8. Add Functionality to Highlight the Cheapest Rates<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The <strong>highlightLowestPrices<\/strong> function in the Google Sheets automatically finds and highlights the cheapest prices for each hotel listed in your sheet. This makes it easy to spot the best deals without manually comparing the prices in just a click.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Step-by-Step_Guide_to_Implement_the_Script\"><\/span><strong>Step-by-Step Guide to Implement the Script<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 1: Open Google Apps Script<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Open your Google Sheet.<\/strong><\/li>\n\n\n\n<li>Navigate to <strong>Extensions > Apps Script<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 2: Add the Script<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In the Apps Script editor, add the following script after the formatDate script:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>function highlightLowestPrices() {\n  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();\n  \/\/ Adjust the range as necessary to include all your data\n  const range = sheet.getRange(2, 1, sheet.getLastRow() - 1, 4); \/\/ Adjust the 4 if more columns are involved\n  const values = range.getValues();\n\n  \/\/ Object to store hotel names and their lowest prices with row references\n  let hotelPrices = {};\n\n  \/\/ Iterate over each row to populate hotelPrices with the minimum prices\n  values.forEach((row, index) => {\n    let hotelName = row&#91;0];\n    let priceStr = row&#91;2];\n    let price = parseFloat(priceStr.replace(\/^\\$\/, '')); \/\/ Remove dollar sign and convert to number\n\n    if (!hotelPrices&#91;hotelName] || hotelPrices&#91;hotelName].price > price) {\n      hotelPrices&#91;hotelName] = { price: price, rowIndex: index + 2 }; \/\/ +2 to adjust for header and 0-index\n    }\n  });\n\n  \/\/ Clear previous formatting\n  sheet.getRange(2, 1, sheet.getLastRow() - 1, 4).setBackground(null); \/\/ Adjust the 4 if more columns are involved\n\n  \/\/ Apply new formatting to the lowest price rows\n  Object.keys(hotelPrices).forEach(hotel => {\n    let info = hotelPrices&#91;hotel];\n    sheet.getRange(info.rowIndex, 1, 1, 4).setBackground('#62F700'); \/\/ Adjust the 4 if more columns are involved\n  });\n}\n\n\/\/ Add a menu item to run the script from the spreadsheet UI\nfunction onOpen() {\n  const ui = SpreadsheetApp.getUi();\n  ui.createMenu('Price Tools')\n    .addItem('Highlight Lowest Prices', 'highlightLowestPrices')\n    .addToUi();\n}\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Save the script<\/strong>: Click the floppy disk icon or press Ctrl+S to save your changes.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 3: Refresh and Run the Script<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Refresh your Google Sheets<\/strong> to update the interface with the new script menu.<\/li>\n\n\n\n<li>Select <strong>&#8220;Highlight Lowest Prices&#8221;<\/strong> and click on <strong>Run<\/strong>.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXcp9lXuzsZHS2kW035dr-Mn38JjjgSXY4FX1nDPZcHPF9EKerKG9LClj0fNWPQzcYs904mRqHw8lpyRJNsf4CMnPSE-Dgae2ndxR_uoDx7by02XG7C-odYAXw2VewEwpo7MzUVGEw?key=0P80u-Kd_sWg7bZSjQDkruVG\" alt=\"\"\/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>What Happens Next<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The script will automatically identify the row with the lowest price for each hotel and highlight it in green.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXeMd9yOj_G7LgnxHbydFECX725UOSIFIVqzmcyUeizxFNj7fTJGLHPHlDOdS9X5LDIFnXDX2IZKRwcWR2F1L-QMoMWN_GglZ1iXvb3ob0ZGqcoyHLJP4iiSLm3Ucmeu7oq8k_eczA?key=0P80u-Kd_sWg7bZSjQDkruVG\" alt=\"\"\/><\/figure>\n\n\n\n<p>Now you can quickly spot the most affordable options without having to manually compare each entry.<\/p>\n\n\n\n<p>By following these steps, you&#8217;ll enhance your hotel price tracking system with an automated feature that helps pinpoint the best deals effortlessly.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Get_Your_Free_Google_Sheet_Blueprint\"><\/span>Get Your Free Google Sheet Blueprint&nbsp;<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>To make things even easier, We\u2019ve created a <strong>ready-to-use Google Sheet template<\/strong> with everything set up for you. Just add your hotel name with the city name, replace this YOUR_MAKCORPS_API_KEY with your <strong>Makcorps API key and&nbsp; <\/strong>YOUR_SPREADSHEET_ID<strong> with your spreadsheet ID<\/strong>, and follow the steps in this guide to fetch real-time hotel price data from multiple vendors!<\/p>\n\n\n\n<p>\ud83d\udc49 <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/1yOuAwdph8JvEe4QpgMeXGc3eI-RaBqo-qEAibECRirQ\/copy\" target=\"_blank\" rel=\"noopener\">Download Your Free Google Sheet Template&nbsp;<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Wrapping_Up\"><\/span>Wrapping Up<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>In this tutorial, we showed you how to extract real-time hotel prices from multiple vendors using Google Sheets and the Makcorps Hotel Price API\u2014without any coding. As a hotelier, leveraging live pricing data helps you track competitor rates, optimize <a href=\"https:\/\/www.makcorps.com\/blog\/hotel-pricing-strategies\/\" data-type=\"post\" data-id=\"825\">pricing strategies<\/a>, and maximize revenue.<\/p>\n\n\n\n<p>With <strong><a href=\"https:\/\/www.makcorps.com\/\">Makcorps<\/a><\/strong>\u2014one of the <strong><a href=\"https:\/\/www.makcorps.com\/blog\/hotel-api-provider-companies\/\" data-type=\"post\" data-id=\"738\">best hotel API providers<\/a><\/strong>\u2014you get accurate, up-to-date pricing insights that give you a competitive edge in the market.<\/p>\n\n\n\n<p>To make things even easier, grab our free Google Sheet template, follow the steps, and start tracking hotel prices instantly.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tracking hotel prices across multiple vendors is a headache. Hotel rates fluctuate constantly, different sites display prices in various formats, and manually checking them takes forever. Most solutions require coding knowledge which makes it difficult for non-programming users.&nbsp; Luckily, you don\u2019t need to be a developer to extract hotel price data efficiently. In this guide,&#8230;<\/p>\n","protected":false},"author":3,"featured_media":2751,"comment_status":"closed","ping_status":"closed","sticky":true,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"categories":[49],"tags":[],"class_list":["post-2748","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials"],"_links":{"self":[{"href":"https:\/\/www.makcorps.com\/blog\/wp-json\/wp\/v2\/posts\/2748","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.makcorps.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.makcorps.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.makcorps.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.makcorps.com\/blog\/wp-json\/wp\/v2\/comments?post=2748"}],"version-history":[{"count":6,"href":"https:\/\/www.makcorps.com\/blog\/wp-json\/wp\/v2\/posts\/2748\/revisions"}],"predecessor-version":[{"id":2761,"href":"https:\/\/www.makcorps.com\/blog\/wp-json\/wp\/v2\/posts\/2748\/revisions\/2761"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.makcorps.com\/blog\/wp-json\/wp\/v2\/media\/2751"}],"wp:attachment":[{"href":"https:\/\/www.makcorps.com\/blog\/wp-json\/wp\/v2\/media?parent=2748"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.makcorps.com\/blog\/wp-json\/wp\/v2\/categories?post=2748"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.makcorps.com\/blog\/wp-json\/wp\/v2\/tags?post=2748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}