# Google Travel Explore Scraper (`googleapi/google-travel-explore-scraper`) Actor

Extract public Google Travel Explore destination cards and available trip, flight-price insight, hotel-stay, seasonal-weather, and destination-question details.

- **URL**: https://apify.com/googleapi/google-travel-explore-scraper.md
- **Developed by:** [Google API](https://apify.com/googleapi) (community)
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

Collect destination recommendations from public Google Travel Explore pages. A record can include trip settings, displayed flight prices and options, hotel or rental details, seasonal information, weather, and destination questions when those details are present on the page.

Google Explore controls its recommendations and prices. Dates, fares, hotel prices, and conditions can change, and missing facts are not estimated.

### How to use

Provide one or more destination searches in `queries`, or use a public Explore URL in `startUrls`. Google chooses the departure context for a generated query; use an Explore URL configured with trip controls when you need a particular origin.

```json
{
  "queries": ["New York"],
  "maxItems": 10,
  "page": 1,
  "maxPages": 5,
  "includeDestinationQuestions": true,
  "renderJavaScript": true
}
```

### Input

| Input | Description | Default |
|---|---|---:|
| `queries` | Destination terms used to search Google Travel Explore. | — |
| `startUrls` | Public Google Explore URLs. URLs and queries can be combined; duplicates are removed. | — |
| `maxItems` | Maximum destination records across all inputs. | 25 |
| `page` / `maxPages` | Select a bounded window of ten destination cards within each response. This does not request more remote pages. | 1 / 10 |
| `includeDestinationQuestions` | Include visible question prompts and answer or citation text when present. | `true` |
| `renderJavaScript` | Use a standard browser to reveal destination cards and details that are not present in the initial page response. | `false` |
| `proxyConfiguration` | Optional Apify Proxy configuration for public Google pages. | — |

### Output

Each dataset item represents a destination recommendation. Available information can include:

- **Trip context:** destination, country, origin, trip type, passenger count, travel class, suggested date range, and trip duration.
- **Flights:** displayed destination-card fare, stops, duration, airline options, and price comparisons when shown.
- **Stays:** dates, accommodation choices, stay price, hotel count, and hotel options.
- **Season and weather:** peak/off-season periods, monthly weather, temperatures, and popularity labels.
- **Destination questions:** visible topics, prompts, and any available answer and citations.

Prices from destination cards, airlines, stays, and hotels remain in separate fields. Dates retain Google’s displayed precision; the Actor does not add an unstated year. A section that was not available may be `null`; an observed section with no entries may be an empty array.

Example dataset item:

```json
{
  "destinationName": "Example destination",
  "destinationCountry": "Example country",
  "recommendationPosition": 1,
  "originName": "Example origin",
  "tripType": "round_trip",
  "passengerCount": 1,
  "travelClass": "economy",
  "dateWindowText": "1-week trip in the next 6 months",
  "tripDateRangeText": "Oct 18 – 27",
  "flightPriceText": "$250",
  "flightCurrencyCode": "USD",
  "flightStopsText": "1 stop",
  "flightDurationText": "3 hr 10 min",
  "stayPriceText": "$125 /night avg",
  "stayCurrencyCode": "USD",
  "peakSeasonRangeText": "Dec – Mar",
  "temperatureUnit": "F",
  "monthlyConditions": [
    {
      "monthName": "October",
      "weatherDescription": "Partly cloudy",
      "temperatureRangeText": "83° / 77°"
    }
  ],
  "destinationQuestions": [
    {
      "topic": "All",
      "question": "What is useful to know about this destination?",
      "answerText": null
    }
  ]
}
```

The Output tab shows the available result fields. Run summary information is available with the run output in Apify.

### Limits and responsible use

Results depend on what Google Explore displays for the selected page and locale. Browser rendering can increase run time. The Actor does not sign in or bypass access checks.

Use public travel information responsibly and follow applicable privacy requirements and Google terms. This Actor is not affiliated with Google.

# Actor input Schema

## `startUrls` (type: `array`):

Public HTTPS URLs whose host is google.com or a Google subdomain and whose path is /travel/explore.

## `queries` (type: `array`):

Destination terms added to https://www.google.com/travel/explore?q={query}\&hl=en. Google chooses the departure context; supply a public Explore URL generated with trip controls for a specific departure city.

## `maxItems` (type: `integer`):

Maximum number of destination recommendations to emit across the supplied pages.

## `page` (type: `integer`):

One-based window of ten destination cards within each returned Explore page.

## `maxPages` (type: `integer`):

Maximum number of ten-card windows to consider from each returned Explore page.

## `includeDestinationQuestions` (type: `boolean`):

Keep public question prompts and complete available answer text with cited publishers. Browser rendering expands visible question disclosures inside requested destination panels. Citation pages are not fetched.

## `requestTimeoutSecs` (type: `integer`):

Maximum time allowed for each HTTPS page request.

## `proxyConfiguration` (type: `object`):

Optional Apify proxy settings for public Google pages. Residential proxies are recommended where Google requires them.

## `renderJavaScript` (type: `boolean`):

Render Google Explore in ordinary Chromium, wait for destination cards, and open requested destination panels and public detail disclosures. The configured proxy applies to both routes.

## Actor input object example

```json
{
  "maxItems": 25,
  "page": 1,
  "maxPages": 10,
  "includeDestinationQuestions": true,
  "requestTimeoutSecs": 20,
  "renderJavaScript": false
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("googleapi/google-travel-explore-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("googleapi/google-travel-explore-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call googleapi/google-travel-explore-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,googleapi/google-travel-explore-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/D2Lg6O3GVCSj40QCC/builds/bpxEmhSWYxSAweKUL/openapi.json
