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.

GET/api/v1/search/web?q=postgres+connection+pooling&num=3
200 OK0.17s1 credit85,000 results
{  "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

GET /search/places, per result
FieldsWhat they hold
title, category, categoriesThe business name and Google's category labels
address, latitude, longitudeStreet address and coordinates
phoneNumber, website, domainContact details as listed
hours, openStateOpening hours by day, and the open or closed state at fetch time
rating, ratingCount, priceLevelStar rating, number of ratings, and price level where Google shows one
featureId, cidThe identifiers GET /search/reviews accepts
placeId, knowledgeGraphIdGoogle'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 comparison between Searlo and Google Places API (New)
CapabilitySearloGoogle 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 rateText Search Enterprise: $35.00 per 1,000 calls (0–100,000 tier)
Details for a business you can nameThe same 1-credit call: search its name and locationIDs-only Text Search (no charge), then Place Details Enterprise at $20.00 per 1,000
ReviewsGET /search/reviews: 1 credit for up to 50 reviewsEnterprise + Atmosphere: $25.00 per 1,000 Place Details calls, $40.00 per 1,000 Text Search calls
Free usage3,000 credits once, no card1,000 calls a month on each Enterprise SKU
SetupOne API keyA Google Cloud project with a billing account
Place ID lookup, autocomplete, geocoding, mapsNot offeredOffered across Google Maps Platform
What the data isGoogle's publicly visible local results at fetch timeGoogle'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

GET /search/places at 1 credit per call (up to 20 records each), converted at each pack's published rate. Packs are one-time purchases, not a subscription; credits on new accounts are valid for 90 days.
PackPriceCalls it buysPer 1,000 calls
Micro$3.995,000$0.80
Starter$9.9920,000$0.50
Builder$29.9975,000$0.40
Scale$74.99250,000$0.30
Pro$199.99900,000$0.22
Enterprise$7994,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.

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.