How to run a Google Maps business search
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
Get a free API key
Create a free Captapi account (100 credits, no card) and generate an API key from the dashboard.
- 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
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": 1026201,
"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
| Name | Type | Required | Description |
|---|---|---|---|
| q | string | Yes | Keyword, for example plumber or coffee. Min 2 characters. |
| location | string | No | Place name: City, Country or City, Region, Country — for example Austin, TX, Istanbul, Turkey, Paris, France, or a country such as Germany. Case, accents, US state codes, and country aliases (USA, UK, Turkey) are handled. A city name shared by several places (Paris) returns 400 with suggestions. When set, the locationCode parameter is ignored. |
| locationCode | integer | No | Numeric place code, used only when location is omitted. Default 2840 (United States). |
| language | string | No | Language code, for example en. Default en. |
| limit | integer | No | Max businesses to return (default 20, max 100). Not a page cursor — there is no next page. Flat 2 credits per call; zero businesses is 0 credits. |
| cache | boolean | No | Set 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 call that returns businesses costs 2 credits. A search that returns zero businesses costs 0 credits, and 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 access, 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.
Does an empty search cost credits?
No. A search that returns businesses: [] costs 0 credits, and so do failures (4xx and 5xx). cache=true hits are free.
What do I pass for a city?
Pass a place name such as Austin, TX, Istanbul, Turkey, or Paris, France. A bare city that exists in several places (austin, paris) returns 400 with suggestions and costs nothing — add the state or country. If you omit location, locationCode is used and defaults to 2840 (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