Skip to content
Per-Search vs Per-Place Billing · 20267 min read·Updated 2026-11-08·Pricing verified: November 2026 (SerpApi Public Plans & Search Credit Pricing ↗)

SerpApi Local & Maps Cost Math: Per-Search Credits vs Per-Place Billing

SerpApi prices its Developer plan at $75.00/month for 5,000 API searches ($15.00 per 1,000 API searches). When every search returns a full 20-business page, base discovery costs $0.75 per 1,000 places—but the moment your pipeline fetches per-place details, review pages, or sparse zip-code grids, per-search billing multiplies effective cost to $2.50–$15.75+ per 1,000 places. Compare the exact call-multiplier math against PlacesData API ($0.20–$0.50 per 1,000 places returned).

Gateway p50 Latency38ms cached (<350ms warm · 1.4s live)
Concurrency & Rate Limit30 – 600 RPM (2 – 15 RPS)Need 1,000+ RPM? Dedicated Enterprise Key Pool available
Deterministic Unit Price$0.20–$0.50 / 1,000 places

Instant API key in 5s (12,000 Free Credits + 20,000 Sandbox Streak Credits) · $1 = 10,000 Credits · 0 Credits on empty queries · Top up anytime via 0%-fee Multi-Chain Crypto (+5% bonus credits, never-expiring PAYG)

Instant Quickstart · Copy & Run in 30 Seconds

Swap SerpApi engine=google_maps for PlacesData API /v1/places/search

import os
import requests

# BEFORE (SerpApi): $75/mo floor, 20 results/call cap, no website email enrichment
# params = {"engine": "google_maps", "q": "specialty coffee", "ll": "@40.722,-74.001,14z", "api_key": "..."}

# AFTER (PlacesData API): $0.20-$0.50 / 1,000 places, up to 100/call, 0 Credits on empty cells
API_KEY = os.getenv("PLACESDATAAPI_KEY", "pd_live_your_api_key")
HEADERS = {"x-api-key": API_KEY}

res = requests.get(
    "https://api.placesdataapi.com/v1/places/search",
    headers=HEADERS,
    params={"q": "specialty coffee in Manhattan NY", "limit": 50},
    timeout=15,
)
res.raise_for_status()
places = res.json()["data"]

for p in places[:3]:
    print(p["place_id"], p["name"], p.get("phone"), p.get("domain"))
Want to inspect real live JSON before creating an account?Try 3 Free Live Runs in Browser Playground (No Login) →

Key Engineering Takeaways (TL;DR)

  • ✓SerpApi's entry paid tier is $75.00 / month for 5,000 searches ($15.00 per 1,000 API searches; $150/mo for 15,000 searches = $10.00 per 1,000 API searches), with unused monthly search credits expiring every 30 days.
  • ✓While 1 dense search returning 20 businesses equals $0.75 per 1,000 places, chaining engine=google_maps (type=place) or engine=google_maps_reviews for each business triggers 1 + 20 = 21 API calls per page—inflating real cost to $15.75 per 1,000 places.
  • ✓Sparse rural/suburban coordinate sweeps that return 0 to 5 businesses still consume 1 full SerpApi search credit ($0.015/call), whereas PlacesData API bills strictly per returned place (0 Credits on empty 0-result cells).
  • ✓PlacesData API returns phone, website, domain, 7-day hours, rating, review count, and coordinates in a single synchronous call for $0.20–$0.50 per 1,000 places—plus built-in website B2B email enrichment (/v1/leads/enrich) that SerpApi does not offer.

1. Per-Search Credit Math: How $75 / 5,000 Searches Scales from $0.75 to $15.75+ per 1,000 Places

SerpApi meters HTTP search requests rather than business records. Evaluating real unit economics requires multiplying the per-search rate ($15.00 per 1,000 searches on Developer, $10.00 per 1,000 searches on Production) by your pipeline's detail, pagination, and empty-grid call ratio:

Workload cost comparison: SerpApi per-search credits vs PlacesData API per-place billing
Workload VolumeVendor Billing MechanicDetail-Call MultiplierEffective $/1K PlacesPlacesData Flat Cost
5,000 Searches Starter Floor (Dense 20/Page List Only)$75.00 / month for 5,000 API searches ($15.00 per 1,000 API searches; 30-day credit expiry)1x list search per 20 places (0 detail or review calls)$0.75 per 1,000 places ($75.00/mo min commitment)$0.50 per 1,000 places on $10 never-expiring PAYG ($0.20/1K Business)
Suburban / Zip-Code Grid Sweep (Avg 5 Places / Search)$15.00 per 1,000 API searches (1 full credit billed even on 0-result cells)200 API searches per 1,000 places + unrecovered empty cells$3.00+ per 1,000 places$0.20 – $0.50 per 1,000 places returned (0 Credits on empty cells)
Full Business Profiles (List Search + Place Details Call)$15.00 per 1,000 API searches across engine=google_maps + type=place1 list call + 20 place detail calls = 21 API calls per 20 places (1,050 calls / 1K)$15.75 per 1,000 places ($10.50/1K on $150/mo plan)$0.20 – $0.50 per 1,000 places (phone, website, hours & CID in 1 call)
100,000 Places + 20 Verified Reviews per Place$150 – $275 / month tiers (engine=google_maps + engine=google_maps_reviews)5,000 list calls + 100,000 review calls = 105,000 API searches$9.62 – $10.50 per 1,000 places + 20 reviews$1.80 – $4.50 per 1,000 places + 20 reviews ($0.08–$0.20 per 1K reviews)
50,000 Places + Website B2B Email & Social EnrichmentNot available on SerpApi (requires separate 3rd-party domain crawler)External enrichment API required (+1 lookup per domain)N/A (+$3.00 – $10.00 per 1,000 domains externally)$0.80 – $2.00 per 1,000 enriched domains via /v1/leads/enrich (0 if empty)

2. 15-Minute Migration: SerpApi local_results[] -> PlacesData API JSON Mapping

Replace engine=google_maps pagination (ll=@lat,lng,14z + start=0,20,40) with a single GET /v1/places/search request returning up to 100 normalized places per call:

JSON field mapping from SerpApi google_maps local_results to PlacesData API
SerpApi google_maps JSON FieldPlacesData API FieldType & Production Example
local_results[].titledata[].namestring · "Felix Roasting Co."
local_results[].place_iddata[].place_idstring · "ChIJN5X_gWdZwokRck9rk2guJ1M"
local_results[].data_cid & data_iddata[].cid & data[].google_idstring · "5991807586670235506"
local_results[].type / typesdata[].category & data[].typesstring / string[] · "Coffee shop"
local_results[].addressdata[].address, city, state, zip_codestring · "450 Broome St, New York, NY 10013"
local_results[].phonedata[].phonestring (E.164) · "+12123591139"
local_results[].websitedata[].website & data[].domainstring · "felixroastingco.com"
local_results[].rating & reviewsdata[].rating & data[].reviews_countnumber · 4.5 & 782
local_results[].operating_hoursdata[].working_hoursobject · full 7-day schedule included
local_results[].gps_coordinates.{latitude,longitude}data[].latitude & data[].longitudenumber · 40.722341, -74.001298

Swap SerpApi engine=google_maps for PlacesData API /v1/places/search

Fetch up to 100 full business profiles in one call, plus enrich verified website B2B emails:

# Single call returns phone, website, domain, 7-day hours, rating & coordinates (5 Credits / place)
curl -sS "https://api.placesdataapi.com/v1/places/search?q=specialty+coffee+in+Manhattan+NY&limit=50" \
  -H "x-api-key: pd_live_your_api_key"

# Built-in website B2B email & social profile enrichment (20 Credits/hit; 0 if empty)
curl -sS "https://api.placesdataapi.com/v1/leads/enrich?domain=felixroastingco.com" \
  -H "x-api-key: pd_live_your_api_key"
Test this exact endpoint right now in your browser (3 free anonymous runs):Run 3 Free Live Queries in Playground →

Interactive Engineering Workbench · Side-by-Side Comparison

Verify real-time latency, credit math & JSON schema

5,000 places/day
5,000 reviews/day
500 domains/day
HTTP Calls / Day
600
Up to 100 items/call
Credit Unit
$1 = 10,000
Unified across 8 routes
Empty Result Fee
0 Credits
$0.00 for 0 matches
Estimated Monthly Pipeline Cost (30 Days)
$54.00/ mo on Business ($76.95 on Pro)
Monthly consumption: 1,350,000 Credits (45,000 Credits/day)
PlacesData API (Business $0.20/1K):$54.00 / mo
Official Google Places API ($32/1K):$5175.00 / mo
Empty search / unfound email fee:$0.00 (0 Credits)

Frequently Asked Questions

When is SerpApi $0.75/1K places vs $15.75/1K places?
On SerpApi's $75/month Developer plan (5,000 searches = $0.015/search), a dense list search returning 20 businesses costs $0.75 per 1,000 places. However, if you call engine=google_maps with type=place (or engine=google_maps_reviews) for each of those 20 businesses, 1 list call + 20 detail calls = 21 searches ($0.315 for 20 places), which equals $15.75 per 1,000 places.
What happens on SerpApi if a coordinate grid search returns 0 businesses?
SerpApi deducts 1 search credit for any completed HTTP 200 search even if local_results is empty. PlacesData API charges strictly by returned record—empty 0-result queries deduct 0 Credits.
Can I start without a $75/month recurring commitment?
Yes. Every PlacesData API account receives $1.20 (12,000 Free Credits) immediately with 1-click Google OAuth and no credit card. After that, you can buy $10 never-expiring Pay-As-You-Go packs or subscribe from $29/month.