# Google Maps API

> Google Maps returns place details, reviews and directions, available as a workflow and API.

Google Maps Search finds places by type or name and location, returning matching places with details such as ratings, hours and contact information. Get place returns a public place profile using a place name or Maps link and location; Get place reviews returns reviews using the same inputs. Get directions returns up to three routes using an origin and destination, with travel mode and departure time as optional inputs.

- Page: https://fous.com/workflows/google-maps
- Handle: `@google-maps`
- Category: [Maps](https://fous.com/workflows/category/maps)
- Source website: https://google.com/maps
- Last verified: Sep 30, 2026
- Fous is not affiliated with Google Maps.

## Methods

### Get directions

Operation `get_directions`, version 1. 1 credit per call.

Get up to three Google Maps routes between two places, with distances, travel times and directions. Transit details and route availability depend on the place and departure time.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `avoid` | string | no | `"tolls"` | A road feature to avoid, such as tolls; defaults to none. |
| `origin` | string | yes | `"Ferry Building, San Francisco"` | Starting address, place name or city, such as Golden Gate Bridge. |
| `destination` | string | yes | `"SFO Airport"` | Destination address, place name or city, such as Stanford University. |
| `travel_mode` | string | no | `"public_transit"` | How to travel, such as walking; defaults to driving. |
| `departure_time` | string | no | `"2026-09-29T08:00:00-07:00"` | Departure date and time at the starting place, with its time zone offset, such as 2026-10-01T09:00:00-07:00; defaults to now. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "origin",
    "destination"
  ],
  "properties": {
    "avoid": {
      "enum": [
        "none",
        "tolls",
        "highways",
        "ferries"
      ],
      "type": "string",
      "default": "none",
      "description": "A road feature to avoid, such as tolls; defaults to none.",
      "examples": [
        "tolls"
      ]
    },
    "origin": {
      "type": "string",
      "title": "From",
      "description": "Starting address, place name or city, such as Golden Gate Bridge.",
      "examples": [
        "Ferry Building, San Francisco",
        "Golden Gate Bridge",
        "Times Square, New York"
      ]
    },
    "destination": {
      "type": "string",
      "title": "To",
      "description": "Destination address, place name or city, such as Stanford University.",
      "examples": [
        "SFO Airport",
        "Stanford University",
        "Central Park, New York"
      ]
    },
    "travel_mode": {
      "enum": [
        "driving",
        "walking",
        "cycling",
        "public_transit"
      ],
      "type": "string",
      "default": "driving",
      "description": "How to travel, such as walking; defaults to driving.",
      "examples": [
        "public_transit",
        "walking",
        "driving"
      ]
    },
    "departure_time": {
      "type": "string",
      "format": "date-time",
      "description": "Departure date and time at the starting place, with its time zone offset, such as 2026-10-01T09:00:00-07:00; defaults to now.",
      "examples": [
        "2026-09-29T08:00:00-07:00"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "origin": "Ferry Building, San Francisco",
      "destination": "SFO Airport",
      "travel_mode": "public_transit",
      "departure_time": "2026-09-29T08:00:00-07:00"
    },
    {
      "origin": "Golden Gate Bridge",
      "destination": "Stanford University"
    },
    {
      "origin": "Times Square, New York",
      "destination": "Central Park, New York",
      "travel_mode": "walking"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `routes` | array |  |  |
| `routes[].steps` | array |  |  |
| `routes[].summary` | string | `"Subway Red-S"` |  |
| `routes[].page_link` | string | `"https://www.google.com/maps/dir/Ferry+Building,+1+Ferry+Building,+San+Francisco,+CA+94105/San+Francisco+International+A` |  |
| `routes[].distance_km` | number | `26.2` |  |
| `routes[].travel_time` | string | `"40 min"` |  |
| `routes[].distance_miles` | number | `16.3` |  |
| `routes[].distance_metres` | integer | `26169` |  |
| `routes[].travel_time_seconds` | integer | `2374` |  |
| `end_address` | string | `"San Francisco International Airport, San Francisco, CA 94128"` |  |
| `start_address` | string | `"Ferry Building, 1 Ferry Building, San Francisco, CA 94105"` |  |

**Example input**

```json
{
  "origin": "Ferry Building, San Francisco",
  "destination": "SFO Airport",
  "travel_mode": "public_transit",
  "departure_time": "2026-09-29T08:00:00-07:00"
}
```

**Example output**

```json
{
  "routes": [
    {
      "steps": [
        {
          "time": "2 min",
          "to_stop": null,
          "distance": "400 ft",
          "from_stop": null,
          "line_name": null,
          "instruction": "Head toward The Embarcadero S",
          "time_seconds": 118,
          "departure_time": null,
          "distance_metres": 122
        }
      ],
      "summary": "Subway Red-S",
      "page_link": "https://www.google.com/maps/dir/Ferry+Building,+1+Ferry+Building,+San+Francisco,+CA+94105/San+Francisco+International+Airport,+San+Francisco,+CA+94128/data=!4m18!4m17!1m5!1m1!1s0x808580668e8f3159:0x6c…",
      "distance_km": 26.2,
      "travel_time": "40 min",
      "distance_miles": 16.3,
      "distance_metres": 26169,
      "travel_time_seconds": 2374
    }
  ],
  "end_address": "San Francisco International Airport, San Francisco, CA 94128",
  "start_address": "Ferry Building, 1 Ferry Building, San Francisco, CA 94105"
}
```

### Get place

Operation `get_place`, version 1. 1 credit per call.

Get a public Google Maps place profile by name and location, or by a Maps place link and location. Fields not shown for a place are left empty.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `location` | string | yes | `"Seattle, Washington"` | City, area, or address, such as Greenwich Village, New York. |
| `place_name` | string | yes | `"Space Needle"` | Business or place name, such as Joe's Pizza, or a Google Maps place link. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "place_name",
    "location"
  ],
  "properties": {
    "location": {
      "type": "string",
      "description": "City, area, or address, such as Greenwich Village, New York.",
      "examples": [
        "Seattle, Washington",
        "Greenwich Village, New York"
      ]
    },
    "place_name": {
      "type": "string",
      "description": "Business or place name, such as Joe's Pizza, or a Google Maps place link.",
      "examples": [
        "Space Needle",
        "Joe's Pizza",
        "https://www.google.com/maps/place/Joe's+Pizza/@40.7306597,-74.0021707,17z/data=!4m6!3m5!1s0x89c259924a960df1:0x43b20488619b3f43!8m2!3d40.7306597!4d-74.0021707!16s%2Fg%2F1tyyy0n3"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "location": "Seattle, Washington",
      "place_name": "Space Needle"
    },
    {
      "location": "Greenwich Village, New York",
      "place_name": "Joe's Pizza"
    },
    {
      "location": "Greenwich Village, New York",
      "place_name": "https://www.google.com/maps/place/Joe's+Pizza/@40.7306597,-74.0021707,17z/data=!4m6!3m5!1s0x89c259924a960df1:0x43b20488619b3f43!8m2!3d40.7306597!4d-74.0021707!16s%2Fg%2F1tyyy0n3"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `name` | string | `"Space Needle"` | Place name. |
| `address` | string or null | `"400 Broad St, Seattle, WA 98109"` | Full street address. |
| `website` | string or null | `"https://www.spaceneedle.com/"` | Public website link. |
| `category` | string or null | `"Observation deck"` | Primary category. |
| `latitude` | number or null | `47.620506299999995` | Latitude. |
| `open_now` | string or null | `"No"` | Yes or No based on the current hours status. |
| `longitude` | number or null | `-122.34927739999999` | Longitude. |
| `plus_code` | string or null | `"JMC2+67 Seattle, Washington"` | Plus code. |
| `description` | string or null | `"Iconic, 605-ft-tall spire at the Seattle Center, with an observation deck & a rotating restaurant."` | Short description, when shown. |
| `photo_links` | array |  | Up to five public place photo links. |
| `price_level` | string or null |  | Price level as shown on Google Maps. |
| `star_rating` | number or null | `4.6` | Average star rating. |
| `phone_number` | string or null | `"(206) 905-2100"` | Public phone number. |
| `review_count` | integer or null | `10649` | Number of reviews. |
| `opening_hours` | object |  | Weekly opening hours as displayed. |
| `opening_hours.Friday` | string or null | `"10 AM–4 AM"` | Friday hours as text. |
| `opening_hours.Monday` | string or null | `"10:30 AM–8 PM"` | Monday hours as text. |
| `opening_hours.Sunday` | string or null | `"10 AM–3 AM"` | Sunday hours as text. |
| `opening_hours.Tuesday` | string or null | `"10 AM–3 AM"` | Tuesday hours as text. |
| `opening_hours.Saturday` | string or null | `"10 AM–4 AM"` | Saturday hours as text. |
| `opening_hours.Thursday` | string or null | `"10 AM–3 AM"` | Thursday hours as text. |
| `opening_hours.Wednesday` | string or null | `"10 AM–3 AM"` | Wednesday hours as text. |
| `google_place_id` | string or null | `"ChIJ-bfVTh8VkFQRDZLQnmioK9s"` | Google place ID. |
| `service_options` | array |  | Available service options. |
| `google_maps_link` | string | `"https://www.google.com/maps/place/Space+Needle,+400+Broad+St,+Seattle,+WA+98109/@47.6205063,-122.3492774,2689a,13.1y/da` | Google Maps page link. |

**Example input**

```json
{
  "location": "Seattle, Washington",
  "place_name": "Space Needle"
}
```

**Example output**

```json
{
  "name": "Space Needle",
  "address": "400 Broad St, Seattle, WA 98109",
  "website": "https://www.spaceneedle.com/",
  "category": "Observation deck",
  "latitude": 47.620506299999995,
  "open_now": "No",
  "longitude": -122.34927739999999,
  "plus_code": "JMC2+67 Seattle, Washington",
  "description": "Iconic, 605-ft-tall spire at the Seattle Center, with an observation deck & a rotating restaurant.",
  "photo_links": [
    "https://lh3.googleusercontent.com/gps-cs-s/AHRPTWmyNGjXVaNO1wFdbnLTCMEENxuZz8P1xBHu8p5sBhammJXbwfalKs8GuoPCklHHW-79tcLjP0PU3HmmyMilpTQe2zFjhiKdcuEh1VIyRfil97ou-igWbOuFANlzMTcFWMEJg-RA=w86-h114-k-no"
  ],
  "price_level": null,
  "star_rating": 4.6,
  "phone_number": "(206) 905-2100",
  "review_count": null,
  "opening_hours": {
    "Friday": null,
    "Monday": "10:30 AM–8 PM",
    "Sunday": null,
    "Tuesday": null,
    "Saturday": null,
    "Thursday": null,
    "Wednesday": null
  },
  "google_place_id": "ChIJ-bfVTh8VkFQRDZLQnmioK9s",
  "service_options": [],
  "google_maps_link": "https://www.google.com/maps/place/Space+Needle,+400+Broad+St,+Seattle,+WA+98109/@47.6205063,-122.3492774,2689a,13.1y/data=!4m2!3m1!1s0x5490151f4ed5b7f9:0xdb2ba8689ed0920d"
}
```

### Get place reviews

Operation `get_place_reviews`, version 1. 1 credit per call.

Get public Google reviews for a place by its name or Maps link and location. Returns up to 100 reviews in the chosen order; details unavailable on public pages are null.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `sort` | string | no | `"newest"` | Review order, e.g. newest. |
| `location` | string | yes | `"Boston"` | City or area to identify the place, e.g. Boston. |
| `place_name` | string | yes | `"The Ritz-Carlton"` | Business name or Google Maps link, e.g. Union Oyster House or https://www.google.com/maps/place/Union+Oyster+House/. |
| `max_reviews` | integer | no | `15` | Maximum reviews to return, e.g. 20 (up to 100). |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "place_name",
    "location"
  ],
  "properties": {
    "sort": {
      "enum": [
        "most_relevant",
        "newest",
        "highest_rating",
        "lowest_rating"
      ],
      "type": "string",
      "default": "most_relevant",
      "description": "Review order, e.g. newest.",
      "examples": [
        "newest",
        "most_relevant",
        "highest_rating"
      ]
    },
    "location": {
      "type": "string",
      "description": "City or area to identify the place, e.g. Boston.",
      "examples": [
        "Boston"
      ]
    },
    "place_name": {
      "type": "string",
      "description": "Business name or Google Maps link, e.g. Union Oyster House or https://www.google.com/maps/place/Union+Oyster+House/.",
      "examples": [
        "The Ritz-Carlton",
        "Union Oyster House",
        "https://www.google.com/maps/place/Union+Oyster+House/"
      ]
    },
    "max_reviews": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum reviews to return, e.g. 20 (up to 100).",
      "x-fous-developer": true,
      "examples": [
        15,
        20,
        12
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "sort": "newest",
      "location": "Boston",
      "place_name": "The Ritz-Carlton",
      "max_reviews": 15
    },
    {
      "sort": "most_relevant",
      "location": "Boston",
      "place_name": "Union Oyster House",
      "max_reviews": 20
    },
    {
      "sort": "highest_rating",
      "location": "Boston",
      "place_name": "Union Oyster House",
      "max_reviews": 12
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `address` | string or null | `"41 Union St, Boston, MA 02108, United States"` |  |
| `reviews` | array |  |  |
| `reviews[].likes` | integer or null |  |  |
| `reviews[].stars` | integer or null | `1` |  |
| `reviews[].review_id` | string or null | `"Ci9DQUlRQUNvZENodHljRjlvT2xCcGMyUTFSMkpPV21OUFUzb3lOSFp1VFZwWFZHYxAB"` |  |
| `reviews[].owner_reply` | string or null |  |  |
| `reviews[].review_date` | string or null | `"2026-09-16"` |  |
| `reviews[].review_link` | string or null | `"https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sCi9DQUlRQUNvZENodHljRjlvT2xCcGMyUTFSMkpPV21OUFUzb3lOSFp1VF` |  |
| `reviews[].review_text` | string or null | `"Refused service for religious beliefs."` |  |
| `reviews[].reviewer_name` | string or null | `"Lee Millsaps"` |  |
| `reviews[].owner_reply_date` | string or null |  |  |
| `reviews[].original_date_text` | string or null | `"a week ago"` |  |
| `place_link` | string | `"https://www.google.com/maps/place/?q=place_id:ChIJMVYI84Vw44kRKNGrFHLCsVc"` |  |
| `place_name` | string | `"Union Oyster House"` |  |
| `total_reviews` | integer or null | `11329` |  |
| `overall_rating` | number or null | `4.3` |  |
| `google_place_id` | string or null | `"ChIJMVYI84Vw44kRKNGrFHLCsVc"` |  |

**Example input**

```json
{
  "sort": "newest",
  "location": "Boston",
  "place_name": "https://www.google.com/maps/place/Union+Oyster+House/",
  "max_reviews": 12
}
```

**Example output**

```json
{
  "address": "41 Union St, Boston, MA 02108, United States",
  "reviews": [
    {
      "likes": null,
      "stars": 1,
      "review_id": "Ci9DQUlRQUNvZENodHljRjlvT2xCcGMyUTFSMkpPV21OUFUzb3lOSFp1VFZwWFZHYxAB",
      "owner_reply": null,
      "review_date": "2026-09-16",
      "review_link": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sCi9DQUlRQUNvZENodHljRjlvT2xCcGMyUTFSMkpPV21OUFUzb3lOSFp1VFZwWFZHYxAB!2m1!1s0x0:0x57b1c27214abd128!3m1!1s2@1:CAIQACodChtycF9oOlBpc2Q1R2JOWmN…",
      "review_text": "Refused service for religious beliefs.",
      "reviewer_name": "Lee Millsaps",
      "owner_reply_date": null,
      "original_date_text": "a week ago"
    },
    {
      "likes": null,
      "stars": 1,
      "review_id": "Ci9DQUlRQUNvZENodHljRjlvT2psTE5GVlZha3BsVTNkQmR6VjNaakZ0UmxoRWFVRRAB",
      "owner_reply": null,
      "review_date": "2026-09-16",
      "review_link": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sCi9DQUlRQUNvZENodHljRjlvT2psTE5GVlZha3BsVTNkQmR6VjNaakZ0UmxoRWFVRRAB!2m1!1s0x0:0x57b1c27214abd128!3m1!1s2@1:CAIQACodChtycF9oOjlLNFVVakplU3d…",
      "review_text": null,
      "reviewer_name": "LouiS WolFX",
      "owner_reply_date": null,
      "original_date_text": "a week ago"
    }
  ],
  "place_link": "https://www.google.com/maps/place/?q=place_id:ChIJMVYI84Vw44kRKNGrFHLCsVc",
  "place_name": "Union Oyster House",
  "total_reviews": 11329,
  "overall_rating": 4.3,
  "google_place_id": "ChIJMVYI84Vw44kRKNGrFHLCsVc"
}
```

### Search places

Operation `search_places`, version 1. 1 credit per call.

Find businesses and places near a location in Google Maps order, with contact details, ratings, hours and links when shown. Google may return related places for broad or uncommon searches.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `page` | integer | no | `2` | Page of results, such as 2. Each page has up to max_results places. |
| `what` | string | yes | `"pizza"` | Place type or business name, such as dentist or Starbucks. |
| `where` | string | yes | `"Austin, TX"` | City, neighborhood, address or postcode, such as Austin, TX. |
| `language` | string | no |  | Language for place details, such as English or Spanish. |
| `open_now` | boolean | no | `true` | Only include places Google shows as open now, such as true. |
| `min_rating` | number | no | `4.5` | Only include places rated at least this many stars, such as 4.5. |
| `max_results` | integer | no | `5` | Maximum number of places, such as 20. Up to 100. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "what",
    "where"
  ],
  "properties": {
    "page": {
      "type": "integer",
      "default": 1,
      "minimum": 1,
      "description": "Page of results, such as 2. Each page has up to max_results places.",
      "x-fous-developer": true,
      "examples": [
        2
      ]
    },
    "what": {
      "type": "string",
      "minLength": 1,
      "description": "Place type or business name, such as dentist or Starbucks.",
      "examples": [
        "pizza",
        "coffee shops",
        "gas station"
      ]
    },
    "where": {
      "type": "string",
      "minLength": 1,
      "description": "City, neighborhood, address or postcode, such as Austin, TX.",
      "examples": [
        "Austin, TX"
      ]
    },
    "language": {
      "type": "string",
      "default": "English",
      "description": "Language for place details, such as English or Spanish."
    },
    "open_now": {
      "type": "boolean",
      "default": false,
      "description": "Only include places Google shows as open now, such as true.",
      "examples": [
        true
      ]
    },
    "min_rating": {
      "type": "number",
      "maximum": 5,
      "minimum": 1,
      "description": "Only include places rated at least this many stars, such as 4.5.",
      "examples": [
        4.5
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of places, such as 20. Up to 100.",
      "examples": [
        5,
        4
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "what": "pizza",
      "where": "Austin, TX",
      "min_rating": 4.5,
      "max_results": 5
    },
    {
      "page": 2,
      "what": "coffee shops",
      "where": "Austin, TX",
      "max_results": 4
    },
    {
      "what": "gas station",
      "where": "Austin, TX",
      "open_now": true,
      "max_results": 5
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `places` | array |  | Matching places in Google Maps order. |
| `places[].name` | string or null | `"Home Slice Pizza"` | Name of the place. |
| `places[].rating` | number or null | `4.7` | Star rating out of five. |
| `places[].address` | string or null | `"1415 S Congress Ave, Austin, TX 78704"` | Full street address. |
| `places[].website` | string or null | `"https://homeslicepizza.com/location/south-congress/"` | Business website. |
| `places[].category` | string or null | `"Pizza restaurant"` | Primary place category. |
| `places[].latitude` | number or null | `30.2492286` | Latitude. |
| `places[].open_now` | boolean or null | `false` | Whether Google shows the place as open now. |
| `places[].longitude` | number or null | `-97.7495328` | Longitude. |
| `places[].price_level` | string or null |  | Price displayed by Google, such as $10–20 or $$. |
| `places[].today_hours` | string or null | `"11 AM–11 PM"` | Opening hours shown for today. |
| `places[].phone_number` | string or null | `"(512) 444-7437"` | Phone number. |
| `places[].review_count` | integer or null | `11123` | Number of reviews. |
| `places[].google_place_id` | string or null | `"ChIJu96UVvy0RIYRCPxWa4TSr6o"` | Google place ID. |
| `places[].google_maps_link` | string or null | `"https://www.google.com/maps/search/?api=1&query=Home%20Slice%20Pizza%201415%20S%20Congress%20Ave%2C%20Austin%2C%20TX%20` | Google Maps page link. |

**Example input**

```json
{
  "what": "pizza",
  "where": "Austin, TX",
  "min_rating": 4.5,
  "max_results": 5
}
```

**Example output**

```json
{
  "places": [
    {
      "name": "Home Slice Pizza",
      "rating": 4.7,
      "address": "1415 S Congress Ave, Austin, TX 78704",
      "website": "https://homeslicepizza.com/location/south-congress/",
      "category": "Pizza restaurant",
      "latitude": 30.2492286,
      "open_now": false,
      "longitude": -97.7495328,
      "price_level": null,
      "today_hours": "11 AM–11 PM",
      "phone_number": "(512) 444-7437",
      "review_count": 11123,
      "google_place_id": "ChIJu96UVvy0RIYRCPxWa4TSr6o",
      "google_maps_link": "https://www.google.com/maps/search/?api=1&query=Home%20Slice%20Pizza%201415%20S%20Congress%20Ave%2C%20Austin%2C%20TX%2078704&query_place_id=ChIJu96UVvy0RIYRCPxWa4TSr6o"
    },
    {
      "name": "DeSano Pizzeria Napoletana - Downtown Austin",
      "rating": 4.7,
      "address": "301 Lavaca St Ste 200, Austin, TX 78701",
      "website": "https://desanopizza.com/downtown-austin?utm_source=google",
      "category": "Pizza restaurant",
      "latitude": 30.266316999999997,
      "open_now": false,
      "longitude": -97.74595939999999,
      "price_level": null,
      "today_hours": "11:30 AM–10 PM",
      "phone_number": "(512) 256-2426",
      "review_count": 1434,
      "google_place_id": "ChIJH1vZsj21RIYR9QNowHxmpDU",
      "google_maps_link": "https://www.google.com/maps/search/?api=1&query=DeSano%20Pizzeria%20Napoletana%20-%20Downtown%20Austin%20301%20Lavaca%20St%20Ste%20200%2C%20Austin%2C%20TX%2078701&query_place_id=ChIJH1vZsj21RIYR9QNowH…"
    }
  ]
}
```

## Quick start

Call the API with a Fous API key (`FOUS_API_KEY`). To create one, turn on Developer mode in Fous Studio, then open Keys & connections → API keys (https://app.fous.com/keys).

```bash
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
: "${FOUS_API_KEY:?Set FOUS_API_KEY before running this example}"

curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 120 \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@google-maps",
  "visibility": "public",
  "operation": "get_directions",
  "version": 1,
  "input": {
    "origin": "Ferry Building, San Francisco",
    "destination": "SFO Airport",
    "travel_mode": "public_transit",
    "departure_time": "2026-09-29T08:00:00-07:00"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
import json
import os
import urllib.error
import urllib.request

api_key = os.environ.get("FOUS_API_KEY")
if not api_key:
    raise RuntimeError("Set FOUS_API_KEY before running this example")

body = json.loads("{\n  \"api\": \"@google-maps\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_directions\",\n  \"version\": 1,\n  \"input\": {\n    \"origin\": \"Ferry Building, San Francisco\",\n    \"destination\": \"SFO Airport\",\n    \"travel_mode\": \"public_transit\",\n    \"departure_time\": \"2026-09-29T08:00:00-07:00\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=120) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
// First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
const apiKey = process.env.FOUS_API_KEY;
if (!apiKey) throw new Error("Set FOUS_API_KEY before running this example");

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(120_000),
  body: JSON.stringify({
  "api": "@google-maps",
  "visibility": "public",
  "operation": "get_directions",
  "version": 1,
  "input": {
    "origin": "Ferry Building, San Francisco",
    "destination": "SFO Airport",
    "travel_mode": "public_transit",
    "departure_time": "2026-09-29T08:00:00-07:00"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

Or describe the data in plain language: send `{"api":"@google-maps","prompt":"Describe the data you need, with every detail"}` to the same URL. Fous fills in the input, runs the method that fits and returns only the fields you asked for; `data.route.calls[].request` is the exact call it made. Routing is free; the run costs the same.

## Use cases

- Find businesses near a city or neighborhood
- Compare place ratings, hours and contact details
- Review customer feedback for a business
- Plan routes between addresses or places
- Filter place searches by rating or open status

## FAQ

### Is Fous affiliated with Google Maps?

No. Fous is not affiliated with Google Maps. This workflow reads the public google.com website and returns its data.

### How much does it cost?

Each run costs 1 credit. With pay-as-you-go, a credit costs 1¢; monthly plans cost less per credit.

### Do I need a Google Maps account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from google.com when you run it; repeating the same request within a day may return the saved result. Fous checks this workflow automatically; it last passed a check on Sep 30, 2026.

### What businesses are near a particular location?

Search places finds businesses and places by type or name and location.

### What are a place’s hours and phone number?

Get place returns public profile details, including opening hours and phone number when shown.

### How long does it take to travel between two places?

Get directions returns route travel times and distances for an origin and destination.

## Related

- [OpenStreetMap API](https://fous.com/workflows/openstreetmap.md): OpenStreetMap returns place coordinates, address details, nearby readable place information, and ordered place search results from contributor-created data; results reflect mapped features and may be incomplete or differ from landmarks.
- [Yelp API](https://fous.com/workflows/yelp.md): Yelp returns local business matches, public profiles, ratings and up to 60 publicly shown reviews; matches are unsponsored and Yelp-ordered, but later results may lack contact or location details.
- [Google Play API](https://fous.com/workflows/google-play.md): Google Play helps people discover Android apps and games, view public listings and search results, read reviews when available by app and region, and see country-specific top charts.
- [Google Hotels API](https://fous.com/workflows/google-hotels.md): Google Hotels finds stays, guest details and reviews, and compares booking-site totals, cancellation and links for up to six adults; prices and availability can change, and some prices or topic ratings may be unavailable.
- [Tripadvisor API](https://fous.com/workflows/tripadvisor.md): Tripadvisor provides traveler-ranked first-page city listings of attractions, restaurants and hotels, plus latest reviews; hotel prices and booking sites depend on supplied stay dates and availability.
- [Booking.com API](https://fous.com/workflows/booking-com.md): Booking.com helps find stays, property details and public guest reviews; prices and cancellation terms depend on selected dates, and displayed prices may exclude taxes and fees.
- [Goodreads API](https://fous.com/workflows/goodreads.md): Goodreads returns public book searches, matched-book details with variable editions, popular or newest reviews, author books by popularity or date, and up to 100 quotes.
- [Trustpilot API](https://fous.com/workflows/trustpilot.md): Trustpilot provides company ratings, reply and location details when available, recent public reviews, and company search results with ratings, review counts, categories, locations, and links.
- [All Maps workflows](https://fous.com/workflows/category/maps)
