# Gemini Scraper API - Web-Grounded Gemini Answers as JSON > Source: https://scrape.do/products/ready-api/gemini-scraper/ Ask Google Gemini anything through one GET request and parse the answer as JSON. Structured Markdown output, the web sources Gemini grounded on, and the model label, with no Google account or browser automation. > Each successful request costs **25 credits**. **Google Gemini Answers, Grounded and Parsed** Ask Gemini a question through the API and read the answer as data. The reply keeps its Markdown structure, carries the web pages Gemini based the answer on, and names the model that wrote it. Nothing to sign in to, nothing to keep alive between calls. ![Google Gemini Answers, Grounded and Parsed](/uploads/gemini-api.svg) ## Highlights ### Rich Answers That Keep Their Structure - Gemini formats comparison tables, ranked lists, and code blocks into its answers, and `output.text` **keeps all of that as Markdown**. Frontend-only widgets are stripped out, so what remains renders cleanly anywhere. - A flat 25 credits buys the whole answer, with **no render fee** on top and nothing charged for failed calls. Fire prompts in parallel for brand monitoring, answer tracking, or eval pipelines; every call stands alone. ### See What Gemini Cited, Not Just What It Said - Web-grounded answers arrive with a **`sources[]` array**: the external pages behind the answer, deduplicated, ordered by appearance, capped at 30. Track which sites Gemini surfaces for the questions your market asks. - Alongside the sources you get the **model label** Gemini reports (such as `3.5 Flash`) and an echo of your prompt, so stored responses stay auditable without extra bookkeeping on your side. ## How It Works ### Prompt to Reply Pass your question as the q parameter, up to 4000 characters. Server-side, the plugin asks gemini.google.com, waits until the answer is fully written, and hands you a single JSON object with the Markdown text, any grounding sources, and the model label. ![Prompt to Reply](/uploads/gemini-results.png) **cURL (API mode)** ```bash curl --location --request GET 'https://api.scrape.do/plugin/gemini/chat?token=&q=Explain+quantum+entanglement+in+one+sentence' ``` **Python (API mode)** ```python import requests import json token = "" url = f"https://api.scrape.do/plugin/gemini/chat?token={token}&q=Explain+quantum+entanglement+in+one+sentence" response = requests.request("GET", url) print(json.dumps(response.json(), indent=2)) ``` **Node.js (API mode)** ```javascript const axios = require('axios'); const token = ""; const url = `https://api.scrape.do/plugin/gemini/chat?token=${token}&q=Explain+quantum+entanglement+in+one+sentence`; 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 { "prompt": "Latest developments in AI with sources", "output": { "text": "The AI landscape is rapidly evolving from passive assistant models toward **autonomous agentic workflows, domain-specific scientific acceleration, and physical embodiment**.\n\n## 1. Shift to Autonomous Agents\n..." }, "sources": [ "https://openai.com/news/", "https://research.google/blog/", "https://news.mit.edu/topic/artificial-intelligence2" ], "model": "3.5 Flash" } ``` ## FAQ ### How is this different from the Gemini API on Google AI Studio? They answer different questions. AI Studio gives you programmatic model access with per-token billing, a Google Cloud account, and your own system prompts. This plugin returns what the **public Gemini web app** actually answers, including its web grounding and formatting, at a flat **25 credits** per successful call. If you care about what real Gemini users see, for brand tracking, answer monitoring, or research, the web product is the ground truth, and that is what this endpoint captures. ### Which Gemini model answers my prompt? Whichever model the Gemini web app assigns to anonymous sessions at that moment; there is no model picker. The `model` field carries the label when Gemini exposes it (for example `"3.5 Flash"`) and is simply absent otherwise, so treat it as optional when parsing. ### Does it support follow-up questions? Not as separate turns. Each call opens a fresh conversation, so fold whatever context matters into the prompt itself. A pattern like "Given that X, now answer Y" works well within the 4000-character limit. ### What language does Gemini answer in? Whatever language you ask in. A Turkish prompt gets a Turkish answer, a German prompt a German one. Write the prompt in the language you want back; there is no separate language switch. ### What are the `sources` in the response? For questions Gemini answers from the live web (news, prices, recent events), `sources[]` lists the external pages behind the answer, deduplicated and capped at 30. Questions Gemini answers from its own knowledge come back without the field entirely, which is normal, not an error. ### Is the prompt size limited? Prompts cap at 4000 characters. Anything longer is rejected up front, before the call runs, so an oversized prompt never costs credits. ### What format is the reply in? Markdown. When Gemini writes a comparison table or a step-by-step list, that structure survives into `output.text` intact. Pipe it through any Markdown renderer, or parse the structure directly if you are extracting tables. ### How do I handle failures and retries? Failures are free and retryable. A cold session pool or an upstream hiccup returns a `502` with a JSON body naming the cause; waiting a few seconds and retrying normally succeeds. Calls time out at 45 seconds, and only successful answers consume the 25 credits. ### Where can I find the full API reference? Head to the [Gemini Scraper API documentation](/documentation/google-scraper-api/gemini/) for every parameter, the exact response schema, all error bodies, and worked curl examples.