ChatGPT scraper API
aivisibilityskill's ChatGPT scraper API returns the answer the ChatGPT app gives a question, with web search on, as JSON: the brands it names in order and whether it recommends them, every citation with its source type, and the raw response with its SHA-256 hash. It covers 192 countries, costs $0.011 to $0.025 an answer, and failed answers are never charged.
- Asks
- The ChatGPT app (chatgpt.com), with web search on
- Returns
- The answer, brands in order, every citation, facts and the raw response
- Countries
- 192 countries and territories, 100+ languages
- Price per answer
- $0.011 (batch) to $0.025 (live); half for a reused answer
- Speed
- Live answers usually in under a minute
- Try it
- Free sandbox keys and 500 free credits, no card
curl https://api.aivisibilityskill.com/v1/checks \
-H "Authorization: Bearer $AIV_KEY" \
-H "Content-Type: application/json" \
-d '{
"questions": ["best CRM for early-stage startups"],
"engines": ["chatgpt"],
"locale": "en-US",
"mode": "live",
"wait": 60
}'
{
"status": "succeeded",
"credits": { "quoted": 25, "charged": 25 },
"answers": [
{
"engine": "chatgpt",
"surface": "app",
"question": "best CRM for early-stage startups",
"locale": "en-US",
"has_ai_answer": true,
"brands": [
{ "name": "Attio", "rank": 1, "recommended": true,
"sentiment": "positive", "quote": "Best overall for tech startups" },
{ "name": "HubSpot", "rank": 2, "recommended": true,
"sentiment": "positive", "quote": "Best free starting point" }
],
"facts": [
{
"brand": "Pipedrive",
"type": "price",
"value": "$14/user/month",
"price": { "amount": 14, "currency": "USD", "period": "month",
"per_user": true }
}
],
"citations": [
{ "position": 5, "domain": "techradar.com", "source_type": "media" },
{ "position": 6, "domain": "attio.com", "source_type": "brand_owned" }
],
"receipt": { "sha256": "…", "url": "…/receipt" }
}
]
}
What the ChatGPT API returns
Each answer comes back already read. You don't parse markdown or guess which product names are brands: the response lists them, in order, with the sources ChatGPT cited and the raw response behind it.
| Field | What it holds |
|---|---|
has_ai_answer | false when the engine showed no AI answer (for example, no AI Overview for that query). |
text | The full answer, as markdown. |
brands[].name, rank | Every brand the answer names, in order of first mention (rank 1 = named first). |
brands[].recommended, sentiment, quote | Whether it recommends the brand, the tone (positive, neutral, negative) and the exact words. |
citations[].position, url, domain, title | Every source the answer cites, in the order it cites them. |
citations[].source_type | What kind of site each source is: brand_owned, review_site, media, reddit, youtube, wikipedia, forum, social, blog_platform, marketplace, gov_edu or other. |
facts[] | Claims about each brand (price, plan, free tier, platform, feature) with the quote they came from; prices parsed into amount, currency and period. |
model, locale, collected_at | The model the engine reported, the country and language asked from, and when. |
receipt.sha256, receipt.url | The engine's raw response, stored as returned, and its SHA-256 hash. |
The ChatGPT app's answer vs the OpenAI API
Buyers ask ChatGPT in the app. The OpenAI API is a different product: a model you call as a developer, with its own defaults, that answers in whatever shape you ask for. Even with its web search tool turned on, it isn't the answer a buyer reads on chatgpt.com. To measure what buyers are told, you need the app's answer.
| What you get | A model's reply to your prompt | The answer buyers see on chatgpt.com |
|---|---|---|
| Web search | Only if you call the web search tool | On, the way the app decides |
| Sources | Only what your call asks for | Every citation, in order, with its source type |
| Brands named | You parse them yourself | Listed with rank, recommendation and sentiment |
| Proof | None kept | Raw response with its SHA-256 hash |
| Billing | Per token | Per answer; failed answers are free |
One question, three different answers
We asked “best CRM for early-stage startups” on each engine from the US on the same morning. Each card is what the API returned: how the answer opens, the brands it named in order, and the first sites it cited.
-
ChatGPTapp
best CRM for early-stage startups
My recommendation: start with Attio if you're building a tech startup, or HubSpot if you want a free, all-purpose sales and marketing platform.
Names, in order
- Attio
- HubSpot
- Pipedrive
- Zoho CRM
- Close
Cites 10 sources, starting with
hackceleration.comsoftwarecompare.netstackbytrade.com -
Google AI Overviewsearch
best CRM for early-stage startups
The best CRM for early-stage startups depends on your growth model, budget, and sales process.
Names, in order
- HubSpot
- Pipedrive
- Attio
- Ringy
- Zoho CRM
- Salesforce as one to avoid
Cites 6 sources, starting with
ringy.combestpage.aidigitalocean.comGoogle AI Overview API -
Google AI Modesearch
best CRM for early-stage startups
Choosing a CRM for an early-stage startup depends heavily on your workflow … and how fast you plan to scale.
Names, in order
- Attio
- HubSpot
- Pipedrive
- Close
- Streak
- Folk
Cites 3 sources, starting with
attio.comeway-crm.comhubspot.comGoogle AI Mode API
| Brand | |||
|---|---|---|---|
| Attio | 1 | 3 | 1 |
| HubSpot | 2 | 1 | 2 |
| Pipedrive | 3 | 2 | 3 |
| Zoho CRM | 4 | 5 | – not named |
| Close | 5 | – not named | 4 |
| Ringy | – not named | 4 | – not named |
| Salesforce | – not named | 6 (to avoid) | – not named |
| Streak | – not named | – not named | 5 |
| Folk | – not named | – not named | 6 |
All three name Attio, HubSpot and Pipedrive, but not in the same order, and after those three the lists split. They barely share sources either: ChatGPT and the AI Overview cite no site in common, and AI Mode shares only attio.com and hubspot.com with ChatGPT. Watching one surface tells you little about the others.
ChatGPT citations and sources
When ChatGPT searches the web, it cites the pages it read, and those pages decide which brands it names. In our study of 2,381 answers to 300 software buyer questions, ChatGPT cited 10 sources per answer on average, led by zapier.com, itechguides.com, rankite.com, dupple.com and techradar.com. It almost never cited YouTube or Reddit (YouTube once and Reddit 3 times in 5,986 citations), while Google's AI Overviews cited YouTube in 85% of their answers.
The API returns every citation in the order ChatGPT gave it, with the page title and a source_type, so you can see at a glance whether a brand is named because of its own site, a review site, Reddit or the press.
- Position is the order ChatGPT cited the page in, starting at 1.
- Domain and title tell you exactly which page it was.
- Source type groups pages the same way for every engine, so you can compare ChatGPT with Google AI Overviews and AI Mode.
Read the full study: what AI engines cite when buyers ask what to buy.
Track brand mentions in ChatGPT over time
ChatGPT searches and samples every time it answers. In our study it never cited exactly the same set of sites twice for the same question (0 of 298), so one check is a sample of one, and a ChatGPT rank tracker has to ask repeatedly and count. Create a project with a brand, its competitors and its buyers' questions, put it on a daily or weekly schedule, and read:
GET /v1/projects/{id}/visibility: how often ChatGPT names the brand, with error bars.GET /v1/projects/{id}/competitors: each competitor's share of the answers.GET /v1/projects/{id}/sources: the sites ChatGPT cites for those questions.GET /v1/projects/{id}/history: all of it over time, by day or week.
Add a webhook and your server hears when each run is done. To check one product by hand instead, see how to check if ChatGPT recommends your product.
Call the ChatGPT API from TypeScript or Python
The SDKs wrap the same request, retry safely without charging twice, and wait for the answers for you. Free sandbox keys (aiv_test_…) return realistic sample answers, so you can build the whole feature before spending a credit.
TypeScript (npm install @aivisibilityskill/sdk)
import { Aiv } from "@aivisibilityskill/sdk";
const aiv = new Aiv({ apiKey: process.env.AIV_KEY! });
const job = await aiv.checks.create({
questions: ["best CRM for early-stage startups"],
engines: ["chatgpt"],
locale: "en-US",
});
const done = await aiv.jobs.wait(job.id);
for (const answer of done.answers ?? []) {
console.log(answer.brands?.map((b) => `${b.rank}. ${b.name}`));
console.log(answer.citations?.map((c) => c.domain));
}Python (pip install aivisibilityskill)
import os
from aivisibilityskill import Aiv
aiv = Aiv(api_key=os.environ["AIV_KEY"])
job = aiv.checks.create(
["best CRM for early-stage startups"],
engines=["chatgpt"],
locale="en-US",
)
done = aiv.jobs.wait(job["id"])
for answer in done["answers"]:
print([(b["rank"], b["name"]) for b in answer["brands"]])
print([c["domain"] for c in answer["citations"]])For thousands of questions, send them as one batch of up to 20,000 answers and get one webhook when it's done. Full guides: SDKs, API reference, OpenAPI 3.1 spec.
ChatGPT API pricing
You pay per answer, in credits. Pick the speed per request. A dollar buys 1,000 credits on a pack; monthly and volume plans include more. An answer reused from a recent identical one (max_age_hours) costs half, and an answer that fails costs nothing.
| Speed | Ready | Credits | Pay as you go | Business and Enterprise plans | Reused answer |
|---|---|---|---|---|---|
| Batch | Within a few hours | 11 | $0.011 | $0.0069 | 6 credits |
| Standard | Within minutes | 15 | $0.015 | $0.0094 | 8 credits |
| Live | Usually under a minute | 25 | $0.025 | $0.0156 | 13 credits |
Every account gets the same API and every engine, starting with 500 free credits and no card. Volume plans start at $500 a month for 750,000 credits, with invoicing and a 99.5% uptime commitment: see volume plans.
Countries and languages
Ask ChatGPT from 192 countries and territories, in the buyer's language, with a locale like en-US, de-DE, pt-BR or ja-JP. Google AI Overviews, AI Mode and Gemini cover 240. GET /v1/locales lists every supported pair for free, and a pair that isn't supported is refused before anything is charged.
Questions
What is a ChatGPT scraper API?
An API that asks ChatGPT a question the way a person would in the ChatGPT app and returns the answer as data. aivisibilityskill's returns the answer text, the brands it names in order, every citation with its source type, and the raw response as proof.
Does it return what users see in ChatGPT, or the OpenAI API's answer?
What users see: the ChatGPT app's answer, with web search on. The OpenAI API gives a model's reply to a developer, which isn't what buyers read on chatgpt.com.
Does it include ChatGPT's citations and sources?
Yes. Every citation comes back in the order ChatGPT gave it, with the URL, domain, page title and a source type such as review_site, media, reddit or brand_owned.
Can I see which brands ChatGPT recommends?
Yes. Each answer lists every brand it names, in order of first mention, whether ChatGPT recommends it, the sentiment, and the exact words it used. Facts it states, like prices and plans, come back too.
How much does the ChatGPT API cost?
11 credits for a batch answer, 15 for standard and 25 for live. That's $0.011 to $0.025 at pay-as-you-go rates and about $0.007 to $0.017 on volume plans. A recent identical answer reused with max_age_hours costs half. Failed answers are never charged.
How fast is it?
Live answers usually arrive in under a minute, standard ones within minutes, and batch ones within a few hours. You choose per request.
Can I track my brand in ChatGPT every week?
Yes. Put the questions in a project with a weekly or daily schedule. The API returns how often ChatGPT names the brand, with error bars, competitor share, cited sources and history, and a webhook tells you when each run is done.
Can I run it for many customers?
Yes. Tag each check with your customer id, read usage per customer, lock keys to one customer, and send up to 20,000 answers in one batch request.