# Google Maps Directions API

> Get Google Maps directions between two places by car, transit, walking, cycling or flight, with routes, distance, duration and step-by-step instructions.

Source: https://www.sandbase.ai/apis/google-maps/directions
API reference: https://www.sandbase.ai/apis/google-maps/directions#api

## Facts

- Provider: Google Maps
- Type: Data API
- Endpoint: `POST https://api.sandbase.ai/v1/api/google-maps/directions`
- Price: $0.01 per call
- Capabilities: api, google maps, maps, travel
- Billing: pay per use from one SandBase balance; no provider account or subscription needed

## Call it

`POST https://api.sandbase.ai/v1/api/google-maps/directions` with `Authorization: Bearer $SANDBASE_API_KEY` and the parameters as a JSON body.

| Parameter | Type | Required | Allowed values |
| --- | --- | --- | --- |
| `start_addr` | string | no |  |
| `end_addr` | string | no |  |
| `gl` | string | no |  |
| `hl` | string | no |  |
| `travel_mode` | string | no |  |
| `start_data_id` | string | no |  |
| `end_data_id` | string | no |  |
| `start_coords` | string | no |  |
| `end_coords` | string | no |  |
| `distance_unit` | string | no |  |
| `avoid` | string | no |  |
| `prefer` | string | no |  |
| `route` | string | no |  |
| `time` | string | no |  |
| `json_restrictor` | string | no |  |

## FAQ

### How do I use the Google Maps Directions API?

Send a POST request to https://api.sandbase.ai/v1/api/google-maps/directions with your SandBase API key in the Authorization header (Bearer) and the parameters as a JSON body. You can also try it in the Playground on this page without writing code.

### How much does the Google Maps Directions API cost?

$0.01 per call, billed from your SandBase balance. You are only charged for calls you make; there is no subscription.

### What parameters does the Google Maps Directions API accept?

No parameters are required. Optional: start_addr (string), end_addr (string), gl (string), hl (string), travel_mode (string) and start_data_id (string) and 9 more. The Parameters table and the Playground on this page list every field.

### What does the Google Maps Directions API return?

A JSON response returned in the same HTTP request (synchronous).

### Do I need a Google Maps developer account or API key?

No. Google Maps Directions runs through SandBase, so one SandBase API key covers this endpoint and every other API and model in the catalog. You do not need to apply for Google Maps API access separately.

## README

### Google Maps Directions

Get Google Maps directions between two places by car, transit, walking, cycling or flight, with routes, distance, duration and step-by-step instructions.

#### Request

```bash
curl -X POST "https://api.sandbase.ai/v1/api/google-maps/directions" \
  -H "Authorization: Bearer $SANDBASE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"start_addr": "Austin-Bergstrom International Airport", "end_addr": "Texas State Capitol"}'
```

The result is returned in `outputs[0].data` as structured JSON.

#### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `start_addr` | string | No | Parameter defines the address of the starting point for the direction you want to search. You can use anything that you would use in a regular Google Maps Directions search. Alternatively, you can use `start_data_id` or `start_coords`. |
| `end_addr` | string | No | Parameter defines the address of the ending point for the direction you want to search. You can use anything that you would use in a regular Google Maps Directions search. Alternatively, you can use `end_data_id` or `end_coords`. |
| `gl` | string | No | Parameter defines the country to use for the Google search. It's a two-letter country code. (e.g., `us` for the United States, `uk` for United Kingdom, or `fr` for France) Head to the Google countries page for a full list of supported Googl |
| `hl` | string | No | Parameter defines the language to use for the Google Maps Directions search. It's a two or three-letter language code. (e.g., `en` for English, `es` for Spanish, or `fr` for French), optionally followed by a two-letter or three-digit region |
| `travel_mode` | string | No | Parameter defines the travel mode. Available options: `6` - Best (Default) `0` - Driving `9` - Two-wheeler `3` - Transit `2` - Walking `1` - Cycling `4` - Flight |
| `start_data_id` | string | No | Parameter defines the data ID of the starting point for the direction you want to search. Find the data ID of a place using our Google Maps API. Alternatively, you can use `start_addr` or `start_coords`. |
| `end_data_id` | string | No | Parameter defines the data ID of the ending point for the direction you want to search. Find the data ID of a place using our Google Maps API. Alternatively, you can use `end_addr` or `end_coords`. |
| `start_coords` | string | No | Parameter defines the GPS coordinates of the starting point for the direction you want to search. The format is `latitude,longitude`. E.g. `30.197471099,-97.66635289`. Alternatively, you can use `start_addr` or `start_data_id`. |
| `end_coords` | string | No | Parameter defines the GPS coordinates of the ending point for the direction you want to search. The format is `latitude,longitude`. E.g. `30.197471099,-97.66635289`. Alternatively, you can use `end_addr` or `end_data_id`. |
| `distance_unit` | string | No | Parameter defines the displayed distance unit. Available options: `1` - miles `0` - km |
| `avoid` | string | No | Parameter defines avoid options. Available options: `highways` - Highways `tolls` - Tolls `ferries` - Ferries You can also combine multiple options by joining them with a comma (e.g.: `highways,tolls`). |
| `prefer` | string | No | Parameter defines preferred transit options. Available options: `bus` - Bus `subway` - Subway `train` - Train `tram_light_rail` - Tram and light rail You can also combine multiple options by joining them with a comma (e.g.: `subway,train`). |
| `route` | string | No | Parameter defines route options. Available options: `2` - Fewer transfers `3` - Less walking `4` - Wheelchair accessible Parameter works only if `travel_mode` parameter is set to: `3` (Transit) |
| `time` | string | No | Parameter defines the time to travel. Available options: `depart_at:xxxxxx` - Specifies the departure time, where `xxxxxx` is the timestamp. E.g. `depart_at:1698229538` specifies the departure time to 2023-10-25 10:25:38 GMT+0000 `arrive_by |
| `json_restrictor` | string | No | Parameter defines the fields you want to include in the output, reducing payload size for faster response. See the JSON Restrictor documentation for more details. |

#### Pricing

$0.010 per successful call. Failed calls are not charged.
