Runs onSearch API

SERP API

Get Google search results as JSON, including organic results, ads, AI Overviews, Maps, News, People Also Ask, and related searches for any country or city.

4.9average across
G2 — 4.8 out of 5Google — 4.9 out of 5Product Hunt — 5.0 out of 5
  • 500 free credits every month
  • No card to start
  • Failed requests cost nothing
Playground
country
Request
POST /search
{
  "query": "business insurance",
  "serp": true
}
loading example…
Want every endpoint and every parameter?
The Geekflare playground has every API and option, plus saved requests. Free with 500 credits a month.
Open the playground
Trusted by teams at
PfizerNBCUniversalTCSHostingerKissflowLookoutPlivoClearSaleSparkianCBSplitOmreon
PfizerNBCUniversalTCSHostingerKissflowLookoutPlivoClearSaleSparkianCBSplitOmreon

Scraping Google yourself

  • CAPTCHAs and blocked IPs after a few hundred queries
  • Residential proxies per country to see local results
  • HTML that changes and breaks your parser without warning
  • Rank positions you have to count and clean yourself

One parameter

2 credits a search
  • serp: true returns Google's first page as structured JSON
  • A rank on every result, ready to store and compare
  • location, city and device for local and mobile results, no proxies to buy
  • The same fields on every query, no parser to maintain

Send your query to the Search API with serp: true, and add location or city when you need local results. To check a single keyword without code, use the free SERP Checker.

What comes back

Google's results page, already parsed.

Every section Google shows for the query comes back as its own field, with the order and ranks intact.

Ranked organic results

Rank, title, link, displayed URL, source name and snippet for every organic result on the page.

organic[].rank

People Also Ask

The questions Google shows for the query, in order, for content briefs and FAQ research.

people_also_ask

Related searches

Google's suggested variations of the query, a free source of long-tail keyword ideas.

related

Country, city and device

Set a country code or a city, on desktop or mobile, to see the results searchers there see, without running proxies yourself.

location: "gb"

Web, news or images

Choose the results source and a time filter, for news monitoring or image research.

source: "news"

Domain filters

Include or exclude domains to focus on the sites you track, or drop the ones you don't care about.

includeDomains
Geo-targeting

See the results searchers see, wherever they are.

Rankings change from one country to the next, and from one city to the next. Set a location and get the page Google shows there, for local SEO, market research and international rank tracking.

  • location takes an ISO country code such as "gb" or "au"
  • city narrows it to one of 65,000+ supported cities, written as "City,Region,Country"
  • device returns desktop or mobile results: about a quarter of keywords have a different #1 on mobile
  • Included in every search at no extra cost
0
Countries
65,000+
Cities
No proxies
To buy or rotate
POST/search{ "query": "business insurance", "serp": true, "location": "us" }from United States
Use cases

What teams build on SERP data.

Track where you rank, every day

Run your keywords daily for each country or city you care about, find your domain in the ranked results and store its position. Movements for you and your competitors show up as a diff you can chart.

  • A rank on every result
  • Country, city and device per check
  • 100 keywords a day fits the $19 plan
Typical request
POST /search
{
  "query": "business insurance",
  "serp": true,
  "location": "us"
}
Example output · business insurance (US)
organic[0].sourceThe Hartford
rank 1
organic[1].sourceProgressive Commercial Insurance
rank 2
organic[4].sourceChubb
rank 5
Quickstart

Your first SERP request, in a few lines.

quickstart.pyplain REST
# pip install requests
import requests

response = requests.post(
    "https://api.geekflare.com/search",
    headers={"x-api-key": "<api-key>"},
    json={"query":"business insurance","serp":True},
)
print(response.json())
Pricing

2 credits a search. Here is what that buys.

Credits are shared with every other Geekflare API, and failed requests cost nothing.

5002M

Growth covers up to ~50,000 searches a month (100K credits), about $1.38 per 1,000 searches. Or $58/mo billed yearly.

searches · 58,000 credits
29,000
Plan
Growth · $69/mo
FreeNo card
$0/mo
~250
searches / month
  • 500 credits / month
  • 1 team member
  • 7 days log retention
  • 1 request per second
Starter
$19/mo
~5,000
searches / month
  • 10K credits / month
  • 3 team members
  • 30 days log retention
  • 5 requests per second
GrowthMost popular
$69/mo
~50,000
searches / month
  • 100K credits / month
  • 5 team members
  • 30 days log retention
  • 10 requests per second
Business
$349/mo
~500,000
searches / month
  • 1M credits / month
  • 25 team members
  • 90 days log retention
  • 25 requests per second
Start freeCompare plans and credit packsEvery account starts free. Upgrade from the dashboard when you need more, or buy a credit pack from $10.
Testimonials

What developers say after switching.

Read all reviews
“Found Geekflare API to get markdown from URL for my AI agents. It is fast and cheaper and works on almost every website.”
Ram DasiArchitect, PA Consulting
“After trying many scraping services, I selected Geekflare to scrape public directories. Mainly for two reasons - it is cheaper and fast.”
Vishu SharmaCTO
“Documentation was easy to follow. We were scraping dynamic pages within hours. Very reliable service.”
Marco SilvaAnalytics Engineer
Questions

Before you integrate SERP data.

General questions about the endpoint are answered on the Search API page.

Open the Search API page

Google. The API returns the same results Google shows for the query.

organic results with rank, title, link and snippet, people_also_ask, related searches, pagination and Google's navigation tabs. Which sections appear depends on what Google shows for the query.

Yes. Set location to a country code, such as "gb", or set city to a name from the list of supported cities, written exactly as listed, for example "London,England,United Kingdom". city takes priority when both are set.

Up to 100 per request with limit. SERP mode returns the first results page only.

Run each keyword with serp: true on a schedule, usually once a day, and find your domain in organic by matching each result's link. Its rank is your position; store it with the date to chart movements. Tracking 100 keywords daily takes about 3,000 searches a month (6,000 credits), which the Starter plan covers. For a walkthrough, see how to track keyword rankings, or check one keyword with the free SERP Checker.

Yes. Set source to "news" or "images", one source per request, and combine it with the time filter.

No. Set location to a country code or city to a supported city, and the results come back as searchers there see them. There are no proxies to buy, rotate or maintain.

Yes. Set device to "mobile" to get the results page Google shows on phones, or leave it at "desktop". Mobile rankings often differ: in our study of 100 keywords, about a quarter had a different #1 result on mobile. It's included in every search at no extra cost.

2 credits per search. Failed requests cost nothing, and credits are shared with every other Geekflare API.

250 searches a month, free.

The free tier renews every month and needs no card. Get your first results page as JSON in a single call.