Google Places API alternative
Google Places API alternative for business data
GET /search/places returns up to 20 businesses for a query and a location (name, address, phone, website, opening hours, rating, review count, category and coordinates) as JSON, for 1 credit per call. In Google's Places API those fields are billed at its Enterprise tier.
{ "searchTime": 0.17, "totalResults": 85000, "page": 1, "organic": [ { "position": 1, "title": "31.10. Connection Pools and Data Sources", "link": "www.postgresql.org/docs/…", "domain": "postgresql.org", "snippet": "For an environment without an application se…" }, { "position": 2, "domain": "medium.com", … }, { "position": 3, "domain": "stackoverflow.blog", … } ], "credits": 1}What is a cheaper alternative to the Google Places API for business details?
Searlo's GET /search/places returns up to 20 businesses per call with name, address, phone, website, opening hours, rating, review count, category and coordinates, for 1 credit: $0.30 per 1,000 calls at the Scale pack rate. Google's Places API (New) bills those fields at its Enterprise tier: $35.00 per 1,000 Text Search calls or $20.00 per 1,000 Place Details calls.
Searlo returns what Google's public local results show. It is not Google's licensed Places data, and it has no place ID lookup, autocomplete or geocoding.
- Searlo GET /search/places
- 1 credit per call, up to 20 businesses: $0.30 per 1,000 calls at the Scale pack rate, $0.20 at the Enterprise rate— our pricing
- Google Text Search Enterprise
- $35.00 per 1,000 calls (0–100,000 tier), 1,000 free a month— Google Maps Platform pricing
- Google Place Details Enterprise
- $20.00 per 1,000 calls (0–100,000 tier), 1,000 free a month— Google Maps Platform pricing
- Fields that trigger Google's Enterprise tier
- Phone number, website, opening hours, rating, rating count and price level; reviews need Enterprise + Atmosphere— Place Details (New) documentation
- Free to start
- 3,000 credits, no card— our pricing
Third-party figures on this page last verified against the sources linked above. Prices change; if you find one of these stale, tell us and we will correct it.
Most teams looking for a Places API alternative want one thing: a business record they can put into a CRM, a directory or a lead list (name, address, phone, website, hours, rating) without a Google Cloud project and a per-field price table. GET /search/places is built for that. You describe the business ("dentist", or a business name) and where it is ("Oakland, CA"), and get back up to 20 structured records per call.
It has two neighbours. The Google Maps API alternative page covers map-shaped search: results for a viewport of coordinates, with booking links. The Google Reviews API covers what customers wrote. This page is about the business record itself: finding a business and reading its details.
What a places response looks like
Illustrative values, real keys, one record shown. featureId is the handle GET /search/reviews accepts.
{
"searchParameters": {
"q": "dentist",
"type": "places",
"location": "Oakland, CA",
"gl": "us",
"hl": "en",
"num": 20,
"page": 1
},
"lite": false,
"page": 1,
"totalResults": 20,
"places": [
{
"position": 1,
"title": "Example Family Dental",
"address": "1234 Grand Ave, Oakland, CA 94610",
"latitude": 37.8113,
"longitude": -122.2474,
"rating": 4.8,
"ratingCount": 312,
"category": "Dentist",
"categories": ["Dentist", "Cosmetic dentist"],
"priceLevel": null,
"phoneNumber": "(510) 555-0142",
"website": "https://www.example-dental.com/",
"domain": "example-dental.com",
"openState": "Open · Closes 6 PM",
"hours": [
{ "day": "Monday", "hours": ["8 AM–6 PM"] },
{ "day": "Saturday", "hours": ["Closed"] }
],
"thumbnailUrl": "https://lh5.googleusercontent.com/p/example",
"cid": "0x808f87c9a1b2c3d4:0x1a2b3c4d5e6f7a8b",
"featureId": "0x808f87c9a1b2c3d4:0x1a2b3c4d5e6f7a8b",
"knowledgeGraphId": "/g/11example00",
"placeId": "ChIJexampleexample000"
}
],
"source": "searlo.tech(google_places)",
"credits": 1
}Fields in each business record
| Fields | What they hold |
|---|---|
| title, category, categories | The business name and Google's category labels |
| address, latitude, longitude | Street address and coordinates |
| phoneNumber, website, domain | Contact details as listed |
| hours, openState | Opening hours by day, and the open or closed state at fetch time |
| rating, ratingCount, priceLevel | Star rating, number of ratings, and price level where Google shows one |
| featureId, cid | The identifiers GET /search/reviews accepts |
| placeId, knowledgeGraphId | Google's place ID and Knowledge Graph ID, for joining to other data |
| lite (top level) | true when Google served its reduced tier and some fields are missing |
Look up businesses in one request
Search by what and where. To read one specific business, put its name in q and its city in location, then confirm the top result's address.
curl "https://api.searlo.tech/api/v1/search/places?q=dentist&location=Oakland%2C%20CA&limit=20" \
-H "x-api-key: YOUR_API_KEY"import requests
API = "https://api.searlo.tech/api/v1"
HEADERS = {"x-api-key": "YOUR_API_KEY"}
def business_details(name, city):
"""Enrich one CRM row: name + city in, one business record out (1 credit)."""
r = requests.get(
f"{API}/search/places",
params={"q": name, "location": city, "limit": 5},
headers=HEADERS,
timeout=60,
)
r.raise_for_status()
places = r.json()["places"]
return places[0] if places else None # check the address before trusting the match
place = business_details("Example Family Dental", "Oakland, CA")
if place:
print(place["title"], place["address"], place["phoneNumber"], place["website"])
print(place["rating"], place["ratingCount"], place["openState"])const API = "https://api.searlo.tech/api/v1";
const headers = { "x-api-key": "YOUR_API_KEY" };
const params = new URLSearchParams({ q: "dentist", location: "Oakland, CA", limit: "20" });
const { places, lite } = await fetch(`${API}/search/places?${params}`, { headers }).then((r) => r.json());
if (lite) console.warn("Reduced tier: rating counts, price and hours may be missing");
// featureId goes straight into the reviews endpoint (1 more credit, up to 50 reviews)
const top = places.find((p) => p.featureId);
if (!top) throw new Error("No result carries a featureId");
const reviews = await fetch(
`${API}/search/reviews?${new URLSearchParams({ featureId: top.featureId, limit: "20" })}`,
{ headers },
).then((r) => r.json());
console.log(top.title, top.rating, reviews);Searlo vs the Google Places API (New)
The fair comparison is the Google call that returns the same fields. In Places API (New), phone number, website, opening hours, rating, rating count and price level are Enterprise-tier fields, so a request for them is billed at an Enterprise SKU.
| Capability | Searlo | Google Places API (New) |
|---|---|---|
| Find businesses by type and area, with phone, website, hours and rating (up to 20 per call) | 1 credit per call: $0.30 per 1,000 at the Scale pack rate | Text Search Enterprise: $35.00 per 1,000 calls (0–100,000 tier) |
| Details for a business you can name | The same 1-credit call: search its name and location | IDs-only Text Search (no charge), then Place Details Enterprise at $20.00 per 1,000 |
| Reviews | GET /search/reviews: 1 credit for up to 50 reviews | Enterprise + Atmosphere: $25.00 per 1,000 Place Details calls, $40.00 per 1,000 Text Search calls |
| Free usage | 3,000 credits once, no card | 1,000 calls a month on each Enterprise SKU |
| Setup | One API key | A Google Cloud project with a billing account |
| Place ID lookup, autocomplete, geocoding, maps | Not offered | Offered across Google Maps Platform |
| What the data is | Google's publicly visible local results at fetch time | Google's licensed Places data, under the Maps Platform terms |
| Google Places API (New) figures last verified against their published pricing. Prices change; if one is stale, tell us. | ||
Pricing maths
| Pack | Price | Calls it buys | Per 1,000 calls |
|---|---|---|---|
| Micro | $3.99 | 5,000 | $0.80 |
| Starter | $9.99 | 20,000 | $0.50 |
| Builder | $29.99 | 75,000 | $0.40 |
| Scale | $74.99 | 250,000 | $0.30 |
| Pro | $199.99 | 900,000 | $0.22 |
| Enterprise | $799 | 4,000,000 | $0.20 |
Enriching a 10,000-row lead list with one lookup per business costs 10,000 credits: $4.00 at the Builder rate or $3.00 at the Scale rate. Google's cheapest route to the same fields is a no-charge IDs-only Text Search followed by a Place Details Enterprise call; after the 1,000 free calls, 9,000 billable calls at $20.00 per 1,000 come to $180.00.
Mapping every dentist in 50 cities takes one call per city, 50 credits for up to 1,000 records. Pulling reviews for the top five in each city adds 250 credits. At the Builder rate the whole job is $0.12. A request that fails with a 4xx or 5xx status, or returns success: false, is refunded automatically.
What teams build on business data
- CRM and lead enrichment: match a company name and city to its phone, website, hours and category.
- Local directories: category-by-city listings with ratings, hours and coordinates, refreshed on your own schedule.
- NAP audits for local SEO: compare the name, address and phone Google shows with what a client's site and citations say.
- Market mapping: count and rate every business of a type in an area before opening a location or entering a market.
- Review pipelines: take featureId from each record and pull that business's reviews in a second call.
Where this page ends and its neighbours begin
Three Searlo endpoints read Google's local results. Pick the one that matches your question.
Google Maps API alternative
Map-shaped search: results for a lat/lng/zoom viewport, with booking links and time zone. GET /search/maps, 1 credit.
Google Reviews API
Review text, rating, author and date for one business. GET /search/reviews, up to 50 reviews, 1 credit.
Google SERP API
The full web results page for a query, when you need organic rank rather than local listings.
Web Scraping API
Fetch a business's own website (contact page, menu, prices) as markdown.
Email verifier
Check the addresses you collect from business websites before you send to them.
Pricing
Credit packs from $3.99. No subscription.
Honest limits
What the endpoint does not do, so you can plan around it.
- Search, not lookup by ID. No endpoint takes a Google place ID and returns its details. Search by name and location, and compare the address of the top result before you write it to a record.
- Up to 20 records per call. page requests further results for the same query.
- Sometimes lite. When Google serves its reduced local tier the response says lite: true, and rating counts, price level and hours can be missing. Retry later if you need them.
- A tighter rate limit. Places, maps and reviews share one upstream pool, so they carry a lower per-key rate limit than the rest of the API. Pace bulk enrichment instead of firing it in parallel, or ask support for a higher limit.
- Not a Maps Platform replacement. There is no geocoding, routing, place autocomplete or map tiles; pair Searlo with a maps vendor if you draw maps.
- Public results, not licensed data. Records are what Google's public local results show at fetch time, and fields a business has not filled in come back as null.
FAQ
Google Places API alternative: FAQ
Is Searlo a replacement for the Google Places API?
For reading business data, often yes; for the rest of the Places API, no. GET /search/places returns the fields most integrations use (name, address, phone, website, hours, rating, review count, category, coordinates) for 1 credit per call. It does not offer place ID lookups, autocomplete, geocoding or maps, and it returns Google's public local results rather than licensed Places data.
How much does the Google Places API cost compared with Searlo?
Google bills by field tier. A Text Search that returns phone, website, hours and rating is Text Search Enterprise at $35.00 per 1,000 calls, and Place Details for the same fields is $20.00 per 1,000, each with 1,000 free calls a month (developers.google.com/maps/billing-and-pricing/pricing, checked 2026-09-29). Searlo is 1 credit per call: $0.30 per 1,000 at the Scale pack rate, $0.20 at the Enterprise rate.
Is this the Google Business Profile API?
No. Google describes its Business Profile APIs as a way for developers to manage their own Business Profile account and location data, with access granted through a request process (developers.google.com/my-business, checked 2026-09-29). GET /search/places reads the public listing of any business and cannot edit anything.
How do I get the details of one specific business?
Search for it: put the business name in q and its city or street in location, ask for a small limit, and check that the top result's address matches. Store featureId from the record if you will want its reviews later.
How do I get reviews for a place?
Take featureId from the places result and call GET /search/reviews with it: 1 credit for up to 50 reviews with rating, text, author and date. The Google Reviews API page covers that endpoint in detail.
Can I pull businesses for many cities or a whole category?
Yes: one call per query and location, up to 20 records each, with page for more. Places carries a tighter per-key rate limit than web search, so spread large jobs over time rather than running them all at once.
Is Searlo affiliated with Google?
No. Searlo is an independent service and is not affiliated with, endorsed by or sponsored by Google. Google and Google Maps are trademarks of Google LLC. Searlo returns publicly visible local results as JSON.
Start with 3,000 free calls
One call returns up to 20 businesses. No card, no Google Cloud project.