Scraper API

SERP API for Google: Results Pages as JSON

ProxyField's SERP API returns the Google results page as JSON, with the AI Overview, the People Also Ask block and the local pack parsed, for $1.20 per 1,000 successful results, from $0.80 at volume. Failed searches are not billed, so checking 3,000 keywords a day (90,000 searches a month) costs $108, or $72 at the volume price. To start, contact sales.

Google SERP API per 1,000 successful results

Returns

Google results page as JSON, with the AI Overview, the People Also Ask block and the local pack parsed

Entry

$1.20

Volume, from

$0.80

Billed on successful results only.

For rankings on google.de and google.fr, send each keyword once per domain with the country (gl=de, gl=fr) and the language (hl=de, hl=fr) fixed: 1,000 keywords on both domains, daily, is 60,000 searches, $72 a month ($48 at volume). And for rank tracking, a SERP API is more accurate than Google's Custom Search JSON API: it returns the page Google served for that search, while Custom Search returns results from a Programmable Search Engine you configure.

At a glance
Price$1.20 per 1,000 successful searches ($0.0012 each), from $0.80 ($0.0008) at volume
Failed or blocked searchesNot billed
ReturnsThe whole Google results page as JSON; AI Overview, People Also Ask and local pack parsed, included in the price
3,000 keywords a day90,000 searches a month: $108, or $72 at the volume price
3,000 keywords, 500 of them daily and 2,500 weekly≈ 25,800 searches a month: ≈ $31
1,000 keywords on google.de and google.fr, daily60,000 searches a month: $72, or $48 at the volume price
1,000 keywords on google.de and google.fr, weekly≈ 8,700 searches a month: ≈ $10.40
Features

What the Google SERP API returns

A SERP API sends a query to Google and returns the results page as data. ProxyField's returns one Google results page per request as JSON, with each block of the page in its own field. Every field is always in the response: a block the page did not show comes back as null or an empty list, so your parser never has to guess.

Block (JSON field)What you get
Organic results (organic_results)Position, title, URL, displayed URL, domain, snippet, date and sitelinks
Ads (ads)Position, top or bottom block, title, URL, displayed URL, domain and description
AI Overview (ai_overview)Whether it appeared, its text blocks, the sources it cites (title, URL, domain, snippet) and the answer as Markdown. When Google loads it late, it is fetched in the same request, at no extra charge. More in the AI search APIs below
People Also Ask (related_questions)The questions as the page shows them, with the answer and its source when the page carries them; the block is never expanded by clicking
Local pack (local_results)Name, rating, number of reviews, price level, category, address, phone, hours, website and coordinates
Featured snippet, knowledge panelTitle, URL, domain and snippet; the panel's type, description, source, website and attributes
Inline shopping, top stories, related searchesProduct title, price, merchant, URL and rating; story title, URL, source and date; the related queries

output can also return the page itself as HTML or Markdown, and the raw HTML behind every parsed result can be downloaded with it.

Need Google's AI Mode answer instead? The Google AI Mode API costs $1.50 per 1,000 successful results, from $1.00.

Pricing

SERP API cost for a few thousand keywords a day

Checking 3,000 keywords a day costs $108 a month at $1.20 per 1,000 successful searches, or $72 at the $0.80 volume price; per search, that is $0.0012, or $0.0008 at volume. Failed and blocked searches are not billed, and the parsed AI Overview, People Also Ask and local pack cost nothing extra. One billable result is one results page, however many results it holds: each further page (page=2, page=3 …) is one more result, and a page with few or no results is still one. The $0.80 volume price starts at 10,000 successful results in one purchase.

What a month costs (daily rows: a 30-day month; weekly rows: 52 weeks ÷ 12 ≈ 4.33 runs):

Google SERP API per 1,000 successful results

Entry

$1.20

Volume, from

$0.80

Billed on successful results only.

WorkloadSearches a monthAt $1.20 per 1,000At $0.80 per 1,000 (volume)
1,000 keywords, once a week≈ 4,300≈ $5.20–
1,000 keywords on google.de and google.fr, once a week≈ 8,700≈ $10.40–
500 keywords, daily15,000$18$12
1,000 keywords, daily30,000$36$24
2,000 keywords, daily60,000$72$48
3,000 keywords, daily90,000$108$72
5,000 keywords, daily150,000$180$120

How to keep the bill for a few thousand keywords low

The rate per 1,000 matters less than the number of searches you send. Four ways to send fewer, with 3,000 keywords as the example:

  1. Check daily only the keywords that earn money, and the long tail weekly: 500 daily plus 2,500 weekly is about 25,800 searches a month, about $31 instead of $108.

  2. Read the first page only unless you report positions beyond 10: each extra page is one more search.

  3. Track one device unless you report desktop and mobile separately; two devices double the count.

  4. Keep failed searches off your bill at ProxyField they are not billed, so a bad day costs only the searches that came back.

Four settings multiply the bill, so price them before you compare providers:

SettingMultiplies the searches byExample: 3,000 keywords a day
Result pages per keywordthe number of pages: Google shows about 10 organic results per page, and &num=100 stopped working in September 2025top 30 = 3 pages = 270,000 searches = $324
Devices2 for desktop and mobile180,000 searches = $216
Locations or Google domainsthe number of locationsgoogle.de + google.fr = 180,000 searches = $216
Frequencyruns a month (30 daily, ≈ 4.33 weekly)weekly instead of daily: ≈ 13,000 searches = ≈ $15.60

When you compare SERP API prices, check six things, not only the headline rate:

CheckWhy it changes the priceProxyField
Price per 1,000 at your monthly volumeHeadline rates are often the largest tier$1.20, from $0.80 at volume
What one billable result isOne page of about 10 results, or moreOne results page, however many results it holds
Failed searchesSome providers bill every requestNot billed
Queued vs live resultsSome providers price a slower queue lower than live resultsOne rate per volume tier, no separate queue price
Extra blocksSome bill AI Overview or People Also Ask as add-onsAI Overview, People Also Ask and local pack included
Smallest purchaseA monthly plan can cost more than a few thousand searchesA top-up from $2.95 on the shared balance; no separate test volume

Payment and balance: the same crypto balance as proxies, which never expires; there is no subscription or monthly fee. All prices: pricing.

Through the sales team on our 24/7 live chat

Which SERP API is best for tracking rankings on Google.de and Google.fr?

The one that takes the Google domain, the country and the language as settings and lets you keep them fixed: rankings on google.de and google.fr are right only when each search carries the domain, the country of the results and the interface language of the searcher. With ProxyField you have two routes: the SERP API at $1.20 per 1,000 successful searches, or your own scraper on German and French residential IPs from $1.95/GB.

Read moreShow less
SettingGermanyFranceWhat it changes
Google domainwww.google.dewww.google.frWhich country edition of Google answers
Country of results (gl)gl=degl=frWhich country's results rank
Language (hl)hl=dehl=frInterface language and some result types
Location (IP or location setting)a German IP or citya French IP or cityLocal results and the local pack
Devicedesktop or mobiledesktop or mobileMobile and desktop rankings differ; track each one you report

What to check in any provider before you track .de and .fr:

CheckProxyField SERP APIYour own scraper on ProxyField residential proxies
Google domains, countries, languagesgoogle_domain, gl and hl on every request; the search leaves from an IP in the gl country. The countries: the proxy pool's 195+ countriesAny domain and hl/gl you send; IPs in Germany (20.2M+, 980+ cities) and France (8.3M+, 170+ cities)
City-level locationlocation: a country, region or city by Google's canonical name, such as Austin,Texas,United States; no postal codesCountry, region and city targeting
Devicedevice: desktop or mobile; page from 1 to 10Any browser profile you run
Failed searchesNot billedYou pay per GB for the traffic used
Cost of 1,000 keywords on both domainsDaily: $72 a month ($48 at volume); weekly: ≈ $10.40Per GB, from $1.95/GB; depends on page weight

With the SERP API: send each keyword once per domain, so two domains are two searches per keyword per run: google_domain=google.de, gl=de, hl=de for Germany and google_domain=google.fr, gl=fr, hl=fr for France.

With your own scraper on ProxyField residential proxies: use a German or French residential IP so the search comes from the country you track. The username key for a German or French IP: the two-letter country code in lowercase, as in -country-de. From an EU IP, Google can show its cookie-consent page before the results; the script below reports it instead of printing the consent page's title as a result.

Python
# Playwright (Python): google.de and google.fr through ProxyField residential IPs
from urllib.parse import quote_plus
from playwright.sync_api import sync_playwright

MARKETS = {
    # keyword, domain, gl, hl, browser locale, time zone
    "de": ("kaffeemaschine", "www.google.de", "de", "de", "de-DE", "Europe/Berlin"),
    "fr": ("machine a cafe", "www.google.fr", "fr", "fr", "fr-FR", "Europe/Paris"),
}

with sync_playwright() as p:
    for market, (keyword, domain, gl, hl, locale, tz) in MARKETS.items():
        browser = p.chromium.launch(proxy={
            "server": "http://gate.proxyfield.io:7000",
            "username": "<login>",  # your username with the country key for this market
            "password": "<password>",
        })
        page = browser.new_page(locale=locale, timezone_id=tz)
        page.goto(f"https://{domain}/search?q={quote_plus(keyword)}&hl={hl}&gl={gl}")
        if "consent.google" in page.url:
            print(market, "cookie-consent page: answer it once in a persistent browser profile")
        else:
            print(market, page.title())
        browser.close()

More on tracking German and other European results with proxies: proxies for rank tracking, Germany residential proxies and France residential proxies.

Getting started

Sample request and response

You send a query with its settings and get the results page back as JSON. The API takes a POST to https://api.proxyfield.io/v1/google/search with your API key in an Authorization: Bearer <api_key> header and a JSON body. Parameter reference: API documentation.

Read moreShow less
ParameterWhat it sets
qThe query, up to 700 characters; Google operators such as site: work
glThe country of the results (us, de, fr …); the search leaves from an IP there
hlThe interface language (en, de, fr …)
google_domainThe Google domain, such as google.de
locationA country, region or city by Google's canonical name, such as Austin,Texas,United States
devicedesktop or mobile
pageThe results page, 1 to 10; each page is one billed result
outputjson, or the page as html or markdown
tagYour own label, returned with the result
Shell
# The request the Google SERP API takes (access through Contact sales)
curl https://api.proxyfield.io/v1/google/search \
  -H "Authorization: Bearer <api_key>" \
  -H "Content-Type: application/json" \
  -d '{"q": "espresso machine", "gl": "us", "hl": "en", "location": "Austin,Texas,United States", "device": "desktop"}'
Python
# Python requests: the same search
import requests

resp = requests.post(
    "https://api.proxyfield.io/v1/google/search",
    headers={"Authorization": "Bearer <api_key>"},
    json={"q": "espresso machine", "gl": "us", "hl": "en",
          "location": "Austin,Texas,United States", "device": "desktop"},
    timeout=130,
)
data = resp.json()
for r in data["organic_results"]:
    print(r["position"], r["domain"], r["title"])

Example response (shortened; the full one also carries ads, the local pack, the featured snippet, the knowledge panel, inline shopping, top stories, related searches and pagination):

JSON
{
  "metadata": {"id": "req_7f3c9a1e52d84b0c", "api": "google_search", "status": "success", "billed": true, "cached": false},
  "parameters": {"q": "espresso machine", "gl": "us", "hl": "en", "location": "Austin,Texas,United States", "device": "desktop", "page": 1},
  "ai_overview": {
    "status": "present",
    "citations": [
      {"position": 1, "title": "Espresso machine", "url": "https://en.wikipedia.org/wiki/Espresso_machine", "domain": "en.wikipedia.org"}
    ]
  },
  "organic_results": [
    {"position": 1, "title": "Espresso machine - Wikipedia", "url": "https://en.wikipedia.org/wiki/Espresso_machine", "domain": "en.wikipedia.org", "snippet": "An espresso machine brews coffee by forcing pressurized water near boiling point through a puck of ground coffee and a filter.", "date": null, "sitelinks": []}
  ],
  "related_questions": [
    {"position": 1, "question": "Is a $200 espresso machine worth it?", "answer": null, "source": null}
  ]
}

Every response says whether it was billed, in the X-Billed header and in metadata.billed.

Track Google rankings with a SERP tracking API

A SERP tracker sends the same keywords to Google on a schedule, finds your domain in each results page and stores its position with the date. The Google SERP API gives you the page as JSON for each search; your tracker keeps the history and draws the trend.

  1. Pick the keywords and the schedule

    Daily for the keywords that earn money, weekly for the long tail. The cost table above prices both.

  2. Fix the settings per keyword

    Google domain, country, language, location and device, the same on every run.

  3. Send each keyword as one search and keep the JSON with the date.

  4. Read the positions of your domain and your competitors' domains from the organic results.

  5. Watch the blocks around them whether an AI Overview appears and which sources it cites, the People Also Ask questions, and who holds the local pack. All three come parsed.

For rank tracking on your own scraper instead, see proxies for rank tracking.

Use cases

What teams use Google SERP data for: rank tracking and SERP analytics

  • Rank tracking: where your pages and your competitors' pages rank for each keyword.
  • SERP analytics: how the page itself changes over time: which result types appear, how often an AI Overview shows, and which domains hold the top places.
  • AI Overview and People Also Ask monitoring: both come parsed in the JSON.
  • Local SEO: who appears in the local pack, parsed.
  • Ad and competitor visibility: who shows up for your keywords.
  • Content research: the questions and topics Google shows for a query.
  • AI agents: an agent can call the API over HTTP and get fresh results as JSON.

Looking for a SERP API alternative? Compare the price per 1,000 searches at your volume, the locations, the engines covered, and whether failed searches are billed. ProxyField's Google SERP API costs $1.20 per 1,000, from $0.80 at volume, covers Google, and does not bill failed searches.

Google web scraper: your own code on ProxyField proxies

To scrape Google yourself, run a headless browser such as Playwright through a residential IP in the location you need, because Google needs JavaScript.

ProxyField residential proxies cost $2.95/GB for 1 GB and from $1.95/GB at volume, with no subscription; the traffic never expires, and all purchases are final. You get 412M+ residential IPs in 195+ countries and 21,000+ cities with country, region and city targeting, a new IP on every request or sticky sessions from 30 s to 36 h, over HTTP, HTTPS or SOCKS5. The pool is clean for Google, checked and segmented.

Python
# Playwright (Python) through a ProxyField residential IP in New York
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(proxy={
        "server": "http://gate.proxyfield.io:7000",
        "username": "<login>-country-us-city-new_york",
        "password": "<password>",
    })
    page = browser.new_page()
    page.goto("https://www.google.com/search?q=coffee+shops&hl=en&gl=us")
    print(page.title())
    browser.close()

Autocomplete suggestions come from Google's suggest endpoint, not the results page. Related searches are a block of the results page, and the API returns them as related_searches; events are not a block of their own in the API.

More: proxies for Google, proxies for rank tracking and pricing.

FAQ

SERP API for Google FAQ

24/7 support by live chat, including help with setup and integration.

How much does a SERP API cost?

ProxyField's SERP API costs $1.20 per 1,000 successful results, from $0.80 at volume, and you are billed on successful results only. Each result is the Google results page as JSON, with the AI Overview, the People Also Ask block and the local pack parsed.

What's the best SERP API for tracking Google rankings in several countries?

ProxyField's SERP API returns each Google results page as JSON for $1.20 per 1,000 successful results, from $0.80 at volume, and failed searches are not billed. Each country is one more search per keyword: 1,000 keywords in 3 countries, daily, is 90,000 searches, $108 a month. Compare providers on the locations, languages and Google domains they cover and on the price at your monthly volume.

Which SERP API is best for tracking rankings on Google.de and Google.fr?

ProxyField gives you two routes: the SERP API at $1.20 per 1,000 successful searches, where 1,000 keywords on both domains cost $72 a month daily ($48 at volume) or about $10.40 weekly, or your own scraper on residential IPs in Germany (20.2M+, 980+ cities) and France (8.3M+, 170+ cities) from $1.95/GB. Whichever you use, send every search with the domain (google.de, google.fr), the country (gl=de, gl=fr) and the language (hl=de, hl=fr), and keep them fixed between runs. Check that a provider lists those domains and languages before you buy.

How much does a SERP API cost for a few thousand keywords a day?

At ProxyField, 3,000 keywords a day is 90,000 searches a month: $108 at $1.20 per 1,000, or $72 at the $0.80 volume price, which is $0.0012 or $0.0008 per search, and failed searches are not billed. Checking 500 money keywords daily and the other 2,500 weekly cuts that to about 25,800 searches, about $31 a month. Pages beyond the first, a second device or a second country each multiply the count, so price your exact settings.

Is there a free SERP API good enough for a small SEO side project?

ProxyField's SERP API is paid, but small: 1,000 keywords checked once a week cost about $5.20 a month at $1.20 per 1,000, and failed searches are not billed. Google's own Custom Search JSON API is closed to new customers and due to shut down on January 1, 2027.

Which SERP APIs also cover Bing and DuckDuckGo results?

ProxyField's SERP API covers Google only; it does not return Bing or DuckDuckGo results. For any other public page, the Web Scraping API fetches a URL for $0.50 per 1,000 successful results over plain HTTP.

Can a SERP API return Google results for a specific US city or ZIP code?

Some SERP APIs take a city or ZIP code and send the search from that place, which matters for local results and the local pack. ProxyField's SERP API takes a city in its location setting, by Google's canonical name such as Austin,Texas,United States, but not a ZIP code. For your own scraper, ProxyField residential proxies target US cities (2,800+, all 50 states), but not ZIP codes.

Do SERP APIs reliably capture Google AI Overviews, given they only show up for some queries and locations?

An API can only capture an AI Overview that Google shows for that search, location and moment, so expect it on some queries and not others. When it appears, ProxyField's SERP API returns it parsed in the JSON, and you can track how often it shows by running the same keywords on a schedule.

Is a SERP API more accurate for rank tracking than Google's Custom Search JSON API?

Yes, for rank tracking: a SERP API returns the page Google served for that search and location, while the Custom Search JSON API returns results from a Programmable Search Engine you configure, which can differ from google.com, and it is closed to new customers ahead of its January 1, 2027 shutdown. No tool gives one universal rank, so freeze five settings between runs: Google domain, country (gl), language (hl), location and device. For your own site's average position across real searches, add Google Search Console.

What is a SERP API?

A SERP API runs a search on Google and returns the results page as data, usually JSON. ProxyField's returns the whole page as JSON with the AI Overview, the People Also Ask block and the local pack parsed.

Show 12 more questionsShow fewer questions

How do SERP APIs work?

In general, a SERP API sends each query from an IP in the chosen location, loads the page as a browser does, and turns it into JSON. You send a query and get data back, with no browsers or proxies to run; with ProxyField, failed searches are not billed.

How do I scrape Google search results?

Call a SERP API, or run your own headless-browser scraper on residential proxies. A SERP API is the simplest: you get JSON and run no browsers. For your own scraper, use a browser such as Playwright, because Google needs JavaScript.

Should I build my own SERP scraper or use a SERP API?

Build your own if volume is low, locations are few and you have engineering time. Use an API for many keywords or locations without maintaining browsers. ProxyField offers both: the API at $1.20 per 1,000 successful results, or residential proxies from $1.95/GB.

Can I scrape Google search results at scale?

Yes. With the API you pay per 1,000 successful results; tell sales the volume you plan. With your own scraper you need many IPs and browser capacity: ProxyField proxies allow unlimited concurrent threads, and the pool is clean for Google, checked and segmented.

What changed in Google SERP for scrapers?

Since January 2025, Google serves a page that needs JavaScript to clients that don't run it, and since September 2025 the &num=100 parameter no longer loads 100 results on one page. A scraper needs a real browser, such as Playwright, and reads the results page by page; a SERP API does that for you.

What data can you scrape from a Google SERP?

The results page holds organic results, ads, the AI Overview, People Also Ask, the local pack, related searches and more. ProxyField's SERP API returns the whole page as JSON and parses the AI Overview, People Also Ask and the local pack.

What is the difference between a search API and a scraping API?

A search API, such as the SERP API, takes a query and returns a search engine's results page as data. A scraping API takes any URL and returns that page. ProxyField has both: the SERP API for Google, and the Web Scraping API for any URL, over plain HTTP or with JS rendering.

Do SERP APIs include proxies?

You don't need your own: the API fetches the page and returns JSON, and a blocked search is not billed. If you run your own Google scraper instead, ProxyField residential proxies cost from $1.95/GB.

Is there an official Google SERP API?

No. Google offers no API that returns google.com results pages; its Custom Search JSON API returns results from a Programmable Search Engine you configure, is closed to new customers and is due to shut down on January 1, 2027. Third-party SERP APIs, such as ProxyField's, return the page Google served.

Why use a SERP API for SEO?

To track rankings for many keywords and locations, and to watch the blocks around them: whether an AI Overview appears and which sources it cites, People Also Ask questions, and who holds the local pack. You get the data as JSON without maintaining a scraper.

How am I billed for a SERP API?

Per 1,000 successful results: $1.20, from $0.80 at volume, which is $0.0012 or $0.0008 per search. A search that Google blocks, or that fails for any other reason, is not billed.

How do I track SERP positions with an API?

Send each keyword as one search on a schedule, with the same domain, location, language and device every time, find your domain in the organic results of the returned JSON, and store the position with the date. At $1.20 per 1,000 successful results, 1,000 keywords checked once a week cost about $5.20 a month.

Google SERP API: $1.20 per 1,000 results, from $0.80

Billed on successful results only. Contact sales for the API and the volume you need. 24/7 live chat helps with setup and integration.