Google Map API endpoint
Google Maps search API
Returns results from Google Maps based on search options. Rate limit is enforced at 1 request per second.
POSTapiKey5 credits/requestgoogle.MapSearchOptiongoogle.mapSearchResponseDoc
/google/map/searchParameters
| Name | In | Type | Required | Enum | Example | Description |
|---|---|---|---|---|---|---|
| mapSearchOption | body | object | Yes | Search options | ||
| x-api-key | header | string | Yes | API key required |
Authentication
Send your scraping API key in the x-api-key header. Use the console API Keys page to rotate or select the active key.
Billing
Endpoint usage is metered in credits. The plan prices, included credits, limits, and overage rates below match the active backend billing configuration.
- Credit cost
- 5 credits/request
- Charged response
- Successful 2xx responses
| Plan | Price | Included credits | Daily cap | Rate limit | Overage |
|---|---|---|---|---|---|
| Free | $0/mo | 2,000 | 500 daily credits | 5/min | No overage |
| Starter | $9/mo | 20,000 | 5,000 daily credits | 15/min | $0.75/1,000 overage credits when enabled |
| Growth | $29/mo | 100,000 | 25,000 daily credits | 45/min | $0.45/1,000 overage credits when enabled |
| Pro | $79/mo | 400,000 | No daily cap | 120/min | $0.30/1,000 overage credits |
| Business | $199/mo | 1,200,000 | No daily cap | 300/min | $0.20/1,000 overage credits |
| Enterprise | $499/mo | 5,000,000 | No daily cap | 1,000/min | $0.12/1,000 overage credits |
Failure responses
| Status | Description | Schema |
|---|---|---|
| 400 | Invalid input | #/definitions/app.Response |
| 429 | Rate limit exceeded | #/definitions/app.Response |
| 500 | Internal server error | #/definitions/app.Response |
Request body example
{
"country": "us",
"keyword": "hotel san francisco",
"language": "en"
}Example response
{
"code": 200,
"msg": "OK",
"data": [
{
"url": "https://www.google.com/maps/place/?q=place_id:ChIJs3cv0KuvEmsRHcXYwNJ6GU0",
"name": "Primi Italian",
"place_id": "ChIJs3cv0KuvEmsRHcXYwNJ6GU0",
"category": [
"italian_restaurant"
],
"address": "168 Clarence St, Sydney NSW 2000, Australia",
"latitude": -33.8701437,
"longitude": 151.2056158
}
]
}Request schema
#/definitions/google.MapSearchOption
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| country | string | No | us | |||
| keyword | string | No | hotel san francisco | |||
| language | string | No | en |
Response schema
#/definitions/google.mapSearchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | array | No | ||||
| data[].address | string | No | 250 Beach St, San Francisco, CA 94133 | |||
| data[].amenities | array | No | ['Free Wi-Fi', 'Air-conditioned', 'Wi-Fi', 'Parking'] | |||
| data[].category | array | No | ['hotel'] | |||
| data[].description | string | No | A 3-minute walk from Pier 41 in the Fisherman's Wharf district... | |||
| data[].image | string | No | https://lh5.googleusercontent.com/p/AF1QipP_O55x7gOwR3AaM09CVmzEUude9wMHMPwc--yp | |||
| data[].latitude | number | No | 37.8077617 | |||
| data[].locations | array | No | ['San Francisco', 'Los Angeles'] | |||
| data[].longitude | number | No | -122.4132228 | |||
| data[].name | string | No | Hotel Zephyr San Francisco | |||
| data[].phone | string | No | 14156176565 | |||
| data[].place_id | string | No | ChIJ99URUeOAhYAR0J5ZUxTesDQ | |||
| data[].rating | number | No | 4.1 | |||
| data[].review_count | integer | No | 3213 | |||
| data[].url | string | No | https://www.google.com/maps/place/?q=place_id:ChIJ99URUeOAhYAR0J5ZUxTesDQ | |||
| data[].website | string | No | https://www.hotelzephyrsf.com/ | |||
| msg | string | No | OK |
Example request
curl -X POST "https://api.crawlora.net/api/v1/google/map/search" -H "x-api-key: <api-key>" -H "Content-Type: application/json" -d '{"country":"us","keyword":"hotel san francisco","language":"en"}'TypeScript fetch
const url = new URL("https://api.crawlora.net/api/v1/google/map/search");
const headers = new Headers();
headers.set("x-api-key", "<api-key>");
headers.set("Content-Type", "application/json");
const response = await fetch(url, {
method: "POST",
headers,
body: JSON.stringify({
"country": "us",
"keyword": "hotel san francisco",
"language": "en"
}),
});
const payload = await response.json();