Skip to content
CrawlerData
Menu
Switch in one line

SerpApi-compatible API

Keep your code. Point your SerpApi calls at api.crawlerdata.com/search.json: the same parameters and the same JSON layout, from $1.00 down to $0.30 per 1,000 searches on prepaid credits, with no subscription.

Before
curl "https://serpapi.com/search.json?engine=google&q=coffee+shops&gl=us&hl=en&api_key=YOUR_SERPAPI_KEY"
After
curl "https://api.crawlerdata.com/search.json?engine=google&q=coffee+shops&gl=us&hl=en&api_key=YOUR_CRAWLERDATA_KEY"

What it costs

SerpApi lists $25 for 1,000 searches a month on Starter and $725 for 100,000 on Searcher (SerpApi pricing, checked October 2026). On CrawlerData, 1,000 searches cost $1.00 on the $50 Starter pack, and 100,000 searches a month come to $75 a month with one $375 Standard pack covering five months.

Python and Node.js

import requests

BASE_URL = "https://api.crawlerdata.com/search.json"  # was https://serpapi.com/search.json

results = requests.get(BASE_URL, params={
    "engine": "google_shopping",
    "q": "sony wh-1000xm5",
    "gl": "us",
    "api_key": "YOUR_CRAWLERDATA_KEY",
}, timeout=200).json()

for item in results["shopping_results"][:5]:
    print(item["position"], item["title"], item.get("price"))
const BASE_URL = 'https://api.crawlerdata.com/search.json'; // was https://serpapi.com/search.json

const params = new URLSearchParams({ engine: 'google', q: 'best crm software', gl: 'us', api_key: process.env.CRAWLERDATA_API_KEY });
const results = await (await fetch(`${BASE_URL}?${params}`)).json();
console.log(results.organic_results.slice(0, 3), results.ai_overview?.references?.length);

Engines

engine=google
organic_results, ads, ai_overview, related_questions, local_results, top_stories, knowledge_graph, related_searches. tbm=nws, isch, shop and lcl switch to the News, Images, Shopping and Local tabs.
engine=google_shopping
shopping_results with position, title, product_id, source, price, extracted_price, old_price, thumbnail and link.
engine=google_news
news_results with title, link, source, date, snippet and thumbnail.
engine=google_images
images_results with title, original, thumbnail, source and link.
engine=google_local
local_results with title, rating, reviews, type, address, hours and website.
engine=google_autocomplete
suggestions with value.

Parameters

q
The search query.
gl
Country, one of 31 two-letter codes such as us, gb, de, fr, au.
hl
Interface language.
location
City-level targeting with a canonical name, e.g. "Austin,Texas,United States".
uule
Raw encoded location, for advanced use.
device
desktop or mobile.
start
Result offset for paging.
api_key
Your CrawlerData API key. An Authorization: Bearer header works too.

FAQ

Do I need a new SDK?
No. If your code calls https://serpapi.com/search.json with query parameters, change the base URL to https://api.crawlerdata.com/search.json and use your CrawlerData API key. The parameters and the JSON layout stay the same.
Which engines are supported?
google (including the News, Images, Shopping and Local tabs through tbm), google_shopping, google_news, google_images, google_local and google_autocomplete.
How is it billed?
Like every CrawlerData request: 1 credit per search from prepaid packs, $1.00 per 1,000 down to $0.30 at volume, valid 6 months, no subscription. Failed requests are not charged.
Can I try it before switching?
Yes. Sign up with a work email for 50 free credits, run a few of your real queries against /search.json and compare the output side by side.
What about Google Shopping sellers?
Our native API has a sellers endpoint that returns every seller for a product in one request, sorted by total price, at 1 credit per 10 sellers. Use it next to /search.json with the product_id from shopping_results.

Test it on your own queries

50 free credits with a verified work email. Failed requests are never charged.