Send a prompt. Get ChatGPT's answer as JSON.
The ChatGPT endpoint types your prompt into the ChatGPT web app and returns the answer it writes, as JSON. Turn on web search and you also get the links ChatGPT cited. You need no ChatGPT account and run no browser.
GET /chatgpt
?prompt=What are the best project management tools for a small remote team?
&enable_web_search=true
→ 200 OK · 25 credits · 20 s (real call, Oct 20, trimmed)
{
"conversation": {
"messages": [
{ "id": "", "role": "user", "position": 1,
"content": "What are the best project management tools for a small remote team?" },
{ "id": "cd587946-8106-4186-92df-644e6858881f",
"role": "assistant", "position": 2,
"content": "For a small remote team, the best project management tool is usually the one that keeps tasks, ownership, deadlines, and conversations in one place... **My top recommendation is Asana for structured teamwork, ClickUp for an all-in-one workspace, and Trello for simplicity.** ..." }
],
"total_messages": 2,
"user_messages": 1,
"assistant_messages": 1
},
"metadata": { "prompt": "What are the best project...", ... },
"sources": [
{ "url": "https://pickrtech.com/best-project-management-software-for-small-teams/?utm_source=chatgpt.com",
"title": "pickrtech.com" },
{ "url": "https://asana.com/inside-asana/manage-workflow-project-views",
"title": "asana.com" },
... 36 more (38 links in all)
],
"bytes_transferred": 1069461,
"recipe": "ChatGPT"
}
One GET request, 5 parameters.
Call https://api.ujeebu.com/chatgpt 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 ChatGPT. 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). |
enable_web_search |
boolean | false | Enable ChatGPT's web search capability for up-to-date information. |
return_html |
boolean | false | Include the full page HTML in the response. |
The answer, as JSON.
One JSON object once ChatGPT 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 assistant), each with id, role, content and position. content is the answer text as ChatGPT wrote it, in Markdown. |
conversation.total_messagesuser_messagesassistant_messages | Message counts (2, 1, 1 for one prompt). |
metadata | The prompt you sent and the same counts. |
sources | The links ChatGPT cited, each with url and title (the domain). Filled when enable_web_search=true: 38 links in our test call. |
bytes_transferred | Bytes the browser session loaded for the call. |
recipe | "ChatGPT". |
html | The full page HTML, only with return_html=true. |
See it work, before you sign up.
Type a prompt and run a real call against the live API, no API key needed. The answer takes about 30 seconds, so keep the tab open.
What the endpoint does, and what it does not.
It asks ChatGPT the way a visitor would and hands you the answer. It is not a chat API for your own product.
Each call opens ChatGPT, sends the prompt and waits for the whole answer: about 30 seconds on average. Set your HTTP timeout to 120 seconds.
No threads and no saved context between calls. Put everything ChatGPT needs to know in the prompt.
No streaming. The response arrives once the answer is complete, as plain text (Markdown) in conversation.messages.
Answers come from the ChatGPT web app as a visitor sees it. You cannot pick the model; you get what ChatGPT serves at that moment.
enable_web_search=true lets ChatGPT search before answering, and the cited links come back in sources. Off by default.
A completed answer is 25 credits. Timeouts, blocked sessions and server errors cost 0. No ChatGPT account or OpenAI key needed.
One GET request in any language.
curl -G "https://api.ujeebu.com/chatgpt" \
-H "ApiKey: YOUR_API_KEY" \
--data-urlencode "prompt=What are the best project management tools for a small remote team?" \
-d enable_web_search=true \
--max-time 120
import requests
r = requests.get(
"https://api.ujeebu.com/chatgpt",
params={
"prompt": "What are the best project management tools for a small remote team?",
"enable_web_search": "true",
},
headers={"ApiKey": "YOUR_API_KEY"},
timeout=120,
)
data = r.json()
print(data["conversation"]["messages"][-1]["content"])
for s in data.get("sources", []):
print(s["url"])
const params = new URLSearchParams({
prompt: "What are the best project management tools for a small remote team?",
enable_web_search: "true",
});
const res = await fetch("https://api.ujeebu.com/chatgpt?" + params, {
headers: { ApiKey: "YOUR_API_KEY" },
signal: AbortSignal.timeout(120000),
});
const data = await res.json();
console.log(data.conversation.messages.at(-1).content);
(data.sources || []).forEach(s => console.log(s.url));
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?")
q.Set("enable_web_search", "true")
req, _ := http.NewRequest("GET", "https://api.ujeebu.com/chatgpt?"+q.Encode(), nil)
req.Header.Set("ApiKey", "YOUR_API_KEY")
client := &http.Client{Timeout: 120 * 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 }
}
Sources []struct{ URL, Title string }
}
json.NewDecoder(resp.Body).Decode(&data)
msgs := data.Conversation.Messages
if len(msgs) > 0 {
fmt.Println(msgs[len(msgs)-1].Content)
}
for _, s := range data.Sources {
fmt.Println(s.URL)
}
}
Tracking what ChatGPT tells people, at scale.
Ask the questions your buyers ask and record which brands the answer names and which sites it cites. 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 and sources week over week.
Study what ChatGPT says and cites for a topic, a market or a list of questions, with the full answer text and links kept as data.
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 answers about your product or category change over time, and notice when a page you care about stops being cited.
25 credits per ChatGPT 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 ChatGPT model?
No. The endpoint sends your prompt to the public ChatGPT 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. Most ChatGPT answers take 15 to 60 seconds, about 30 on average. 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.
Can ChatGPT search the web?
Yes. Add enable_web_search=true and ChatGPT can search before it answers; the links it cited come back in the sources array. It is off by default.
How fresh are the answers?
Live. Every call asks ChatGPT 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 ChatGPT from your code today.
5,000 free credits (200 prompts), no card. Or try a prompt in the playground first, no key needed.