If you run a few thousand Google searches a month and read the organic results, People also ask and related searches, the price gap between SerpApi and ScrapingBot is large. If you need many engines, every SERP feature parsed, or a legal indemnity, SerpApi is built for that and ScrapingBot is not.
How we compared
ScrapingBot is our product. SerpApi facts come from its pricing page and FAQ, its Google Search API docs, its integrations and its MCP page, checked in October 2026.
The short version
Pick ScrapingBot if
Pick SerpApi if
ScrapingBot vs SerpApi at a glance
| ScrapingBot | SerpApi | |
|---|---|---|
| Billing model | Monthly credits; a Google search costs 10 | Monthly plans by number of searches |
| Around $50 a month | Starter, $49.99: 27,500 searches ($1.82 per 1,000) | Starter, $25: 1,000 searches ($25 per 1,000); Developer, $75: 5,000 ($15 per 1,000) |
| Around $250 a month | Pro, $249.99: 330,000 searches ($0.76 per 1,000) | Big Data, $275: 30,000 searches ($9.17 per 1,000) |
| Largest published plan | Business+, $999.99: 1.55M searches ($0.65 per 1,000) | Cloud plans down to $1.96 per 1,000 at 54M searches |
| Free tier | 100 credits once (10 searches), no card | 250 searches a month |
| Failed and cached searches | Failed refunded; no cache | Not counted; cached results (1 hour) are free |
| Engines | Google: web, images, videos, news, shopping, places, maps, reviews | 100+ APIs across ~20 engines and sites |
| Google web response | Organic results, People also ask, related searches; up to 10 organic per request; no ads | Organic results plus many parsed SERP features |
| Location | gl and hl; city-level location not reliable | location, gl, hl, google_domain, device |
| Throughput | Concurrency: 10 on Starter, up to 200 | Guaranteed searches per hour by plan (1,000 on Developer) |
| Legal indemnity | None | U.S. Legal Shield, up to $2M, from Production ($150) |
| Other data on the same key | TikTok, Instagram, Amazon US, website scraping | Instagram and Facebook profile APIs; no TikTok |
| SDKs | None | Ruby, Python, JavaScript, Go, PHP, Java, Rust, .NET and more |
| MCP server | Hosted, 23 tools | Hosted and open source |
Per-1,000 figures: ScrapingBot $49.99 ÷ 275,000 credits × 10 credits × 1,000 = $1.82; SerpApi Developer $75 ÷ 5,000 × 1,000 = $15. SerpApi also sells faster "Ludicrous Speed" versions of each plan at two and four times the price.
What you get back
A ScrapingBot Google web search for best espresso machine in the US, trimmed:
{
"success": true,
"searchParameters": { "q": "best espresso machine", "gl": "us", "hl": "en", "type": "search", "engine": "google" },
"organic": [
{
"position": 1,
"title": "The 7 Greatest Espresso Machines in 2026 [No *BS Guide]",
"link": "https://coffeechronicler.com/gear/espresso-machines/",
"snippet": "That being said, Rancilio Silvia is the gold standard when it comes to home espresso makers, …",
"date": "Jul 11, 2026"
},
…
],
"peopleAlsoAsk": [ { "question": "What is the highest rated espresso machine for home use?" }, … ],
"relatedSearches": [ { "query": "Best espresso machine for home" }, … ],
"duration": "0.85",
"statusCode": 200,
"creditsUsed": 10
}
That covers what most rank trackers, SEO tools and AI agents read. SerpApi's Google response goes further, with knowledge graph, local results, pagination metadata and many more blocks, so check which ones your code depends on before you switch. ScrapingBot's separate endpoints cover images, news, shopping, places, maps and place reviews, each at 10 credits.
Migrating from SerpApi
SerpApi takes a GET with the engine and key in the query string. ScrapingBot takes a POST with the key in a header:
# Before: SerpApi
import requests
res = requests.get("https://serpapi.com/search.json", timeout=60, params={
"engine": "google", "q": "best espresso machine", "gl": "us", "hl": "en",
"api_key": SERPAPI_KEY,
})
serp = res.json()
results = [(r["position"], r["title"], r["link"]) for r in serp.get("organic_results", [])]
questions = [q["question"] for q in serp.get("related_questions", [])]
# After: ScrapingBot
import requests
res = requests.post("https://scrapingbot.io/api/v1/google", timeout=60,
headers={"x-api-key": SCRAPINGBOT_KEY},
json={"endpoint": "/search", "params": {"q": "best espresso machine", "gl": "us", "hl": "en"}})
serp = res.json()
results = [(r["position"], r["title"], r["link"]) for r in serp.get("organic", [])]
questions = [q["question"] for q in serp.get("peopleAlsoAsk", [])]
| SerpApi | ScrapingBot |
|---|---|
organic_results[] (position, title, link, snippet) | organic[] (same four names, plus date when Google shows one) |
related_questions[].question | peopleAlsoAsk[].question |
related_searches[].query | relatedSearches[].query |
start (offset) | page (1, 2, …) or start |
gl, hl | gl, hl |
engine=google_news, google_images, google_shopping, google_maps | endpoint: /news, /images, /shopping, /maps |
Run both side by side on a sample of your real queries for a week before you switch: compare positions, check the SERP blocks your code reads, and watch the time-sensitive queries. The Google results guide has a full rank tracker, and the RAG guide shows how to hand results to an LLM.
Common questions
Is ScrapingBot cheaper than SerpApi?
Per Google search, yes. SerpApi charges $25 for 1,000 searches on Starter, $75 for 5,000 on Developer ($15 per 1,000) and $150 for 15,000 on Production ($10 per 1,000). ScrapingBot charges 10 credits per search: $1.82 per 1,000 on Starter ($49.99) and $0.76 on Pro ($249.99). Checked October 2026.
Which has the better free tier for search?
SerpApi: 250 searches every month. ScrapingBot gives 100 credits once, which is 10 Google searches, enough to check the output but not to run anything.
Does SerpApi charge for failed searches?
No. SerpApi counts only successful searches; cached, errored and failed searches are free, and a search served from its one-hour cache is not counted. ScrapingBot also refunds failed searches, but has no free cache.
Which search engines does each cover?
SerpApi lists more than 100 APIs across about 20 brands, including Google (dozens of verticals), Bing, YouTube, Amazon, Walmart, eBay, Baidu, Yandex and DuckDuckGo. ScrapingBot covers Google only: web, images, videos, news, shopping, places, maps and place reviews.
How many results per request?
ScrapingBot returns at most 10 organic results per Google request; ask for the next page with page or start. SerpApi also pages with start.
Does either have an MCP server?
Both do. SerpApi's is at mcp.serpapi.com and is open source. ScrapingBot's is at scrapingbot.io/api/mcp, where googleSearch and googleReviews sit next to TikTok, Instagram, Amazon and web scraping tools.