# Google Travel Explore API | Destination for AI Travel Agents (`johnvc/google-travel-explore-api`) Actor

Discover where you can travel from any airport with Google Travel Explore: destination ideas with flight prices, hotel prices, trip dates, duration, and stops as structured JSON. For travel sites, agencies, and AI travel agents. Pay per destination, MCP-ready.

- **URL**: https://apify.com/johnvc/google-travel-explore-api.md
- **Developed by:** [John](https://apify.com/johnvc) (community)
- **Categories:** Travel, AI, MCP servers
- **Stats:** 1 total users, 1 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.01 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Google Travel Explore API | Destination Discovery for AI Travel Agents

Discover where you can travel from any airport and get destination ideas with prices and dates as structured JSON. For one or more departure airports, this API returns a ranked list of destinations, each with an estimated round-trip flight price, nightly hotel price, suggested trip dates, flight duration, number of stops, and a link. It is the missing piece for travel content sites, agencies, and AI travel agents that currently stitch this together by hand from flights and hotels.

### What you get

One row per destination:

- `name` and `country` of the destination, plus `destination_airport` and `gps_coordinates`
- `flight_price` (estimated round trip) and `hotel_price` (estimated nightly)
- `start_date` and `end_date` of the suggested trip
- `flight_duration` (minutes) and `number_of_stops`
- `airline` / `airline_code` for the suggested itinerary
- `link` to the destination on Google Travel, and a `thumbnail`

### Use cases

- Feed an AI travel agent a list of destinations a traveler might love, with prices, in one call
- Power a "where can I go on a budget?" feature on a travel content site
- Build seasonal destination roundups with real prices and dates
- Compare reachable destinations and prices across several home airports
- Seed trip-planning workflows with ranked, priced destination ideas

### Input

| Field | Type | Description |
|-------|------|-------------|
| `departureId` | string | A single departure airport code, e.g. `JFK`, `LAX`, `LHR`. Provide this, `departureIds`, or both. |
| `departureIds` | array of strings | A batch of departure airport codes to explore in one run. Merged with `departureId` and de-duplicated. |
| `gl` | string | Optional two-letter country code for pricing and localization. Default `us`. |
| `hl` | string | Optional two-letter language code. Default `en`. |
| `maxResultsPerDeparture` | integer | Destinations per departure airport. Default 50, maximum 200. |

#### Example input

```json
{
  "departureId": "JFK",
  "gl": "us",
  "hl": "en",
  "maxResultsPerDeparture": 50
}
````

### Sample output

```json
{
  "result_type": "destination",
  "departure_id": "JFK",
  "position": 1,
  "name": "Los Angeles",
  "country": "United States",
  "destination_airport": { "code": "LAX", "location": "Los Angeles" },
  "gps_coordinates": { "latitude": 34.0549, "longitude": -118.2426 },
  "flight_price": 318,
  "hotel_price": 199,
  "flight_duration": 350,
  "number_of_stops": 0,
  "airline": "American and JetBlue",
  "airline_code": "multi",
  "start_date": "2026-06-21",
  "end_date": "2026-06-30",
  "link": "https://www.google.com/travel/explore?..."
}
```

### Pricing

Pay-per-result: a small `actor_start` fee plus a per-destination charge. The per-destination price scales down with your Apify plan.

| Plan | Per destination | Start fee |
|---|---|---|
| Free | $0.005 | $0.001 |
| Bronze | $0.0042 | $0.001 |
| Silver | $0.0035 | $0.001 |
| Gold | $0.003 | $0.001 |

You only pay for the destinations you receive. No monthly minimum.

### How to get started

1. Open [Google Travel Explore API on the Apify Store](https://apify.com/johnvc/google-travel-explore-api?fpr=9n7kx3).
2. Enter a `departureId` (or a `departureIds` list of airport codes).
3. Set `maxResultsPerDeparture`, then run the Actor.
4. Export the dataset as JSON, CSV, or Excel, or pull it from the API.

Prefer code? See [johnvc's GitHub for setup guides and code examples](https://github.com/johnisanerd/ApifyPublicData).

### Run from the API

```bash
curl -X POST "https://api.apify.com/v2/acts/johnvc~google-travel-explore-api/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"departureId":"JFK","maxResultsPerDeparture":25}'
```

### 🔌 Use this API from Claude (MCP)

This Actor is compatible with the Model Context Protocol (MCP), so AI agents can call it as a tool. Add it through the hosted Apify MCP server using this Actor-specific URL:

https://mcp.apify.com/?tools=actors,docs,johnvc/google-travel-explore-api

If you run agents from [Claude Code](https://claude.ai/referral/uIlpa7nPLg) (free trial) or [Claude Cowork](https://claude.ai/referral/uIlpa7nPLg) (free trial), add the Apify MCP server and ask it to "find budget destinations from JFK this summer."

Setup walkthrough:

https://www.youtube.com/watch?v=jREWahDGhJM

Apify MCP integration docs: https://docs.apify.com/platform/integrations/mcp

#### MCP setup, step by step

Visual setup guides for each client (source and more assets: [ApifyPublicData on GitHub](https://github.com/johnisanerd/ApifyPublicData)):

**[Claude Cowork Desktop](https://claude.ai/referral/uIlpa7nPLg)** (free trial)

![Apify MCP install screenshot for the Cowork desktop app](https://raw.githubusercontent.com/johnisanerd/ApifyPublicData/main/assets/guides/install_mcp_into_claude_desktop.png)

**[Claude Code](https://claude.ai/referral/uIlpa7nPLg)** (free trial)

![Apify MCP install screenshot for the Code CLI](https://raw.githubusercontent.com/johnisanerd/ApifyPublicData/main/assets/guides/install_mcp_into_claude_code.png)

**Claude (website)**

![Install in Claude website](https://raw.githubusercontent.com/johnisanerd/ApifyPublicData/main/assets/guides/install_mcp_into_claude_ai.png)

**Cursor**

![Install in Cursor](https://raw.githubusercontent.com/johnisanerd/ApifyPublicData/main/assets/guides/install_mcp_into_cursor.png)

**ChatGPT**

![Install in ChatGPT](https://raw.githubusercontent.com/johnisanerd/ApifyPublicData/main/assets/guides/install_mcp_into_ChatGPT.png)

### FAQ

**What is a departure ID?** It is the airport you are flying from, given as an IATA code like `JFK`, `LAX`, or `LHR`. You can pass several at once with `departureIds`.

**Are the prices live?** They are Google Travel's current estimated round-trip flight and nightly hotel prices for the suggested dates, in the currency for your `gl` country.

**How many destinations come back?** Up to `maxResultsPerDeparture` (default 50). A departure point typically surfaces dozens of destination ideas.

**Can I explore from several airports at once?** Yes. Pass a `departureIds` list; each is explored independently and tagged with its departure code.

Last Updated: 2026.06.10

# Actor input Schema

## `departureId` (type: `string`):

Enter a single departure airport code to explore destinations from, for example 'JFK', 'LAX', or 'LHR'. Provide this, `departureIds`, or both.

## `departureIds` (type: `array`):

Provide a list of departure airport codes to explore in one run, for example \['JFK', 'SFO']. Merged with `departureId` and de-duplicated.

## `gl` (type: `string`):

Set the two-letter country code for pricing and localization (e.g. 'us', 'gb', 'de'). Defaults to 'us'.

## `hl` (type: `string`):

Set the two-letter interface language code (e.g. 'en', 'es', 'de'). Defaults to 'en'.

## `maxResultsPerDeparture` (type: `integer`):

How many destination ideas to return per departure airport. Default 50, maximum 200.

## Actor input object example

```json
{
  "departureId": "JFK",
  "gl": "us",
  "hl": "en",
  "maxResultsPerDeparture": 50
}
```

# Actor output Schema

## `results` (type: `string`):

All destination rows stored in the default dataset, one item per destination.

# 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 = {
    "departureId": "JFK",
    "gl": "us",
    "hl": "en"
};

// Run the Actor and wait for it to finish
const run = await client.actor("johnvc/google-travel-explore-api").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 = {
    "departureId": "JFK",
    "gl": "us",
    "hl": "en",
}

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

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

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

```

## CLI example

```bash
echo '{
  "departureId": "JFK",
  "gl": "us",
  "hl": "en"
}' |
apify call johnvc/google-travel-explore-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=johnvc/google-travel-explore-api",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Travel Explore API | Destination for AI Travel Agents",
        "description": "Discover where you can travel from any airport with Google Travel Explore: destination ideas with flight prices, hotel prices, trip dates, duration, and stops as structured JSON. For travel sites, agencies, and AI travel agents. Pay per destination, MCP-ready.",
        "version": "0.0",
        "x-build-id": "NndpM1oE132MmoZzW"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/johnvc~google-travel-explore-api/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-johnvc-google-travel-explore-api",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/johnvc~google-travel-explore-api/runs": {
            "post": {
                "operationId": "runs-sync-johnvc-google-travel-explore-api",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/johnvc~google-travel-explore-api/run-sync": {
            "post": {
                "operationId": "run-sync-johnvc-google-travel-explore-api",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "departureId": {
                        "title": "Departure Airport",
                        "type": "string",
                        "description": "Enter a single departure airport code to explore destinations from, for example 'JFK', 'LAX', or 'LHR'. Provide this, `departureIds`, or both."
                    },
                    "departureIds": {
                        "title": "Departure Airports",
                        "type": "array",
                        "description": "Provide a list of departure airport codes to explore in one run, for example ['JFK', 'SFO']. Merged with `departureId` and de-duplicated.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "gl": {
                        "title": "Country Code",
                        "type": "string",
                        "description": "Set the two-letter country code for pricing and localization (e.g. 'us', 'gb', 'de'). Defaults to 'us'.",
                        "default": "us"
                    },
                    "hl": {
                        "title": "Language Code",
                        "type": "string",
                        "description": "Set the two-letter interface language code (e.g. 'en', 'es', 'de'). Defaults to 'en'.",
                        "default": "en"
                    },
                    "maxResultsPerDeparture": {
                        "title": "Maximum Destinations Per Departure",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "How many destination ideas to return per departure airport. Default 50, maximum 200.",
                        "default": 50
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
