NAVNavbar
Logo
cURL php NodeJS Python cSharp

Live Google Hotel Searches Tasks

‌‌
Hotel Searches API provides results containing information about different hotels listed on Google Hotels. The provided results are specific to the selected location (see the List of Locations) and language (see the List of Languages) settings.

Instead of ‘login’ and ‘password’ use your credentials from https://app.dataforseo.com/api-dashboard

<?php
// You can download this file from here https://cdn.dataforseo.com/v3/examples/php/php_RestClient.zip
require('RestClient.php');
$api_url = 'https://api.dataforseo.com/';
// Instead of 'login' and 'password' use your credentials from https://app.dataforseo.com/api-dashboard
$client = new RestClient($api_url, null, 'login', 'password');

$post_array = array();
// example #1 - a simple way to set a task
// this way requires you to specify a location, a language of search, and a keyword.
$post_array[] = array(
	"location_code" => 1023191,
	"language_code" => "en",
	"keyword" => mb_convert_encoding("cheap hotel", "UTF-8")
);
// example #2 - a way to set a task with additional parameters
$post_array[] = array(
	"location_name" => "New York,New York,United States",
	"language_name" => "English",
	"keyword" => mb_convert_encoding("cheap hotel", "UTF-8"),
	"check_in" => "2021-06-01",
	"check_out" => "2021-06-30",
	"currency" => "USD",
	"adults" => 2,
	"children" => [14],
	"sort_by" => "highest_rating",
	"tag" => "example"
);
// this example has 2 elements, but in the case of large number of tasks - send up to 100 elements per POST request
if (count($post_array) > 0) {
	try {
		// POST /v3/business_data/google/hotel_searches/live
		$result = $client->post('/v3/business_data/google/hotel_searches/live', $post_array);
		print_r($result);
		// do something with post result
	} catch (RestClientException $e) {
		echo "n";
		print "HTTP code: {$e->getHttpCode()}n";
		print "Error code: {$e->getCode()}n";
		print "Message: {$e->getMessage()}n";
		print  $e->getTraceAsString();
		echo "n";
	}
}
$client = null;
?>

The above command returns JSON structured like this:

{
  "version": "0.1.20210512",
  "status_code": 20000,
  "status_message": "Ok.",
  "time": "9.1871 sec.",
  "cost": 0,
  "tasks_count": 1,
  "tasks_error": 0,
  "tasks": [
    {
      "id": "05132000-1535-0293-0000-424fafdd2927",
      "status_code": 20000,
      "status_message": "Ok.",
      "time": "9.0567 sec.",
      "cost": 0,
      "result_count": 1,
      "path": [
        "v3",
        "business_data",
        "google",
        "hotel_searches",
        "live"
      ],
      "data": {
        "api": "business_data",
        "function": "hotel_searches",
        "se": "google",
        "language_code": "en",
        "location_name": "New York,New York,United States",
        "keyword": "cheap hotel",
        "check_in": "2021-06-01",
        "check_out": "2021-06-30",
        "currency": "USD",
        "adults": 2,
        "children": [
          14
        ],
        "sort_by": "highest_rating",
        "tag": "example",
        "se_type": "hotels",
        "device": "desktop",
        "os": "windows"
      },
      "result": [
        {
          "keyword": "cheap hotel",
          "location_code": 1023191,
          "language_code": "en",
          "check_url": "https://www.google.com/travel/hotels/cheap+hotel?ts=CAESDgoCCAMKAggDCgQIAxAOGi8KERINOgtjaGVhcCBob3RlbBoAEhoSFAoHCOUPEAYYARIHCOUPEAYYHhgdMgIQACoPCgsoCEoCIAE6A1VTRBoA&hl=en&gl=US",
          "datetime": "2021-05-13 17:00:35 +00:00",
          "items_count": 3,
          "items": [
            {
              "type": "hotel_search_item",
              "hotel_identifier": "ChoI34-o9vuTkMGLARoNL2cvMTFidzE1MWQ0eBAB",
              "title": "Barons Creek Vineyards",
              "stars": 0,
              "is_paid": false,
              "location": {
                "latitude": 30.224237900000002,
                "longitude": -98.8004491
              },
              "reviews": {
                "value": 4.9,
                "votes_count": 1185,
                "mentions": null,
                "rating_distribution": null,
                "other_sites_reviews": null
              },
              "overview_images": [
                "https://lh5.googleusercontent.com/p/AF1QipNKYPko6nK5IIHfAlAHX5yeX_5qCvN2uqNlW-ZL=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipO5Sjwipu1kMj5S_lbJwUrh1llAt9KDuDWjMb3f=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipMSHp8wEPgzsuLK16P5Dy9CkBVTBWNShTEk8Cnv=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipPAJog9bHlKFV9J32qnTi3rmcHxMjVxY_FMiCCh=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipM85jAUu_MSGWMb8Qu8yaHtCBky4mgXyDQINFSM=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipPAHfR3kCBwDJAK5cBRVrJxRUG-UWyvVt5FiX8W=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipM-2zowFZVmWqftKAugUgkgslk2LU7SehFfWwQ9=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipP432irL3SQ9VmfM9Gb2W--Jf5RexywmJmkrX25=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipOcywAtVvnSd6o8QmQpcl7kOhXV0t-RDaAXmMZD=w296-h202-n-k-no-v1"
              ],
              "prices": {
                "price": 0,
                "price_without_discount": null,
                "currency": null,
                "discount_text": null,
                "check_in": "2021-06-01 00:00:00 +00:00",
                "check_out": "2021-06-30 00:00:00 +00:00",
                "visitors": 3,
                "items": null
              }
            },
            {
              "type": "hotel_search_item",
              "hotel_identifier": "ChcI45ezmvK4zLoSGgsvZy8xdGZmXzZ6dBAB",
              "title": "Chanticleer Inn Bed and Breakfast",
              "stars": 3,
              "is_paid": false,
              "location": {
                "latitude": 34.975628,
                "longitude": -85.350633
              },
              "reviews": {
                "value": 4.9,
                "votes_count": 535,
                "mentions": null,
                "rating_distribution": null,
                "other_sites_reviews": null
              },
              "overview_images": [
                "https://lh5.googleusercontent.com/p/AF1QipPhxxBvrkxzXN0k8KPLn8VKq7NZkkVt2lgBglua=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipMxw7e_yzIFC4K9njGrtY1rfIzaANS7dQItm_nv=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipNckVXFDqi1i8Vi16AbqN84o-vuXG0YrtXbdnc9=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipOWasDM4OPQhxzXDrLQ2twTzSS9vih1582hL4AB=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipNVOSFKT3liXuxhffpoD6scPnvHbmdNr7GlllRE=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipNSeCfVNBKvdRQiALWyaBIMGYN3es5huC3FXp0M=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipPQEGBHTzxQQXQ32UiSvxt8rwTbjm3emQQYXC9a=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipPy-jyud_ktQZ6gduMuLU4ruErz1ezuzYFEjEF2=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipPYZzUXMRQLNNgsaiS-vGW23eKJ2YmLKG8sFNXg=w296-h202-n-k-no-v1"
              ],
              "prices": {
                "price": 0,
                "price_without_discount": null,
                "currency": null,
                "discount_text": null,
                "check_in": "2021-06-01 00:00:00 +00:00",
                "check_out": "2021-06-30 00:00:00 +00:00",
                "visitors": 3,
                "items": null
              }
            },
            {
              "type": "hotel_search_item",
              "hotel_identifier": "ChkIgOvDit-WxakcGg0vZy8xMWg3cGp6OTNuEAE",
              "title": "The Russell",
              "stars": 0,
              "is_paid": false,
              "location": {
                "latitude": 36.1740869,
                "longitude": -86.7565255
              },
              "reviews": {
                "value": 4.9,
                "votes_count": 511,
                "mentions": null,
                "rating_distribution": null,
                "other_sites_reviews": null
              },
              "overview_images": [
                "https://lh5.googleusercontent.com/p/AF1QipN2WqJ3q7Q9iW06_CyTbtjWDyM0BCVE9lJfwQQ=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipNz05SkSwBLHEXxpMzNR48gGV8BaxKv4mQnRno=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipMw2A1X0NT_MLuAzKpAZUP4X09wsS7nEoOSIFs=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipPBcg2hxUCJ4lwtlSrO5j8UGTQZvl_Q0UuwSDk=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipOp5y1cChXUisDl6oFPJFkqowfKNxnzZx-12QU=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipNgCHo7wo3ZxAAYOr4sKDbae9tKdO_OBSKZLBk=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipP3aV3gvbDHnOiFvZT_gkRRXMpCuw6_A84LHCc=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipP6xT1XpYqntfaYnF4syJMc13MezUwfCetW6Io=w296-h202-n-k-no-v1",
                "https://lh5.googleusercontent.com/p/AF1QipN3eTDPc7U5b5WyNY6EuxT5kaLgJ2TxKatsexg=w296-h202-n-k-no-v1"
              ],
              "prices": {
                "price": 0,
                "price_without_discount": null,
                "currency": null,
                "discount_text": null,
                "check_in": "2021-06-01 00:00:00 +00:00",
                "check_out": "2021-06-30 00:00:00 +00:00",
                "visitors": 3,
                "items": null
              }
            }
          ]
        }
      ]
    }
  ]
}

All POST data should be sent in the JSON format (UTF-8 encoding). The task setting is done using the POST method. When setting a task, you should send all task parameters in the task array of the generic POST array. You can send up to 2000 API calls per minute.

Below you will find a detailed description of the fields you can use for setting a task.

Description of the fields for setting a task:

Field name Type Description
keyword string keyword
optional field
the keyword you specify is used to search for the list of hotels;
if you don’t use this field, we will return the list of hotels found in a specified location;
you can specify up to 700 symbols in the keyword filed
all %## will be decoded (plus symbol ‘+’ will be decoded to a space character)
if you need to use the “%” symbol for your keyword, please specify it as “%25”;
location_name string full name of search engine location
optional field if you specify location_code or location_coordinate
if you use this field, you don’t need to specify location_code or location_coordinate
you can receive the list of available locations with location_name by making a separate request to https://api.dataforseo.com/v3/business_data/google/locations
example:
London,England,United Kingdom
location_code integer search engine location code
optional field if you specify location_name or location_coordinate
if you use this field, you don’t need to specify location_name or location_coordinate
you can receive the list of available locations with location_code by making a separate request to the https://api.dataforseo.com/v3/business_data/google/locations
example:
2840
location_coordinate string GPS coordinates of a location
optional field if you specify location_name or location_code
if you use this field, you don’t need to specify location_name or location_code
location_coordinate parameter should be specified in the “latitude,longitude,radius” format
the maximum number of decimal digits for “latitude” and “longitude”: 7
the minimum value for “radius”: 199.9
example:
53.476225,-2.243572,200
language_name string full name of search engine language
optional field if you specify language_code
if you use this field, you don’t need to specify language_code
you can receive the list of available languages with language_name by making a separate request to https://api.dataforseo.com/v3/business_data/google/languages
example:
English
language_code string search engine language code
optional field if you specify language_name
if you use this field, you don’t need to specify language_name
you can receive the list of available languages with their language_code by making a separate request to https://api.dataforseo.com/v3/business_data/google/languages
example:
en
depth integer parsing depth
optional field
number of results in Google Hotels
default value: 12 organic results
max value: 84
Note: your account will be billed per each 12 organic results regardless of paid listings in the response;
thus, setting a depth above 12 may result in additional charges if Google Hotels return more than 12 results;
if the specified depth is higher than the number of results in the response, the difference will be refunded automatically to your account balance
check_in string check-in date
optional field
if you don’t specify this field, tomorrow’s date will be used by default;
date format: "yyyy-mm-dd"
example:
"2019-01-15"
Note: the value cannot precede the today’s date
check_out string check-out date
optional field
if you don’t specify this field, our system will apply the date of two days from now by default;
date format: "yyyy-mm-dd"
example:
"2019-01-15"
Note: the value cannot be less than or equal to check_in;
the range between check_in and check_out values cannot exceed 31 days
currency string currency
optional field
example:
"USD"
adults integer number of adults
optional field
if you don’t specify this field, two adults will be used by default;
note that you can specify up to 4 persons including both adults and children
example:
1
children array number and age of children
optional field
if you don’t specify this field, no children will be included in the search;
age of child can be from 0 to 17;
note that you can specify up to 4 persons including both adults and children
set the following value if you want to include one 14-years-old child:
[14]
set the following value if you want to include one 13-years-old child and one 8-years-old child:
[13,8]
stars array hotel stars
optional field
set this field to [5] if you want to get the list of 5-star hotels only
example:
[3,4,5]
min_rating float minimum rating
optional field
you can use this field to specify guest rating higher than a certain value
example:
2.5
sort_by string results sorting parameters
optional field
you can use this field to sort the results
possible types of sorting:
highest_rating – sort by highest rating
best_match – sort by best match
lower_price – sort by lower price
default value: highest_rating
min_price integer minimum price per night
optional field
the currency of this value depends on the currency field
example:
100
max_price integer maximum price per night
optional field
the currency of this value depends on the currency field
example:
600
free_cancellation boolean hotels with a free cancellation
optional field
set this field to true if you want to get the list of hotels with free cancellation of reservations
default value: false
is_vacation_rentals boolean search for vacation rentals
optional field
set this field to true if you want to get the list of vacation rentals instead of hotels
default value: false
amenities array hotel amenities
optional field
you can use this field to specify different hotel amenities
example:
[
"free_parking",
"pets_allowed"
]

possible values:
"air_conditioning",
"all_inclusive_available",
"bar",
"free_breakfast",
"fitness_center",
"kid_friendly",
"free_parking",
"pets_allowed",
"pool",
"restaurant",
"room_service",
"spa",
"free_wifi"
tag string user-defined task identifier
optional field
the character limit is 255
you can use this parameter to identify the task and match it with the result
you will find the specified tag value in the data object of the response

‌‌‌‌‌
As a response of the API server, you will receive JSON-encoded data containing a tasks array with the information specific to the set tasks.

Description of the fields in the results array:

Field name Type Description
version string the current version of the API
status_code integer general status code
you can find the full list of the response codes here
Note: we strongly recommend designing a necessary system for handling related exceptional or error conditions
status_message string general informational message
you can find the full list of general informational messages here
time string execution time, seconds
cost float total tasks cost, USD
tasks_count integer the number of tasks in the tasksarray
tasks_error integer the number of tasks in the tasks array returned with an error
tasks array array of tasks
        id string unique task identifier in our system
in the Universally unique identifier (UUID) format
        status_code integer status code of the task
generated by DataForSEO; can be within the following range: 10000-60000
        status_message string informational message of the task
        time string execution time, seconds
        cost float cost of the task, USD
        result_count integer number of elements in the result array
        path array URL path
        data object contains the same parameters that you specified in the POST request
        result array array of results
            keyword string keyword received in a POST array
keyword is returned with decoded %## (plus symbol ‘+’ will be decoded to a space character)
            location_code integer location code in a POST array
            language_code string language code in a POST array
            check_url string direct URL to search engine results
you can use it to make sure that we provided accurate results
            datetime string date and time when the result was received
in the UTC format: “yyyy-mm-dd hh-mm-ss +00:00”
example:
2019-11-15 12:57:46 +00:00
            items_count integer item types
the number of items in the items array
            items array encountered item types
types of search engine results encountered in the items array;
possible item types: hotel_search_item
                type string type of element = ‘hotel_search_item’
                hotel_identifier string unique identifier of a hotel entity in Google search
example:
CgoI-KWyzenM_MV3EAE
                title string title of the hotel
                stars integer hotel class rating
class rating that ranges between 1-5 stars
                is_paid boolean indicates a paid hotel listing
if true, related hotel_search_item is a paid ad
if false, related hotel_search_item is an organic hotel listing
                location object GPS coordinates of the hotel’s location
                    latitude float latitude coordinate of the hotel in google maps
example:
"latitude": 51.584091
                    longitude float longitude coordinate of the hotel in google maps
example:
"longitude": -0.31365919999999997
                reviews object hotel reviews and rating information
                    value float the average rating based on all reviews
                    votes_count integer the number of votes
                    mentions array hotel mentions
note: this field always equals null; use it to facilitate integration and ensure interoperability with the Hotel Info endpoint
                    rating_distribution object rating distribution by votes
note: this field always equals null; use it to facilitate integration and ensure interoperability with the Hotel Info endpoint
                    other_sites_reviews array reviews on third-party sites
note: this field always equals null; use it to facilitate integration and ensure interoperability with the Hotel Info endpoint
                overview_images array featured images for a hotel
                prices object hotel price
                    price integer price per night
                    price_without_discount integer full price per night without a discount applied
                    currency string price currency
USD is applied by default, unless specified in the POST array
                    discount_text string text about a discount applied
                    check_in string check-in date and time
in the UTC format: “yyyy-mm-dd hh-mm-ss +00:00”
example:
2019-11-15 12:57:46 +00:00
                    check_out string check-out date and time
in the UTC format: “yyyy-mm-dd hh-mm-ss +00:00”
example:
2019-11-15 12:57:46 +00:00
                    visitors integer number of hotel visitors for this price
                    items array array of items
note: this field always equals null; use it to facilitate integration and ensure interoperability with the Hotel Info endpoint

‌‌