# Serper — Orthogonal API

> Pay-per-use API on Orthogonal. Each call is billed to your Orthogonal balance.
> Base API: `https://api.orth.sh/v1/run` · [llms.txt](https://orthogonal.com/llms.txt) · [browse all APIs](https://orthogonal.com/discover)

Google Search API by Serper - fast, reliable access to 12 Google search types: web search, images, videos, news, places, maps, shopping, scholar, patents, autocomplete, lens (reverse image search), and reviews. All endpoints accept POST with JSON body. Returns structured JSON results.

**Verified:** yes

## Access

**Run API:** `POST https://api.orth.sh/v1/run`
**Auth:** `Authorization: Bearer $ORTHOGONAL_API_KEY`
Get an API key at https://orthogonal.com/dashboard/settings/api-keys

Every call goes through the unified Run API: send the API `slug`, the endpoint `path`, and the `query`/`body` parameters. The response is `{ "success": true, "price": "<usd>", "data": { ... } }`.

## Endpoints

### Google Patents Search

Google Patents search - returns patent results with titles, patent numbers, inventors, assignees, filing dates, publication dates, and abstracts. Use for IP research, prior art searches, or technology landscape analysis.

`POST /patents`

**Estimated cost:** $0.002

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Search query (e.g. "solar panel efficiency", "battery technology") |
| `gl` | string | No | Country code (e.g. us, uk, de) |
| `hl` | string | No | Language code (e.g. en, es, fr) |
| `num` | number | No | Number of results (default 10) |
| `page` | number | No | Page number for pagination |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"serper","path":"/patents","body":{"q":"<string>","gl":"<string>","hl":"<string>","num":"<number>","page":"<number>"}}'
```

### Google Lens

Google Lens reverse image search - identify objects, find visually similar images, and get visual search results from an image URL.

`POST /lens`

**Estimated cost:** $0.006

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Image URL to search (must be publicly accessible) |
| `gl` | string | No | Country code (e.g. us, uk, de) |
| `hl` | string | No | Language code (e.g. en, es, fr) |
| `num` | number | No | Number of results (default 10) |
| `page` | number | No | Page number for pagination |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"serper","path":"/lens","body":{"url":"<string>","gl":"<string>","hl":"<string>","num":"<number>","page":"<number>"}}'
```

### Google Search

Google Search - returns organic results, knowledge graph, people also ask, related searches, and sitelinks. Use for general web queries, fact-finding, and research.

`POST /search`

**Estimated cost:** $0.002

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Search query |
| `gl` | string | No | Country code (e.g. us, uk, de) |
| `hl` | string | No | Language code (e.g. en, es, fr) |
| `lr` | string | No | Restrict results to language (e.g. lang_en, lang_fr, lang_de) |
| `cr` | string | No | Restrict results to country (e.g. countryUS, countryGB, countryDE) |
| `num` | number | No | Number of results (default 10, max 100) |
| `page` | number | No | Page number for pagination |
| `autocorrect` | boolean | No | Enable autocorrect (default true) |
| `tbs` | string | No | Time filter (qdr:h=past hour, qdr:d=past day, qdr:w=past week, qdr:m=past month, qdr:y=past year) |
| `location` | string | No | Location name for localized results (e.g. "New York, NY") |
| `safe` | string | No | Safe search: "active" to filter explicit content, "off" to disable |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"serper","path":"/search","body":{"q":"<string>","gl":"<string>","hl":"<string>","lr":"<string>","cr":"<string>","num":"<number>","page":"<number>","autocorrect":"<boolean>","tbs":"<string>","location":"<string>","safe":"<string>"}}'
```

### Google Maps Search

Google Maps search - returns map listings with titles, addresses, latitude/longitude coordinates, ratings, review counts, phone numbers, websites, and categories. More detailed than Places for location-based queries. Use ll parameter for precise geographic targeting.

`POST /maps`

**Estimated cost:** $0.006

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Search query |
| `gl` | string | No | Country code (e.g. us, uk, de) |
| `hl` | string | No | Language code (e.g. en, es, fr) |
| `num` | number | No | Number of results (default 10) |
| `page` | number | No | Page number for pagination |
| `autocorrect` | boolean | No | Enable autocorrect (default true) |
| `location` | string | No | Location name for localized results (e.g. "New York, NY") |
| `ll` | string | No | Latitude/longitude with zoom (e.g. "@40.7128,-74.0060,15z"). More precise than location. |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"serper","path":"/maps","body":{"q":"<string>","gl":"<string>","hl":"<string>","num":"<number>","page":"<number>","autocorrect":"<boolean>","location":"<string>","ll":"<string>"}}'
```

### Google Images Search

Google Images search - returns image results with titles, image URLs, thumbnail URLs, source domains, and dimensions. Use for finding images, visual research, or brand asset discovery.

`POST /images`

**Estimated cost:** $0.002

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Search query |
| `gl` | string | No | Country code (e.g. us, uk, de) |
| `hl` | string | No | Language code (e.g. en, es, fr) |
| `lr` | string | No | Restrict results to language (e.g. lang_en, lang_fr, lang_de) |
| `cr` | string | No | Restrict results to country (e.g. countryUS, countryGB, countryDE) |
| `num` | number | No | Number of results (default 10, max 100) |
| `page` | number | No | Page number for pagination |
| `autocorrect` | boolean | No | Enable autocorrect (default true) |
| `tbs` | string | No | Time filter (qdr:h=past hour, qdr:d=past day, qdr:w=past week, qdr:m=past month, qdr:y=past year) |
| `location` | string | No | Location name for localized results (e.g. "New York, NY") |
| `safe` | string | No | Safe search: "active" to filter explicit content, "off" to disable |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"serper","path":"/images","body":{"q":"<string>","gl":"<string>","hl":"<string>","lr":"<string>","cr":"<string>","num":"<number>","page":"<number>","autocorrect":"<boolean>","tbs":"<string>","location":"<string>","safe":"<string>"}}'
```

### Google Autocomplete

Google Autocomplete - returns search query suggestions based on a prefix. Use for keyword research, SEO, understanding search intent, or building search-ahead UIs.

`POST /autocomplete`

**Estimated cost:** $0.002

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Search query prefix to get suggestions for |
| `gl` | string | No | Country code (e.g. us, uk, de) |
| `hl` | string | No | Language code (e.g. en, es, fr) |
| `location` | string | No | Location name for localized suggestions |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"serper","path":"/autocomplete","body":{"q":"<string>","gl":"<string>","hl":"<string>","location":"<string>"}}'
```

### Google Videos Search

Google Videos search - returns video results with titles, links, channels, durations, dates, and platforms (YouTube, Vimeo, etc). Use for finding video content, tutorials, or media.

`POST /videos`

**Estimated cost:** $0.002

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Search query |
| `gl` | string | No | Country code (e.g. us, uk, de) |
| `hl` | string | No | Language code (e.g. en, es, fr) |
| `lr` | string | No | Restrict results to language (e.g. lang_en, lang_fr, lang_de) |
| `cr` | string | No | Restrict results to country (e.g. countryUS, countryGB, countryDE) |
| `num` | number | No | Number of results (default 10, max 100) |
| `page` | number | No | Page number for pagination |
| `autocorrect` | boolean | No | Enable autocorrect (default true) |
| `tbs` | string | No | Time filter (qdr:h=past hour, qdr:d=past day, qdr:w=past week, qdr:m=past month, qdr:y=past year) |
| `location` | string | No | Location name for localized results (e.g. "New York, NY") |
| `safe` | string | No | Safe search: "active" to filter explicit content, "off" to disable |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"serper","path":"/videos","body":{"q":"<string>","gl":"<string>","hl":"<string>","lr":"<string>","cr":"<string>","num":"<number>","page":"<number>","autocorrect":"<boolean>","tbs":"<string>","location":"<string>","safe":"<string>"}}'
```

### Google Shopping Search

Google Shopping search - returns product listings with titles, prices, sellers, ratings, delivery info, and product links. Use for price comparison, product research, or e-commerce intelligence.

`POST /shopping`

**Estimated cost:** $0.004

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Search query |
| `gl` | string | No | Country code (e.g. us, uk, de) |
| `hl` | string | No | Language code (e.g. en, es, fr) |
| `lr` | string | No | Restrict results to language (e.g. lang_en, lang_fr, lang_de) |
| `cr` | string | No | Restrict results to country (e.g. countryUS, countryGB, countryDE) |
| `num` | number | No | Number of results (default 10, max 100) |
| `page` | number | No | Page number for pagination |
| `autocorrect` | boolean | No | Enable autocorrect (default true) |
| `tbs` | string | No | Time filter (qdr:h=past hour, qdr:d=past day, qdr:w=past week, qdr:m=past month, qdr:y=past year) |
| `location` | string | No | Location name for localized results (e.g. "New York, NY") |
| `safe` | string | No | Safe search: "active" to filter explicit content, "off" to disable |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"serper","path":"/shopping","body":{"q":"<string>","gl":"<string>","hl":"<string>","lr":"<string>","cr":"<string>","num":"<number>","page":"<number>","autocorrect":"<boolean>","tbs":"<string>","location":"<string>","safe":"<string>"}}'
```

### Google News Search

Google News search - returns news articles with titles, links, sources, dates, and snippets. Use for current events, press coverage, competitor monitoring, or media research.

`POST /news`

**Estimated cost:** $0.002

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Search query |
| `gl` | string | No | Country code (e.g. us, uk, de) |
| `hl` | string | No | Language code (e.g. en, es, fr) |
| `lr` | string | No | Restrict results to language (e.g. lang_en, lang_fr, lang_de) |
| `cr` | string | No | Restrict results to country (e.g. countryUS, countryGB, countryDE) |
| `num` | number | No | Number of results (default 10, max 100) |
| `page` | number | No | Page number for pagination |
| `autocorrect` | boolean | No | Enable autocorrect (default true) |
| `tbs` | string | No | Time filter (qdr:h=past hour, qdr:d=past day, qdr:w=past week, qdr:m=past month, qdr:y=past year) |
| `location` | string | No | Location name for localized results (e.g. "New York, NY") |
| `safe` | string | No | Safe search: "active" to filter explicit content, "off" to disable |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"serper","path":"/news","body":{"q":"<string>","gl":"<string>","hl":"<string>","lr":"<string>","cr":"<string>","num":"<number>","page":"<number>","autocorrect":"<boolean>","tbs":"<string>","location":"<string>","safe":"<string>"}}'
```

### Google Scholar Search

Google Scholar search - returns academic papers with titles, authors, publication venues, years, citation counts, links, and snippets. Use as_ylo/as_yhi to filter by publication year range. Use for academic research, literature reviews, or citation analysis.

`POST /scholar`

**Estimated cost:** $0.002

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Search query (e.g. "transformer architecture", "CRISPR gene editing") |
| `gl` | string | No | Country code (e.g. us, uk, de) |
| `hl` | string | No | Language code (e.g. en, es, fr) |
| `lr` | string | No | Restrict results to language (e.g. lang_en) |
| `num` | number | No | Number of results (default 10) |
| `page` | number | No | Page number for pagination |
| `autocorrect` | boolean | No | Enable autocorrect (default true) |
| `as_ylo` | number | No | Filter results from this year onwards (e.g. 2020) |
| `as_yhi` | number | No | Filter results up to this year (e.g. 2024) |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"serper","path":"/scholar","body":{"q":"<string>","gl":"<string>","hl":"<string>","lr":"<string>","num":"<number>","page":"<number>","autocorrect":"<boolean>","as_ylo":"<number>","as_yhi":"<number>"}}'
```

### Google Places Search

Google Places search - returns local businesses with names, addresses, phone numbers, ratings, review counts, hours, categories, and cids. Use for finding local businesses, restaurants, services. Returns cid values needed for the Reviews endpoint.

`POST /places`

**Estimated cost:** $0.002

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Search query (e.g. "coffee shops", "pizza near me") |
| `gl` | string | No | Country code (e.g. us, uk, de) |
| `hl` | string | No | Language code (e.g. en, es, fr) |
| `lr` | string | No | Restrict results to language (e.g. lang_en) |
| `num` | number | No | Number of results (default 10) |
| `page` | number | No | Page number for pagination |
| `autocorrect` | boolean | No | Enable autocorrect (default true) |
| `location` | string | No | Location name for localized results (e.g. "San Francisco, CA") |
| `ll` | string | No | Latitude/longitude with zoom (e.g. "@37.7749,-122.4194,15z") |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"serper","path":"/places","body":{"q":"<string>","gl":"<string>","hl":"<string>","lr":"<string>","num":"<number>","page":"<number>","autocorrect":"<boolean>","location":"<string>","ll":"<string>"}}'
```

### Google Reviews

Google Reviews - returns reviews for a specific business/place including review text, ratings, authors, dates, and likes. Requires a place identifier (cid, fid, or placeId) obtained from Places or Maps search results. Use sortBy to order by relevance, newest, highest, or lowest rating.

`POST /reviews`

**Estimated cost:** $0.002

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `fid` | string | No | Feature ID of the place (from Places/Maps results). One of fid, cid, or placeId is required. |
| `cid` | string | No | CID of the place (from Places/Maps results). One of fid, cid, or placeId is required. |
| `placeId` | string | No | Google Place ID. One of fid, cid, or placeId is required. |
| `gl` | string | No | Country code (e.g. us, uk, de) |
| `hl` | string | No | Language code (e.g. en, es, fr) |
| `num` | number | No | Number of reviews to return |
| `page` | number | No | Page number for pagination |
| `sortBy` | string | No | Sort order: "mostRelevant" (default), "newestFirst", "highestRating", "lowestRating" |
| `topicId` | string | No | Filter reviews by topic ID (from review topics in Places results) |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"serper","path":"/reviews","body":{"fid":"<string>","cid":"<string>","placeId":"<string>","gl":"<string>","hl":"<string>","num":"<number>","page":"<number>","sortBy":"<string>","topicId":"<string>"}}'
```

---

Full details and an interactive quickstart: https://orthogonal.com/discover/serper
