Google Maps · Guide

How to run a Google Maps business search

TL;DR
To run a Google Maps business search, sign up for a free Captapi key, then send one GET request to /v1/google/business-search with your input. You get clean JSON back in seconds for 2 credits per call — no OAuth, scraping or platform SDKs. Local businesses from a Maps search — name, address, phone, website, rating, hours, place id. Flat 2 credits. No emails.

How to run a Google Maps business search (step by step)

  1. 1

    Get a free API key

    Create a free Captapi account (100 credits, no card) and generate an API key from the dashboard.

  2. 2

    Call the Google Maps Business Search API

    Send an authenticated GET request to /v1/google/business-search with your input. No OAuth, no scraping setup.

  3. 3

    Read the JSON response

    Parse the clean JSON response. Pass cache=true for a free 24h cache hit; default is always fresh.

Code example

curl "https://api.captapi.com/v1/google/business-search?q=The%20Backspace" \
  -H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."

What the response looks like

{
  "success": true,
  "data": {
    "query": "The Backspace",
    "location": "Austin,Texas,United States",
    "locationCode": null,
    "language": "en",
    "limit": 1,
    "totalReturned": 1,
    "omittedCount": 0,
    "businesses": [
      {
        "rank": 1,
        "title": "The Backspace",
        "category": "Pizza",
        "additionalCategories": [
          "Italian restaurant",
          "Restaurant"
        ],
        "snippet": "507 San Jacinto Blvd, Austin, TX 78701",
        "address": "507 San Jacinto Blvd, Austin, TX 78701",
        "city": "Austin",
        "region": "Texas",
        "zip": "78701",
        "countryCode": "US",
        "phone": "+1512-474-9899",
        "website": "https://www.backspacepizza.com/?utm_source=GMBlisting&utm_medium=organic",
        "contactUrl": "https://party-request.tripleseat.com/venues/O476HqLy/?rwg_token=AE37R_i_o_MnaL1e65JJJvaOltQTL9_QXm5sl_BttOhPUA7uJzO396kceRBPO9SmXs8ST8w4slgTPqEDJNYOTalzcn2EkPCQ-w%3D%3D",
        "bookOnlineUrl": "https://www.google.com/maps/reserve/v/dine/c/ooA7fdRRGqw?source=pa&opi=79508299&hl=en-US&gei=HD7KarawF_38wbkP5Mq6wQE&ahbb=1&sourceurl=https://www.google.com/search?tbm%3Dmap%26authuser%3D0%26hl%3Den%26gl%3Dus%26pb%3D!4m9!1m3!1d546887.6385058826!2d-97.7430608!3d30.267153!2m0!3m2!1i1920!2i945!4f13.1!7i1!8i0!10b1!12m28!1m1!18b1!2m3!5m1!6e2!20e3!6m12!4b1!49b1!63m0!73m0!74i150000!75b1!85b1!89b1!91b1!110m0!114b1!149b1!10b1!14b1!16b1!17m1!3e1!20m3!5e2!6b1!14b1!19m4!2m3!1i360!2i120!4i8!20m57!2m2!1i203!2i100!3m2!2i4!5b1!6m6!1m2!1i86!2i86!1m2!1i408!2i240!7m42!1m3!1e1!2b0!3e3!1m3!1e2!2b1!3e2!1m3!1e2!2b0!3e3!1m3!1e8!2b0!3e3!1m3!1e10!2b0!3e3!1m3!1e10!2b1!3e2!1m3!1e9!2b1!3e2!1m3!1e10!2b0!3e3!1m3!1e10!2b1!3e2!1m3!1e10!2b0!3e4!2b1!4b1!9b0!22m6!1s!2s!4m1!2i20588!7e81!12e3!24m78!1m25!13m9!2b1!3b1!4b1!6i1!8b1!9b1!14b1!20b1!25b1!18m14!3b1!4b1!5b1!6b1!13b1!14b1!15b1!17b1!21b1!22b0!25b0!27m1!1b0!28b0!2b1!5m6!2b1!3b1!5b1!6b1!7b1!10b1!10m1!8e3!11m1!3e1!14m1!3b1!17b1!20m2!1e3!1e6!24b1!25b1!26b1!29b1!30m1!2b1!36b1!39m3!2m2!2i1!3i1!43b1!52b1!54m1!1b1!55b1!56m2!1b1!3b1!65m5!3m4!1m3!1m2!1i224!2i298!71b1!72m4!1m2!3b1!5b1!4b1!89b1!103b1!113b1!26m4!2m3!1i80!2i92!4i8!30m28!1m6!1m2!1i0!2i0!2m2!1i530!2i945!1m6!1m2!1i1870!2i0!2m2!1i1920!2i945!1m6!1m2!1i0!2i0!2m2!1i1920!2i20!1m6!1m2!1i0!2i925!2m2!1i1920!2i945!31b1!34m19!2b1!3b1!4b1!6b1!7b1!8m6!1b1!3b1!4b1!5b1!6b1!7b1!9b1!12b1!14b1!20b1!23b1!25b1!26b1!37m1!1e81!42b1!46m1!1e2!47m0!49m6!3b1!6m2!1b1!2b1!7m1!1e3!50m32!1m28!2m7!1u3!4s!5e1!9s!10m2!3m1!1e1!2m7!1u2!4s!5e1!9s!10m2!2m1!1e1!3m6!1u17!2m4!1m2!17m1!1e2!2s!3m1!1u2!3m1!1u3!4BIAE!2e2!3m1!3b1!61b1!67m5!7b1!10b1!14b1!15m1!1b0!69i780!77b1%26q%3DThe%2BBackspace%26ech%3D1",
        "rating": 4.5,
        "reviewCount": 842,
        "ratingDistribution": {
          "1": 22,
          "2": 21,
          "3": 41,
          "4": 149,
          "5": 609
        },
        "priceLevel": "moderate",
        "latitude": 30.2670094,
        "longitude": -97.7404066,
        "placeId": "ChIJVaujmae1RIYRpGyZcs9VBao",
        "cid": "12251292710800551076",
        "mapsUrl": "https://www.google.com/maps/search/?api=1&query=The%20Backspace&query_place_id=ChIJVaujmae1RIYRpGyZcs9VBao",
        "image": "https://lh3.googleusercontent.com/grass-cs/AABkmLcIWRZviuv3jSiEDY36-7lOH1ag7TpPvLt3kIn-Dig0aM8HLNWGc9Lekz7Ia46FSyBDdDPZuc30kK8DEb4ebQejzCJke055K3jXy0SQcTLTe_KgHToXulcT4YIpyLhWGBnqzPLS=w408-h306-k-no",
        "photoCount": 629,
        "isClaimed": true,
        "hoursStatus": "close",
        "hours": {
          "sunday": [
            {
              "open": {
                "hour": 17,
                "minute": 0
              },
              "close": {
                "hour": 21,
                "minute": 0
              }
            }
          ],
          "monday": [
            {
              "open": {
                "hour": 17,
                "minute": 0
              },
              "close": {
                "hour": 21,
                "minute": 0
              }
            }
          ],
          "tuesday": [
            {
              "open": {
                "hour": 11,
                "minute": 30
              },
              "close": {
                "hour": 21,
                "minute": 0
              }
            }
          ],
          "wednesday": [
            {
              "open": {
                "hour": 11,
                "minute": 30
              },
              "close": {
                "hour": 21,
                "minute": 0
              }
            }
          ],
          "thursday": [
            {
              "open": {
                "hour": 11,
                "minute": 30
              },
              "close": {
                "hour": 21,
                "minute": 0
              }
            }
          ],
          "friday": [
            {
              "open": {
                "hour": 11,
                "minute": 30
              },
              "close": {
                "hour": 22,
                "minute": 0
              }
            }
          ],
          "saturday": [
            {
              "open": {
                "hour": 11,
                "minute": 30
              },
              "close": {
                "hour": 22,
                "minute": 0
              }
            }
          ]
        },
        "isDirectoryItem": false
      }
    ]
  }
}

Billing metadata (credits charged, cache hit/miss) is returned in the X-Captapi-Credits and X-Captapi-Cache response headers.

Request parameters

NameTypeRequiredDescription
qstring YesKeyword, for example plumber or coffee. Min 2 characters.
locationstringNoPlace name as City,Region,Country, for example Austin,Texas,United States. When set, locationCode is ignored. A free-text city alone (austin) is not a place name.
locationCodeintegerNoNumeric place code, used only when location is omitted. Default 2840 (United States).
languagestringNoLanguage code, for example en. Default en.
limitintegerNoMax businesses to return (default 20, max 100). Not a page cursor — there is no next page. Flat 2 credits on every successful call, including zero businesses.
cachebooleanNoSet true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh.

Frequently asked questions

What does the Google Maps Business Search API do?

The Google Maps Business Search API lets you search and return matching results from a public Google Maps query using one GET request to /v1/google/business-search. It returns clean JSON — no OAuth or infrastructure setup required.

How many credits does the Google Maps Business Search API cost?

Each successful call costs 2 credits, including a search that returns zero businesses — the lookup still ran. Failures are 0 credits. cache=true hits are free; the default is cache=false (24h TTL when cache is on). limit does not change the price. There is no per-business charge.

Do I need a Google Maps API key or OAuth?

No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle proxies, rate limits, retries, and authentication for you.

Does this return the owner's email?

No. You get the public Maps listing: name, address, phone, website, rating, hours, and place id. Phone and website are null when Maps does not show them. Emails are a separate job and are not on this endpoint.

Can I page past 100 businesses?

No. limit is 1–100 and there is no nextCursor. 100 is one results page, not a walkable index.

Why did an empty search still cost 2 credits?

A completed search is a successful call, including businesses: []. Failures (4xx and 5xx) cost 0. cache=true hits are free.

What do I pass for a city?

location is City,Region,Country — Austin,Texas,United States, not austin. If you omit location, locationCode is used and defaults to 2840 (United States). A keyword can still include the city (plumber austin) when you are searching the United States.

Is the Google Maps Business Search API suitable for production use?

Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Use it for analytics, monitoring, and content automation.

Ready to run a Google Maps business search?

Start free with 100 credits — no credit card required.

Get your free API key