Google Maps API
curl --request GET \
--url https://api.crawleo.dev/google-maps \
--header 'x-api-key: <x-api-key>'import requests
url = "https://api.crawleo.dev/google-maps"
headers = {"x-api-key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<x-api-key>'}};
fetch('https://api.crawleo.dev/google-maps', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"parameters": {},
"google_maps_results": [
{
"position": 123,
"title": "<string>",
"address": "<string>",
"rating": 123,
"ratingCount": 123,
"phoneNumber": "<string>",
"website": "<string>",
"type": "<string>",
"types": [
{}
],
"priceLevel": "<string>",
"placeId": "<string>",
"cid": "<string>",
"latitude": 123,
"longitude": 123,
"openingHours": {},
"thumbnailUrl": "<string>"
}
],
"credits": 123
}Search APIs
Google Maps API
Search for businesses, places, landmarks, and locations on Google Maps. Retrieve structured place data including addresses, ratings, phone numbers, coordinates, and more. Ideal for local search, business discovery, and place lookups.
GET
https://api.crawleo.dev
/
google-maps
Google Maps API
curl --request GET \
--url https://api.crawleo.dev/google-maps \
--header 'x-api-key: <x-api-key>'import requests
url = "https://api.crawleo.dev/google-maps"
headers = {"x-api-key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<x-api-key>'}};
fetch('https://api.crawleo.dev/google-maps', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"parameters": {},
"google_maps_results": [
{
"position": 123,
"title": "<string>",
"address": "<string>",
"rating": 123,
"ratingCount": 123,
"phoneNumber": "<string>",
"website": "<string>",
"type": "<string>",
"types": [
{}
],
"priceLevel": "<string>",
"placeId": "<string>",
"cid": "<string>",
"latitude": 123,
"longitude": 123,
"openingHours": {},
"thumbnailUrl": "<string>"
}
],
"credits": 123
}Overview
The Google Maps API lets you search for businesses, places, landmarks, and locations on Google Maps and retrieve structured place data. Use it for local search, business discovery, and place lookups.When should I use this vs. the Google Search API? Use the Google Maps API when you need structured place data (addresses, ratings, phone numbers, coordinates). Use the Google Search API with
type=places for lighter local results within a general SERP workflow.Endpoint
GET https://api.crawleo.dev/google-maps
Parameters
Required Headers
string
required
Your Crawleo API key for authentication. (Alternatively, use the
Authorization: Bearer YOUR_API_KEY header.)Example: x-api-key: YOUR_API_KEY or Authorization: Bearer YOUR_API_KEYRequired Parameters
string
required
Search query. Accepts business names, landmarks, addresses, keywords, and category + location queries.Examples:
restaurants in ParisEiffel Towerhotels near Times Square New Yorkcoffee shops Berlin
Optional Parameters
string
Language code for returned text. ISO 639-1 language code that affects localization of place names, categories, and other text fields in the response.Examples:
en, ar, fr, destring
Location bias in the format
The zoom level (
@latitude,longitude,zoomz. Biases results toward the specified geographic area without strictly limiting them.| Example | Description |
|---|---|
@48.8566,2.3522,15z | Central Paris, street-level zoom |
@40.7580,-73.9855,14z | Times Square, New York |
z) ranges from 1z (world) to 21z (building). Higher zoom values narrow the geographic bias.string
Google Place ID for looking up a specific place directly. When provided, returns data for that exact place.Example:
ChIJLU7jZClu5kcR4PcOOO6p3I0string
Google numeric business/customer ID for targeting a specific business listing.Example:
10311848498909477344Parameter Combinations / Behavior
| Combination | Behavior |
|---|---|
q only | General Google Maps search for the query term. |
q + hl | Maps search with localized result text. |
q + ll | Maps search biased toward the specified geographic area. |
q + ll + hl | Location-biased search with localized text. |
q + placeId | Direct place lookup; q may be used for validation. |
q + placeId + hl | Direct place lookup with localized text. |
q + cid | Direct business lookup by customer ID. |
q + cid + hl | Business lookup by customer ID with localized text. |
Example Requests
Basic Search
curl -X GET "https://api.crawleo.dev/google-maps?q=restaurants+in+Paris&hl=fr" \
-H "x-api-key: YOUR_API_KEY" \
-H "Accept: application/json"
import requests
response = requests.get(
"https://api.crawleo.dev/google-maps",
headers={"x-api-key": "YOUR_API_KEY"},
params={
"q": "restaurants in Paris",
"hl": "fr"
}
)
data = response.json()
for place in data["google_maps_results"]:
print(place["title"], place["address"])
const response = await fetch(
"https://api.crawleo.dev/google-maps?" + new URLSearchParams({
q: "restaurants in Paris",
hl: "fr",
}),
{
headers: { "x-api-key": "YOUR_API_KEY" },
}
);
const data = await response.json();
console.log(data.google_maps_results);
Location-Biased Search
curl -X GET "https://api.crawleo.dev/google-maps?q=coffee+shops&ll=%4048.8566%2C2.3522%2C15z&hl=fr" \
-H "x-api-key: YOUR_API_KEY" \
-H "Accept: application/json"
import requests
response = requests.get(
"https://api.crawleo.dev/google-maps",
headers={"x-api-key": "YOUR_API_KEY"},
params={
"q": "coffee shops",
"ll": "@48.8566,2.3522,15z",
"hl": "fr"
}
)
data = response.json()
print(data)
const response = await fetch(
"https://api.crawleo.dev/google-maps?" + new URLSearchParams({
q: "coffee shops",
ll: "@48.8566,2.3522,15z",
hl: "fr",
}),
{
headers: { "x-api-key": "YOUR_API_KEY" },
}
);
const data = await response.json();
console.log(data);
Place ID Lookup
curl -X GET "https://api.crawleo.dev/google-maps?q=Le+Comptoir&placeId=ChIJLU7jZClu5kcR4PcOOO6p3I0" \
-H "x-api-key: YOUR_API_KEY" \
-H "Accept: application/json"
import requests
response = requests.get(
"https://api.crawleo.dev/google-maps",
headers={"x-api-key": "YOUR_API_KEY"},
params={
"q": "Le Comptoir",
"placeId": "ChIJLU7jZClu5kcR4PcOOO6p3I0"
}
)
data = response.json()
print(data)
const response = await fetch(
"https://api.crawleo.dev/google-maps?" + new URLSearchParams({
q: "Le Comptoir",
placeId: "ChIJLU7jZClu5kcR4PcOOO6p3I0",
}),
{
headers: { "x-api-key": "YOUR_API_KEY" },
}
);
const data = await response.json();
console.log(data);
Response
A successful response returns structured place data:{
"parameters": {
"q": "coffee in Paris",
"num": 10,
"page": 1
},
"google_maps_results": [
{
"position": 1,
"title": "Terres de Café",
"address": "150 Rue Saint-Honoré, 75001 Paris, France",
"rating": 4.7,
"ratingCount": 1213,
"priceLevel": "€1–10",
"type": "Coffee shop",
"types": ["Coffee shop", "Cafe"],
"website": "http://www.terresdecafe.com/",
"phoneNumber": "+33 9 86 51 02 00",
"openingHours": {
"Monday": "8 AM–7 PM",
"Tuesday": "8 AM–7 PM"
},
"thumbnailUrl": "https://lh3.googleusercontent.com/...",
"latitude": 48.8620039,
"longitude": 2.3403462,
"placeId": "ChIJ-UiBUYlv5kcRWrWf7RBf4V4",
"cid": "6836850235635905882"
}
],
"credits": 30
}
Top-Level Response Fields
object
Echo of the query parameters used for this request.
array
Array of place result objects.
Show Place result properties
Show Place result properties
integer
Ranking position in the results list.
string
Name of the place or business.
string
Full street address.
number
Average user rating (e.g. 4.7).
integer
Total number of user ratings.
string
Phone number of the business.
string
Website URL.
string
Primary business or place category (e.g. “Coffee shop”).
array
All categories associated with the place.
string
Price range indicator (e.g. “€1–10” or ”$$”).
string
Google Place ID.
string
Google business/customer ID.
number
Latitude coordinate.
number
Longitude coordinate.
object
Opening hours keyed by day of week (e.g.
{"Monday": "8 AM–7 PM"}).string
URL of the place thumbnail image.
integer
Number of credits consumed by this request (30 per request).
Error Responses
| Status Code | Description |
|---|---|
400 | Missing required query parameter q |
401 | Invalid or missing API key |
403 | Inactive account or expired subscription |
429 | Credits exhausted or concurrent request limit reached |
500 | Internal server error |
Limits / Notes
- Each request costs 30 credits regardless of result count.
- Requests are subject to concurrent request limits based on your subscription plan.
- Results depend on Google Maps data availability and query phrasing.
- Localized output varies by
hllanguage code. llbiases results geographically but does not strictly limit them.
Last modified on April 21, 2026
Was this page helpful?