Overview
The ScrapeBadger ChatGPT API sends a prompt to the realchatgpt.com —
not the OpenAI API — and returns the answer as structured JSON, including the
web sources ChatGPT actually browsed and cited.
Requests are anonymous: no OpenAI account, no OpenAI API key, no billing
relationship with OpenAI. You see what a logged-out user in your chosen country
sees.
All endpoints live under
https://scrapebadger.com/v1/chatgpt/* and
authenticate with the X-API-Key header. /ask and /brand-visibility
accept both GET (query params) and POST (JSON body). Credits are charged
per request and reported on the X-Credits-Used response header.Features
- Real ChatGPT answers — the full text as rendered on chatgpt.com, plus a Markdown variant when one is available.
- Anchored citations — every citation carries
start_index/end_indexcharacter offsets intoanswerand thematched_textit supports, so you can highlight exactly which sentence a source backs. - The full search trail —
search_resultsis everything ChatGPT retrieved, each flaggedcited: true/false.citationsis the subset it actually referenced. Most APIs only give you the second list. - Did it really browse? —
web_search_triggeredtells you whether ChatGPT ran a web search or answered from its own weights. Force it withweb_search=force, or suppress it withweb_search=off. - Brand visibility (AEO/GEO) built in — one call returns mention counts, position score, share of voice against named competitors, and whether your domain was cited. No separate subscription.
- Country control —
countrypicks the egress country, so you can compare the answer a user inDEgets against the one inUS.
Honesty caveat
Credits
At the PAYG rate of 0.003** —
$3.00 per 1,000 answers. Subscription tiers cut that substantially. Non-2xx
responses are never billed.
Quickstart
What you can build
AEO / GEO monitoring
Track whether ChatGPT names your brand for the prompts your buyers ask, how
early it names you, and how you rank against competitors — with
/brand-visibility.Citation-source auditing
Find which domains ChatGPT trusts for a topic.
search_results shows
everything it retrieved; cited shows what survived into the answer.Answer-quality research
Compare answers across countries, or with
web_search forced on and off, to
separate what ChatGPT knows from what it looked up.Grounded content pipelines
Use
start_index / end_index to attach a real source to each claim before
republishing anything ChatGPT wrote.How we compare
Five things that are genuinely ours:
- Citations anchored to the answer.
start_index/end_index/matched_texttell you which sentence a source supports. No other vendor returns text offsets. web_search_triggered. Only Bright Data otherwise tells you whether ChatGPT really browsed — everyone else leaves you guessing whether a citation-free answer came from memory or a failed search.search_resultsvscitations. The retrieved set and the referenced subset. Only DataForSEO separates these.- Brand visibility in the same API. Profound, Otterly, Peec and AthenaHQ sell this as a $99–989/month subscription. Here it is a 25-credit call.
- Published typically under 30s ungrounded live latency. DataForSEO’s live tier quotes a 90 s SLA.
FAQ
Is this the OpenAI API?
Is this the OpenAI API?
No. This drives the public
chatgpt.com web interface as an anonymous
visitor. You do not need an OpenAI account, an OpenAI API key, or an OpenAI
subscription — and answers include web citations, which the OpenAI
completions API does not return.Why does a call take 20-25s ungrounded, 30-70s with web search?
Why does a call take 20-25s ungrounded, 30-70s with web search?
Because a real answer is being generated, and when ChatGPT browses it runs
its own web search first. Budget a 60 s client timeout and run calls
concurrently rather than in a tight sequence.
Can I continue a conversation or ask a follow-up?
Can I continue a conversation or ask a follow-up?
No. Every request is a fresh, standalone question with no memory of previous
calls. Put all necessary context in the single
prompt (up to 4,096
characters).Can I choose which model answers?
Can I choose which model answers?
No.
/models lists the model slugs chatgpt.com currently exposes, and the
model field in a response reports which one answered — but you cannot
request a specific one.I got an answer with no citations. Is that a bug?
I got an answer with no citations. Is that a bug?
Check
web_search_triggered. If it is false, ChatGPT answered from its
training data and there were no sources to cite — that is normal for
general-knowledge prompts. Set web_search=force if you always want it to
browse.Will the same prompt always give the same answer?
Will the same prompt always give the same answer?
No. ChatGPT is non-deterministic, and the live web changes. For tracking,
sample the same prompt on a schedule and look at the trend, not a single
result.
Does country change the answer?
Does country change the answer?
It changes the egress country of the request, which affects the localised
results ChatGPT retrieves and can change the answer’s emphasis and language.
Pass any ISO-3166 alpha-2 code; the default is
US.What happens if a request fails?
What happens if a request fails?
You get
{"detail": {"code": ..., "message": ...}} with an HTTP status of
422, 429 or 502 depending on the cause. Non-2xx responses are never
billed, so a retry costs you nothing extra beyond the successful call.
