Send a prompt. Get Gemini's answer as JSON.
The Gemini endpoint types your prompt into the Google Gemini web app and returns the answer it writes, as JSON. You need no Google account or AI Studio key and run no browser.
GET /gemini
?prompt=What are the best project management tools for a small remote team?
→ 200 OK · 25 credits · 67 s (real call, Oct 20, trimmed)
{
"conversation": {
"messages": [
{ "role": "user", "content": "..." },
{ "role": "model",
"content": "Finding the right project management tool for a small remote team depends heavily on your team's workflow style, technical comfort, and how much structure you need. ..." }
],
"total_messages": 2,
"user_messages": 1,
"model_messages": 1
},
"metadata": {
"prompt": "What are the best project management tools for a small remote team?",
"grounded": false,
"total_messages": 2,
"user_messages": 1,
"model_messages": 1
},
"bytes_transferred": 0,
"recipe": "Gemini"
}
One GET request, 5 parameters.
Call https://api.ujeebu.com/gemini with your key in the ApiKey header. Only prompt is required. These are all the parameters there are, as in the docs.
| Parameter | Type | Default | What it does |
|---|---|---|---|
prompt required |
string | - | The question or prompt to send to Gemini. URL-encode special characters. |
wait_for_load |
boolean | true | Wait for page to fully load before interaction. |
timeout |
number | 60000 | Maximum time to wait for response in milliseconds (60 seconds). |
proxy_type |
string | null | Proxy type to use: 'premium', 'rotating', 'datacenter'. |
proxy_country |
string | null | ISO country code for proxy location (e.g., 'US', 'GB'). Paid plans and top-up packs (pay as you go), not the free trial alone. |
The answer, as JSON.
One JSON object once Gemini has finished writing. The fields below are the ones our real test call returned.
| Field | What it holds |
|---|---|
conversation.messages | Two messages: your prompt (role user) and the answer (role model), each with role and content. content is the answer text. |
conversation.total_messagesuser_messagesmodel_messages | Message counts (2, 1, 1 for one prompt). |
metadata | The prompt you sent, the same counts and a grounded flag (false in our test call). |
bytes_transferred | Bytes the browser session loaded for the call. |
recipe | "Gemini". |
See it work, before you sign up.
Type a prompt and run a real call against the live API, no API key needed. A Gemini answer takes about a minute, so keep the tab open.
What the endpoint does, and what it does not.
It asks Gemini the way a visitor would and hands you the answer. It is not a chat API for your own product.
Each call opens Gemini, sends the prompt and waits for the whole answer: about a minute, sometimes two. Set your HTTP timeout to 180 seconds.
No threads and no saved context between calls. Put everything Gemini needs to know in the prompt.
No streaming. The response arrives once the answer is complete, as text in conversation.messages.
Answers come from the Gemini web app as a visitor sees it. You cannot pick the model or a research mode; you get what Gemini serves at that moment.
The response holds the answer and its counts, not a list of cited links. For answers with sources, use ChatGPT with web search or Google AI Mode.
A completed answer is 25 credits. Timeouts, blocked sessions and server errors cost 0. proxy_type and proxy_country pick where the session runs.
One GET request in any language.
curl -G "https://api.ujeebu.com/gemini" \
-H "ApiKey: YOUR_API_KEY" \
--data-urlencode "prompt=What are the best project management tools for a small remote team?" \
--max-time 180
import requests
r = requests.get(
"https://api.ujeebu.com/gemini",
params={"prompt": "What are the best project management tools for a small remote team?"},
headers={"ApiKey": "YOUR_API_KEY"},
timeout=180,
)
data = r.json()
answer = next(m for m in data["conversation"]["messages"] if m["role"] == "model")
print(answer["content"])
const params = new URLSearchParams({
prompt: "What are the best project management tools for a small remote team?",
});
const res = await fetch("https://api.ujeebu.com/gemini?" + params, {
headers: { ApiKey: "YOUR_API_KEY" },
signal: AbortSignal.timeout(180000),
});
const data = await res.json();
const answer = data.conversation.messages.find(m => m.role === "model");
console.log(answer.content);
package main
import (
"encoding/json"
"fmt"
"net/http"
"net/url"
"time"
)
func main() {
q := url.Values{}
q.Set("prompt", "What are the best project management tools for a small remote team?")
req, _ := http.NewRequest("GET", "https://api.ujeebu.com/gemini?"+q.Encode(), nil)
req.Header.Set("ApiKey", "YOUR_API_KEY")
client := &http.Client{Timeout: 180 * time.Second}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
var data struct {
Conversation struct {
Messages []struct{ Role, Content string }
}
}
json.NewDecoder(resp.Body).Decode(&data)
for _, m := range data.Conversation.Messages {
if m.Role == "model" {
fmt.Println(m.Content)
}
}
}
Tracking what Gemini tells people, at scale.
Ask the questions your buyers ask and record which brands Gemini names. Our AI Citation Index runs on this endpoint every week.
Build AI visibility and GEO products on real answers: run each client's prompt set on a schedule and compare the mentions week over week.
Study what Gemini says about a topic, a market or a list of questions, and compare it with ChatGPT on the same prompts.
Send hundreds or thousands of prompts, one per call, in parallel up to your plan's concurrency. Failed calls cost nothing, so retries are cheap.
Watch how Gemini's answers about your product or category change over time.
25 credits per Gemini Scraper call. Here's what that buys.
One credit pool covers every endpoint. Failed calls cost 0. No per-feature upcharges, no premium-proxy tax. See full pricing →
What people ask before they build.
Can I choose the Gemini model?
No. The endpoint sends your prompt to the public Gemini web app and returns the answer it gives, with whatever model that app uses for a visitor at the time. There is no model parameter.
Does it stream the answer?
No. You get one JSON response once the full answer is written. A Gemini answer usually takes about a minute, sometimes two. Set your HTTP client timeout to at least 120 seconds.
Can I continue a conversation?
No. Each call is one prompt and one answer, with no thread or saved context. Put everything the assistant needs to know in the prompt.
Does Gemini return the sources it used?
Not as a list: in our tests the response held the answer text and its counts, with no cited links. For answers with cited links, use the ChatGPT endpoint with enable_web_search=true, or Google AI Mode through the SERP API.
How fresh are the answers?
Live. Every call asks Gemini at that moment; nothing is cached, so the same prompt can get a different answer tomorrow.
What does a call cost?
A prompt is 25 credits. Failed calls (timeouts, blocked sessions, server errors) cost 0, and every response carries the credits it used in the Ujb-Credits header.
What about Google AI Mode and Google AI Overviews?
They come from the SERP API on the same key: search_type=ai returns the Google AI Mode answer with its citations (5 credits), and a normal web search returns Google AI Overviews in the ai_overview field when Google shows one.
Ask Gemini from your code today.
5,000 free credits (200 prompts), no card. Or try a prompt in the playground first, no key needed.