Search
ChatGPT Scraper
chatgpt.com
ChatGPT is served through a dedicated plugin endpoint rather than the generic page fetch. Give it a prompt - the question your customers would type, like 'best CRM software for small business' or 'is HubSpot worth it' - and, optionally, the country to ask from, and it opens a fresh signed-out ChatGPT session in a real browser, waits until ChatGPT has finished writing and returns the answer already parsed: the answer as plain text and as Markdown, every citation pill ChatGPT attaches to a claim (the site name and domain of its source, how many further sources the pill groups and the answer text it backs), the links written into the answer with their real URLs, the list of sites cited or linked, and whether ChatGPT searched the web. Signed-out ChatGPT shows the full URL of a cited page only when you hover the pill, so citations carry the site and domain rather than the page URL, and it does not show which model answered. ChatGPT's interface follows the visitor's location while the answer follows the language of the prompt. Each call starts a new conversation and takes 15-60 seconds, and answers vary between identical prompts, as they do for people, so monitoring means asking the same prompts on a schedule and comparing. No OpenAI account or cookies are involved.
What you can extract
- The finished answer as plain text and as Markdown (headings, lists, tables and images as ChatGPT wrote them)
- Citations: site name and domain of the source behind each citation pill, how many more sources it groups, and the answer text it backs
- Links written into the answer: title, URL (tracking tag removed) and domain
- Every site cited or linked, once, in first-seen order
- Whether ChatGPT searched the web for the answer
- Ask from a chosen country: local results follow it
Dedicated endpoints
/ai/chatgpt ChatGPT's answer to one prompt
Asks ChatGPT one prompt (up to 2,000 characters) signed out, optionally from a country (country, two-letter code; blank asks from any location), waits for the finished answer and returns prompt, answer, answerMarkdown, citations (position, siteName, domain, moreSources, citedText), links (position, title, url, domain), sources (position, siteName, domain), webSearch, model (null: signed-out ChatGPT does not show it) and conversationId. One request per call; a 503 when every ChatGPT session is busy is not billed.
How to scrape it
curl -X POST \
-H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
"https://api.scrapeunblocker.com/ai/chatgpt?prompt=best%20CRM%20software%20for%20small%20business&country=US"import requests
resp = requests.post(
"https://api.scrapeunblocker.com/ai/chatgpt",
headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
params={"prompt": "best CRM software for small business", "country": "US"},
)
print(resp.text)import { ScrapeUnblockerClient } from 'scrapeunblocker';
const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });
const answer = await su.chatgpt('best CRM software for small business', {
country: 'US',
});
console.log(answer); Requests are POST and take their parameters in the query string. Browser rendering always happens - there is no flag to enable.
Example response
{
"url": "https://chatgpt.com/",
"country": "US",
"prompt": "is HubSpot worth it for a 5 person team",
"answer": "Yes, HubSpot can absolutely be worth it for a 5-person team - but I’d start small and avoid paying for features you don’t need.
For a team that size, the biggest benefit isn't having a sophisticated ...",
"answerMarkdown": "Yes, HubSpot can absolutely be worth it for a 5-person team - but I’d start small and avoid paying for features you don’t need.
For a team that size, the biggest benefit isn't having a sophisticated ...",
"citations": [
{
"position": 1,
"siteName": "HubSpot",
"domain": "hubspot.com",
"moreSources": 1,
"citedText": "HubSpot's published pricing has a significant difference between basic CRM access and advanced marketing or sales tools. ..."
},
{
"position": 2,
"siteName": "Legal HubSpot",
"domain": "legal.hubspot.com",
"moreSources": 2,
"citedText": "USD estimates based on published pricing and promotional rates; verify your exact checkout quote, seat requirements, bil ..."
}
],
"links": [
{
"position": 1,
"title": "HubSpot's official pricing page",
"url": "https://www.hubspot.com/pricing/suite",
"domain": "hubspot.com"
}
],
"sources": [
{
"position": 1,
"siteName": "HubSpot",
"domain": "hubspot.com"
},
{
"position": 2,
"siteName": "Legal HubSpot",
"domain": "legal.hubspot.com"
}
],
"webSearch": true,
"model": null,
"conversationId": "6ae39f2c-22f8-83ea-9559-a718945f4034"
} Frequently asked questions
Is it legal to scrape ChatGPT?
Asking ChatGPT questions and recording the answers it gives a signed-out visitor is lawful in many jurisdictions, but the rules depend on your country, what you collect and how you use it, and OpenAI's terms of use also apply. The plugin returns ChatGPT's answers and the sites it cites; it does not sign in or touch any account. What you ask and how you use the answers is your responsibility.
How does the ChatGPT scraper work, and how reliable is it?
The /ai/chatgpt plugin opens a fresh signed-out ChatGPT session in a real browser for every prompt, lets ChatGPT send the prompt and waits for ChatGPT's own signal that the answer is complete, so a half-written answer, an error message or a challenge page is never returned as a result; such a session is retried on another exit within the same call. In ScrapeUnblocker's benchmark it returned a finished answer on 99.9% of 1,049 calls with different prompts and countries, about 20.7s per call.
What data do I get from ChatGPT?
The finished answer as plain text and as Markdown; every citation pill ChatGPT attaches to a claim, with the site name and domain of its source, how many further sources it groups and the answer text it backs; the links written into the answer with their real URLs; the list of sites cited or linked; and whether ChatGPT searched the web. Signed-out ChatGPT shows a cited page's full URL only on hover, so citations give the site and domain, not the page URL, and model is always null because signed-out ChatGPT does not show it.
Can I check what ChatGPT says in a specific country?
Yes. Pass country as a two-letter code, such as US, GB, DE or FR, and the prompt is asked from that country, so local results and recommendations follow it. Leave country blank to ask from any location. ChatGPT's own interface follows the visitor's location; the answer follows the language of the prompt.
How do I use it for AI visibility (GEO) monitoring?
List the prompts your customers ask, such as 'best CRM for small business' or 'HubSpot vs Pipedrive', ask each one on a schedule from the countries you sell in, and track whether your brand appears in answer, whether your domain shows up in citations or links, and which other sites ChatGPT relies on. Answers vary between identical prompts, so ask each prompt a few times per run and compare shares rather than single answers.
How much does it cost to scrape ChatGPT?
Every call is one request: one prompt, one finished answer, however many sites ChatGPT cites. 1 request = 1 credit, EUR 1.00 per 1,000 on pay as you go, down to about EUR 0.55 per 1,000 on the Ultimate plan. Prompts that get no finished answer, and calls answered 503 because every ChatGPT session is busy, are not billed, and the free trial includes 500 requests with no card.
Related scrapers
ChatGPT and other names and marks of chatgpt.com belong to their owner and are used here only to identify the website this API works with. ScrapeUnblocker is an independent service, not affiliated with, endorsed by or sponsored by the owner of chatgpt.com.
Start scraping this site today
Free tier included. No credit card required to test it.