# Google Search Scraper API - Scrape Google SERP Data at Scale > Source: https://scrape.do/products/ready-api/google-search-scraper/ Scrape Google search results, AI Overviews, and AI Mode responses. Extract organic listings, ads, knowledge graphs, local results, and more as structured JSON. No blocks, no CAPTCHAs. > Each successful request costs **10 credits**. **Structured and Geotargeted Google SERP Data At Scale** Extract organic results, ads, knowledge graphs, local listings, AI Overviews, and 10+ more result types from Google Search. Get full AI Mode responses. Structured JSON with advanced localization. ![Structured and Geotargeted Google SERP Data At Scale](/uploads/google-serp-api.png) ## Highlights ### 240+ Countries, 150+ Languages - Target any country, language, and location with **host language (150+), geo location (240+), country restrict (240+), language restrict (35), UULE encoding, and 84 regional domain** parameters. - Get the exact search results your target audience sees, from New York to Tokyo, from Google.com to Google.co.jp, from desktop to mobile. ### Access All AI Results - AI Overview now takes a huge chunk of the SERPs, taking clicks away from organic results and leaving businesses competing to be featured. - Scrape.do provides AI Overviews in the SERP API, plus a dedicated endpoint to scrape the AI Mode version of Google. ## How It Works ### Search Results Search Google for any query and get structured results including organic listings, ads, knowledge graphs, local results, related questions, video results, and more. ![Search Results](/uploads/google-search-results.png) **cURL (API mode)** ```bash curl --location --request GET 'https://api.scrape.do/plugin/google/search?token=&q=pizza+new+york' ``` **Python (API mode)** ```python import requests import json token = "" query = "pizza+new+york" url = f"https://api.scrape.do/plugin/google/search?token={token}&q={query}" response = requests.request("GET", url) print(json.dumps(response.json(), indent=2)) ``` **Node.js (API mode)** ```javascript const axios = require('axios'); const token = ""; const query = "pizza+new+york"; const url = `https://api.scrape.do/plugin/google/search?token=${token}&q=${query}`; axios.get(url) .then(response => { console.log(JSON.stringify(response.data, null, 2)); }) .catch(error => { console.error(error); }); ``` *(Go, Ruby, Java, C#, PHP examples are also available on the HTML version.)* **Example response** ```json { "search_parameters": { "q": "pizza new york", "hl": "en", "gl": "us", "device": "desktop", "start": 0, "google_domain": "google.com" }, "search_information": { "page_title": "pizza new york - Google Search", "query_displayed": "pizza new york", "total_results": 349000000, "time_taken_displayed": 0.52, "organic_results_state": "Results for exact spelling" }, "organic_results": [ { "position": 1, "title": "The Best Pizzerias of New York City", "link": "https://ny.eater.com/maps/best-pizza-new-york-city-nyc-pizzerias", "displayed_link": "https://ny.eater.com › maps › best-pizza-new-york-city-...", "snippet": "Where to find the best pizza in New York at the best pizzerias in NYC serving the best pies and slices...", "snippet_highlighted_words": ["best"], "source": "Eater New York" }, { "position": 2, "title": "Ny Pizza New York, NY - Last Updated February 2026", "link": "https://www.yelp.com/search", "displayed_link": "https://www.yelp.com › Restaurants", "snippet": "Top 10 Best Ny Pizza in New York, NY - Yelp - NY Pizza Suprema, Juliana's, L'industrie Pizzeria...", "snippet_highlighted_words": ["NY Pizza Suprema"], "source": "yelp.com", "rich_snippet": { "bottom": { "extensions": ["(41,361)"] } } }, { "position": 3, "title": "NYC: Best Pizza", "link": "https://www.the-carboholic.com/nyc-guides/nyc-best-pizza", "displayed_link": "https://www.the-carboholic.com › nyc-guides › nyc-best-...", "snippet": "Nov 23, 2025 — The best (and one of the only) I've found is from Emmett's...", "snippet_highlighted_words": ["Emmett's"], "source": "The Carboholic" } ], "related_searches": [ { "query": "Pizza new york city", "link": "https://www.google.com/search?q=Pizza+new+york+city" }, { "query": "Best pizza new york", "link": "https://www.google.com/search?q=Best+pizza+new+york" } ] } ``` ### AI Overview Get Google's AI-generated overview that appears at the top of search results. Returned automatically as part of the SERP response when available — includes structured text blocks with inline references. ![AI Overview](/uploads/ai-overview-scraper.png) **cURL (API mode)** ```bash curl --location --request GET 'https://api.scrape.do/plugin/google/search?token=&q=pizza+new+york' ``` **Python (API mode)** ```python import requests import json token = "" query = "pizza+new+york" url = f"https://api.scrape.do/plugin/google/search?token={token}&q={query}" response = requests.request("GET", url) print(json.dumps(response.json(), indent=2)) ``` **Node.js (API mode)** ```javascript const axios = require('axios'); const token = ""; const query = "pizza+new+york"; const url = `https://api.scrape.do/plugin/google/search?token=${token}&q=${query}`; axios.get(url) .then(response => { console.log(JSON.stringify(response.data, null, 2)); }) .catch(error => { console.error(error); }); ``` *(Go, Ruby, Java, C#, PHP examples are also available on the HTML version.)* **Example response** ```json { "search_parameters": { "q": "how is pizza made", "hl": "en", "gl": "us", "device": "desktop", "start": 0, "google_domain": "google.com" }, "ai_overview": { "state": "complete", "text_blocks": [ { "type": "paragraph", "snippet": "Pizza is made by preparing a yeast-based dough, allowing it to rise, stretching it into a disc, topping it with tomato sauce and cheese, and baking it at high temperatures.", "reference_indexes": [0, 1, 2] }, { "type": "list", "list": [ { "snippet": "Ingredients: Mix flour (often type '00'), warm water, salt, yeast, and sometimes olive oil." }, { "snippet": "Mixing & Kneading: Combine ingredients and knead until the dough is smooth, supple, and slightly tacky." }, { "snippet": "Rising (Proofing): Cover the dough and let it rise in a warm place until it has doubled or tripled in size." }, { "snippet": "Stretching: On a floured surface, gently flatten and stretch the dough into a circle, leaving a thicker edge for the crust." } ], "reference_indexes": [0, 1, 3] } ], "references": [ { "title": "Homemade Pizza & Pizza Dough Recipe", "link": "https://www.simplyrecipes.com/recipes/homemade_pizza/", "snippet": "Treat the dough gently! You can also hold up the edges of the dough with your fingers...", "source": "Simply Recipes" }, { "title": "The Only Pizza Recipe You'll Need | Gozney", "link": "https://www.youtube.com/watch?v=wC34d4i_RMs", "snippet": "Today I'm going to teach you how to make pizza from scratch...", "source": "YouTube" } ] }, "organic_results": [ { "position": 1, "title": "Best Homemade Pizza Recipe (1 Hour or Overnight)", "link": "https://thefoodcharlatan.com/homemade-pizza-recipe", "snippet": "Once your pizza is in the oven, you need to cook it for about 8-12 minutes...", "source": "The Food Charlatan" }, { "position": 2, "title": "Homemade Pizza & Pizza Dough Recipe", "link": "https://www.simplyrecipes.com/recipes/homemade_pizza", "snippet": "Ingredients: 1 1/2 cups warm water, 1 package active dry yeast...", "source": "Simply Recipes" } ] } ``` ### AI Mode Google AI Mode returns a full AI-generated conversational response as the primary content, with structured text blocks, inline references, and shopping results. ![AI Mode](/uploads/ai-mode-scraper.png) **cURL (API mode)** ```bash curl --location --request GET 'https://api.scrape.do/plugin/google/search/ai-mode?token=&q=best+noise+cancelling+headphones+2025' ``` **Python (API mode)** ```python import requests import json token = "" query = "best+noise+cancelling+headphones+2025" url = f"https://api.scrape.do/plugin/google/search/ai-mode?token={token}&q={query}" response = requests.request("GET", url) print(json.dumps(response.json(), indent=2)) ``` **Node.js (API mode)** ```javascript const axios = require('axios'); const token = ""; const query = "best+noise+cancelling+headphones+2025"; const url = `https://api.scrape.do/plugin/google/search/ai-mode?token=${token}&q=${query}`; axios.get(url) .then(response => { console.log(JSON.stringify(response.data, null, 2)); }) .catch(error => { console.error(error); }); ``` *(Go, Ruby, Java, C#, PHP examples are also available on the HTML version.)* **Example response** ```json { "search_parameters": { "q": "how is pizza made", "hl": "en", "gl": "us", "device": "desktop", "google_domain": "google.com" }, "text_blocks": [ { "type": "paragraph", "snippet": "Making pizza is a standard process that can vary from a quick weeknight meal to a multi-day traditional craft. The core steps involve preparing the dough, sauce, and toppings before a fast bake.", "reference_indexes": [0, 1] }, { "type": "heading", "snippet": "1. Preparing the Dough", "level": 3 }, { "type": "paragraph", "snippet": "The foundation of any pizza is a simple dough made of flour, water, yeast, and salt.", "reference_indexes": [0, 1] }, { "type": "list", "list": [ { "snippet": "Mixing & Kneading: The ingredients are combined and kneaded to develop gluten, which gives the crust its structure and chew." }, { "snippet": "Fermentation (The Rise): The dough is left to rest and proof. Professional styles often ferment for 24 to 72 hours in the refrigerator." }, { "snippet": "Shaping: Once risen, the dough is divided into balls and hand-stretched into thin rounds." } ], "reference_indexes": [2, 3] }, { "type": "heading", "snippet": "2. Creating the Sauce", "level": 3 }, { "type": "paragraph", "snippet": "A classic red pizza sauce is typically made from crushed or pureed tomatoes (such as San Marzano) mixed with salt and occasionally herbs like oregano or basil.", "reference_indexes": [4, 5] } ], "references": [ { "title": "The Only Pizza Recipe You'll Need | Gozney", "link": "https://www.youtube.com/watch?v=wC34d4i_RMs", "snippet": "Today I'm going to teach you how to make pizza from scratch...", "source": "YouTube", "source_icon": "https://encrypted-tbn2.gstatic.com/faviconV2?url=https://www.youtube.com", "index": 0 }, { "title": "What Makes a Real Authentic Italian Pizza?", "link": "https://pizzagrillphuket.com/blog-real-authentic-italian-pizza-in-phuket/", "snippet": "The base of a real, authentic Italian pizza is where the magic happens...", "source": "Ciao Pizza & Grill", "index": 1 }, { "title": "How To Make Perfect New York Pizza", "link": "https://www.youtube.com/watch?v=4mA54Uy3YGY", "snippet": "We'll start off by making our dough...", "source": "YouTube", "index": 2 } ], "shopping_results": [] } ``` ## FAQ ### How does this differ from scraping Google myself? When you scrape Google directly, you deal with CAPTCHAs, IP bans, constantly changing HTML layouts, and proxy management. This API handles all of that for you and returns parsed JSON. You send a search query, you get back structured data with organic results, ads, local listings, and more. No browser automation or HTML parsing required on your end. ### What exactly do I get back in the response? You get a JSON object with 15+ parsed sections: organic results (title, link, snippet, position), top and bottom ads, knowledge graph panels, local map pack with ratings and addresses, People Also Ask questions, video results, top stories, discussions, related searches, and pagination data. Each section is structured with consistent field names. ### Can I get results for a specific city or country? Yes. You can set the country with the gl parameter (240+ countries, e.g., gl=tr for Turkey), the language with hl (150+ languages, e.g., hl=tr for Turkish), and for city-level targeting you can pass a location parameter like location=Istanbul,Istanbul,Turkey. You can also pick from 84 Google domains like google.com.tr or google.co.uk. For strict filtering, use cr (country restrict) and lr (language restrict) to only get results from specific countries or in specific languages. ### Does it work for different languages? Yes. The hl parameter supports 150+ interface languages, and lr lets you strictly filter results to only pages written in one of 35 supported languages. For example, hl=de&lr=lang_de will give you the German Google interface with only German-language results. We support everything from major world languages to regional dialects. ### How do I paginate through results? Use the start parameter. Google shows about 10 results per page, so start=0 is page 1, start=10 is page 2, start=20 is page 3, and so on. The response includes a pagination object with links to the next page. ### Can I get both desktop and mobile results? Yes. Set device=desktop or device=mobile to get results as they appear on each device type. Mobile and desktop SERPs can differ significantly in ranking and layout, so this is useful if you're tracking SEO performance across devices. ### Where can I find the full API reference? Check out the [Google Search API documentation](/documentation/google-scraper-api/search/) for the complete parameter list, full response schema with all field definitions, supported Google domains, and localization details. ### What is the AI Overview field in the search response? When Google displays an AI-generated overview at the top of search results, our API captures it as structured JSON in the ai_overview field. It includes text blocks (paragraphs and lists) with reference indexes pointing to cited sources. The field is included automatically in the regular search endpoint response — no extra parameters needed. If no AI Overview is present for a query, the field returns null. ### What is the AI Mode endpoint? AI Mode is a dedicated endpoint (/plugin/google/search/ai-mode) that returns Google's full conversational AI response as the primary content. Unlike AI Overview which is an optional panel within regular SERP results, AI Mode provides a complete AI-generated answer with headings, paragraphs, lists, inline references, and shopping results when relevant. It costs 10 credits per request. ### Does every search query return an AI Overview? No. Google selectively generates AI Overviews based on the query type, user location, and internal A/B testing. Informational queries like "how does mRNA vaccine work" are more likely to return one, while navigational or local queries often don't. The ai_overview field will be null when Google doesn't generate one. Using explicit geolocation parameters (gl, location) can increase the likelihood.