# Google Search API

> Get Google web results for a query with organic results, knowledge graph, local pack, top stories, related questions and pagination, localized by country, language and location.

Source: https://www.sandbase.ai/apis/google/search
API reference: https://www.sandbase.ai/apis/google/search#api

## Facts

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

## Call it

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

| Parameter | Type | Required | Allowed values |
| --- | --- | --- | --- |
| `q` | string | yes |  |
| `location` | string | no |  |
| `uule` | string | no |  |
| `lat` | string | no |  |
| `lon` | string | no |  |
| `radius` | string | no |  |
| `ludocid` | string | no |  |
| `lsig` | string | no |  |
| `kgmid` | string | no |  |
| `si` | string | no |  |
| `ibp` | string | no |  |
| `uds` | string | no |  |
| `color_scheme` | string | no | light, dark |
| `google_domain` | string | no |  |
| `gl` | string | no |  |
| `hl` | string | no |  |
| `cr` | string | no |  |
| `lr` | string | no |  |
| `tbs` | string | no |  |
| `safe` | string | no |  |
| `nfpr` | string | no |  |
| `filter` | string | no |  |
| `tbm` | string | no | (no selection), isch, lcl, vid, nws, shop, pts, bks |
| `udm` | string | no | (no selection), 14, 50, 39, 18 |
| `start` | string | no |  |
| `device` | string | no |  |
| `json_restrictor` | string | no |  |

## FAQ

### How do I use the Google Search API?

Send a POST request to https://api.sandbase.ai/v1/api/google/search 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 Search 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 Search API accept?

Required: q (string). Optional: location (string), uule (string), lat (string), lon (string), radius (string) and ludocid (string) and 20 more. The Parameters table and the Playground on this page list every field.

### What does the Google Search API return?

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

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

No. Google Search 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 API access separately.

## README

### Google Search

Get Google web results for a query with organic results, knowledge graph, local pack, top stories, related questions and pagination, localized by country, language and location.

#### Request

```bash
curl -X POST "https://api.sandbase.ai/v1/api/google/search" \
  -H "Authorization: Bearer $SANDBASE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q": "best coffee grinder"}'
```

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

#### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `q` | string | Yes | Parameter defines the query you want to search. You can use anything that you would use in a regular Google search. e.g. `inurl:`, `site:`, `intitle:`. We also support advanced search query parameters such as `as_dt` and `as_eq`. See the fu |
| `location` | string | No | Parameter defines from where you want the search to originate. If several locations match the location requested, we'll pick the most popular one. Head to the /locations.json API if you need more precise control. It is recommended to specif |
| `uule` | string | No | Parameter is the Google encoded location you want to use for the search. `uule` and `location` parameters can't be used together. For consistent results with coordinates-based `uule` parameter, a matching `gl` parameter is required. Head to |
| `lat` | string | No | Parameter defines a GPS latitude for the search origin. Parameter is required when using `lon` parameter. For consistent results, a matching `gl` parameter is required. Parameter can't be used together with `location` and `uule` parameters. |
| `lon` | string | No | Parameter defines a GPS longitude for the search origin. Parameter is required when using `lat` parameter. For consistent results, a matching `gl` parameter is required. Parameter can't be used together with `location` and `uule` parameters |
| `radius` | string | No | Parameter defines the distance (in meters) within which to bias the search results. Results inside of this region will be ranked higher than results outside of it. However, prominent results from outside of the search radius may still be in |
| `ludocid` | string | No | Parameter defines the Google CID (customer identifier) of a place. This parameter can be found in Google Search API and Google Local API local results under the name of `place_id`, as well as in Google Maps API local results under the name  |
| `lsig` | string | No | Parameter that you might have to use to force the knowledge graph map view to show up. You can find the `lsig` ID by using our Local Pack API or Google Local API. `lsig` ID is also available via a redirect Google uses within Google My Busin |
| `kgmid` | string | No | Parameter defines the id (`KGMID`) of the Google Knowledge Graph listing you want to scrape. Also known as Google Knowledge Graph ID. Searches with `kgmid` parameter will return results for the originally encrypted search parameters. For so |
| `si` | string | No | Parameter defines the cached search parameters of the Google Search you want to scrape. Searches with `si` parameter will return results for the originally encrypted search parameters. For some searches, `si` may override all other paramete |
| `ibp` | string | No | Parameter is responsible for rendering layouts and expansions for some elements (e.g., `gwp;0,7` to expand searches with `ludocid` for expanded knowledge graph). |
| `uds` | string | No | Parameter enables to filter search. It's a string provided by Google as a filter. `uds` values are provided under the section: `filters` with `uds`, `q` and `the API_link` values provided for each filter. |
| `color_scheme` | string | No | Parameter forces the selected color scheme to be used on the results page. If the parameter is not set, a random color scheme will be returned. Options: `light` - Light `dark` - Dark |
| `google_domain` | string | No | Parameter defines the Google domain to use. It defaults to `google.com`. Head to the Google domains page for a full list of supported Google domains. |
| `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 Goog |
| `hl` | string | No | Parameter defines the language to use for the Google 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 code (e.g., `en |
| `cr` | string | No | Parameter defines one or multiple countries to limit the search to. It uses `country{two-letter upper-case country code}` to specify countries and `/` as a delimiter. (e.g., `countryFR/countryDE` will only search French and German pages). H |
| `lr` | string | No | Parameter defines one or multiple languages to limit the search to. It uses `lang_{two-letter language code}` to specify languages and `/` as a delimiter. (e.g., `lang_fr/lang_de` will only search French and German pages). Head to the Googl |
| `tbs` | string | No | (to be searched) parameter defines advanced search parameters that aren't possible in the regular query field. (e.g., advanced search for patents, dates, news, videos, images, apps, or text contents). |
| `safe` | string | No | Parameter defines the level of filtering for adult content. It can be set to `active` or `off`, by default Google will blur explicit content. |
| `nfpr` | string | No | Parameter defines the exclusion of results from an auto-corrected query when the original query is spelled wrong. It can be set to `1` to exclude these results, or `0` to include them (default). Note that this parameter may not prevent Goog |
| `filter` | string | No | Parameter defines if the filters for 'Similar Results' and 'Omitted Results' are on or off. It can be set to `1` (default) to enable these filters, or `0` to disable these filters. |
| `tbm` | string | No | (To Be Matched) This parameter defines the type of search you want to do. Options: `(no selection)` - regular Google Search `isch` - Google Images API `lcl` - Google Local API `vid` - Google Videos API `nws` - Google News API `shop` - Googl |
| `udm` | string | No | This parameter defines the type of Google Search display mode you want to use. Options: `(no selection)` - regular Google Search `web` or `14` - Web results `50` - Google AI Mode API `39` - Google Short Videos API `18` - Google Forums API ` |
| `start` | string | No | Parameter defines the result offset. It skips the given number of results. It's used for pagination. (e.g., `0` (default) is the first page of results, `10` is the 2nd page of results, `20` is the 3rd page of results, etc.). |
| `device` | string | No | Parameter defines the device to use to get the results. It can be set to `desktop` (default) to use a regular browser, `tablet` to use a tablet browser (currently using iPads), or `mobile` to use a mobile browser. |
| `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.
