Best ChatGPT scraper APIs: answers and citations as JSON
To get what ChatGPT tells users, with the pages it cites, as JSON, there are three routes: a scraper API that collects and parses the consumer answer, OpenAI’s developer API with its web search tool, or your own collector. Only the first and third return the consumer answer. Scraper APIs differ in which parts of the answer they parse (citations, the searches ChatGPT ran, shopping cards, ads), how you target a market, and how you pay.
Facts about each vendor come from its own public pages, linked and checked on 2026-09-17. Re-check prices before you commit.
Comparison
| Option | Engines beyond ChatGPT | Citations / sources | Search fan-out | Shopping / products | Geo | Pricing model and entry price (checked 2026-09-17) |
|---|---|---|---|---|---|---|
| Bright Data ChatGPT Scraper | Google AI Mode, Perplexity, Gemini, Copilot | Citations, links attached | web_search_triggered flag; fan-out documented separately |
“Recommendations”, shopping detection | Country | Per record: 5K free records/month, $1.50/1K pay as you go, Scale $499/month with 384,000 records |
| DataForSEO LLM Scraper | Gemini (scraper); LLM Responses API for model APIs | sources, search_results |
fan_out_queries |
chat_gpt_products items, brand_entities |
Location and language | Per results page: $0.0012 standard, $0.0024 priority, $0.004 live; $50 minimum top-up |
| Oxylabs Web Scraper API | Perplexity, Gemini, Google AI Mode | citations, links |
search_queries |
shopping_products, ads |
geo_location (country) |
Subscription: free trial up to 2,000 results; Micro $49/month, up to 98,000 results (pricing) |
| SearchApi ChatGPT API | Perplexity, Gemini, Bing Copilot, Google AI Mode, AI Overview | Reference links, inline citations by position | Web search queries | Entity cards, images (products not listed) | Location | Per search: 100 free requests; Developer $40/month for 10,000 ($4/1K) (pricing) |
| Apify ChatGPT Search Scraper | Separate actors for Gemini, Perplexity, AI Mode | sources |
queryFanOut |
widgets |
Not stated on the actor page | Pay per event: from $3.00/1,000 searches; Apify free plan $5/month credit |
| ScrapingBee ChatGPT API | Gemini endpoint listed | Not guaranteed (“not able to return citations 100% of the time”) | Not documented | Not documented | country_code |
Credits: 15 per request; 1,000 free credits; Hobby $19/month, 75,000 credits (pricing) |
| AnswerLine | Perplexity, Gemini, Copilot, Grok, Google AI Mode, Google Search with AI Overview, Google News | sources[] with position, citationPills[] |
searchQueries[] (opt-in) |
shoppingCards[], inlineProducts[], ads[] (opt-in) |
country, US state |
Credits: 5 per ChatGPT task, +2 once for add-ons; free tier 500 credits/month (pricing) |
| OpenAI API + web_search | Not applicable | url_citation annotations, sources list |
Search actions with queries | None described | user_location country, city, region |
$10 per 1,000 web search calls plus search content tokens at model rates (pricing) |
| Build it yourself | Whatever you build | Whatever you parse | Only if you capture it | Whatever you parse | Your own infrastructure | Engineering time plus infrastructure |
Two terms used below:
- Citation: a source the answer links to, in the order the interface shows it. A mention is a brand named in the text without a link. See mentions vs citations.
- Query fan-out: the rewritten web searches ChatGPT runs before answering; its cited sources come from what those searches return. See query fan-out.
What to measure first
Decide the metrics before comparing vendors. Each depends on a specific part of the response:
- Mention rate: does the answer name your brand? Needs clean answer text, which every option provides.
- Citation share: is your domain among the sources, and at what position? Needs a sources array in display order, not URLs pulled out of the markdown.
- Retrieval analysis: which searches fed the answer? Needs the fan-out queries. Without them you see which pages won but not on which query.
- Commerce visibility: did a product card show your SKU, at what price, from which merchant? Needs parsed shopping blocks.
- Market variation: does the answer differ in Germany, or in Texas? Needs country, and sometimes sub-country, targeting.
For the first metric almost any option works, including a cheap actor. Metrics three to five narrow the list to a few vendors.
The options
Bright Data ChatGPT Scraper
Bright Data sells AI scrapers as part of its Web Scraper API. Its product page lists ChatGPT output fields including prompt, answer HTML, answer text, links attached, citations, recommendations and country, with sibling scrapers for Google AI Mode, Perplexity, Gemini and Bing Copilot. Its AI scrapers documentation says ChatGPT supports citations, follow-up prompts and detection of shopping and map results, and takes a web_search input with a web_search_triggered output confirming whether a search ran. The same page marks Grok as currently unavailable.
A synchronous /scrape call handles up to 20 inputs and returns HTTP 202 with a snapshot_id if it times out; an asynchronous /trigger handles large jobs, with delivery by API, webhook or cloud storage.
Pricing (checked 2026-09-17): 5K records a month free, $1.50 per 1K records pay as you go, a Scale plan at $499 a month with 384,000 records and $1.30 per 1K beyond. Only successfully delivered records are billed.
Each engine is a separate scraper with its own output fields, so you write a mapping per engine, and async jobs return snapshots you collect later.
Fits data teams already on Bright Data, or buyers who want bulk datasets delivered to storage.
DataForSEO LLM Scraper
DataForSEO’s AI Optimization API contains four products; two are relevant. LLM Scraper collects ChatGPT and Gemini results as users see them. LLM Responses calls the official model APIs of ChatGPT, Gemini, Claude and Perplexity, which measures something different (see the OpenAI section below).
The ChatGPT LLM Scraper live advanced endpoint takes a keyword, a location, a language and an optional force_web_search, and returns markdown, sources (the references cited), search_results (everything retrieved), fan_out_queries, brand_entities, and typed items including chat_gpt_products, chat_gpt_local_businesses and chat_gpt_ad.
Pricing (checked 2026-09-17): per results page, $0.0012 in the standard queue (up to 45 minutes), $0.0024 in the priority queue (up to 5 minutes), $0.004 live (up to 90 seconds). The AI optimization page states a $50 minimum top-up and that credits never expire; new accounts get $1 of trial credit.
It has the lowest list price per answer on this page, with fan-out, brand entities and products in the schema. The scraper side covers two engines. The cheapest price is a queue with turnaround in minutes, and live use costs about three times as much. The response follows DataForSEO’s SERP-style item model (rank_group, rank_absolute), which suits SEO tooling and needs mapping elsewhere.
Fits SEO platforms already built on DataForSEO that want ChatGPT and Gemini data at the lowest unit price and can tolerate queue latency.
Oxylabs Web Scraper API
The ChatGPT target docs describe source: "chatgpt" with a prompt (under 4,000 characters), search: true for web search (default false), geo_location for the country, and parse: true for structured output. Parsed fields: response_text, markdown_text, markdown_json, citations, search_queries, links, shopping_products, ads and llm_model. Results use Oxylabs’ push-pull model with an optional callback_url, and separate targets exist for Perplexity, Gemini and Google AI Mode.
Pricing (checked 2026-09-17, pricing page): a free trial of up to 2,000 results; Micro is $49 a month for up to 98,000 results. The page lists per-1K rates by target type, with JavaScript results at $1.35 per 1K on Micro; the ChatGPT docs say JavaScript rendering is on by default for all LLM sources, so confirm which rate applies before modelling cost.
Fan-out, citations, products and ads come in one parsed result, with callbacks. Web search is off unless you set search, which changes what you measure if you forget it. Plans are subscriptions with rates that vary by target.
Fits teams already using Oxylabs for other scraping who want AI engines under the same contract.
SearchApi
SearchApi’s ChatGPT API, per its page, returns the reply as Markdown and typed text blocks, reference links with title, URL, source, snippet and publish date, inline citations mapped by character position, the web search queries ChatGPT ran, and entity cards. It also lists Perplexity, Gemini, Bing Copilot, Google AI Mode and Google AI Overview APIs.
Pricing (checked 2026-09-17, pricing): 100 free requests; Developer is $40 a month for 10,000 searches ($4 per 1K), falling to $1 per 1K at the 5M tier. The ChatGPT page says you pay only for successful answers.
Requests are simple GETs at a flat per-search price, with fan-out and positional citations. The ChatGPT page does not describe shopping cards or ads, and tiers commit you to a monthly volume.
Fits teams already using SearchApi for Google results who want ChatGPT under the same key.
Apify Store actors
Apify is a marketplace, so “ChatGPT scraper” covers several actors with different owners and prices. Apify’s own ChatGPT Search Scraper returns text, sources, queryFanOut and widgets (such as product listings), priced from $3.00 per 1,000 searches per event, lower on higher Apify subscriptions. Community actors exist too; Korado Labs’ ChatGPT Search Scraper charges $0.15 per answer and adds brand mention checks. Apify’s free plan includes $5 of monthly platform credit; Starter is $19 a month.
Actors are quick to try from a UI, integrate with Zapier, Make and Google Sheets, and bill per result. Each actor has its own schema, maintainer and failure modes, so switching actors means remapping fields, and prices vary widely: the two ChatGPT actors above are $3.00 and $150.00 per 1,000 answers.
Fits prototypes, one-off studies and no-code teams.
ScrapingBee ChatGPT API
ScrapingBee’s ChatGPT API returns results_markdown, results_text, results_json and llm_model, with search=true for web search and country_code for geolocation. Its documentation says it is “not able to return citations 100% of the time”, and citations, when present, appear in the markdown or HTML rather than a dedicated sources array.
Pricing (checked 2026-09-17): 15 credits per successful call; 1,000 free trial credits; Hobby is $19 a month for 75,000 credits, or 5,000 ChatGPT calls.
It is convenient if you already use ScrapingBee. The documentation has no structured sources, fan-out or shopping fields, so citation share needs your own parsing and will have gaps.
Fits collecting answer text for qualitative review rather than citation measurement.
AnswerLine
AnswerLine has one endpoint per engine. POST /v1/monitor/chatgpt takes a prompt and a country and returns the ChatGPT answer parsed into fields.
curl -X POST https://api.answerline.dev/v1/monitor/chatgpt \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "What is the best CRM for a 20-person agency?",
"country": "US",
"include": { "markdown": true, "searchQueries": true, "shopping": true }
}'
Fields under result, per the API reference:
textand, when requested,markdown.sources[]: each withposition,url,label,description,datePublished, andfootnotefor sources that appear only in the sources list.citationPills[]: the inline citation chips, one entry per pill-and-source pair, grouped bycitationPillId.searchQueries[]: the query fan-out, wheninclude.searchQueriesis true.shoppingCards[]andinlineProducts[]: products with price, merchant, rating and offers, wheninclude.shoppingis true.ads[]: sponsored units with arenderedflag, wheninclude.adsis true.entities[]andmap[].
Web search is forced by default; disableWebSearch: true returns the answer ChatGPT gives on its own, where sources and searchQueries are often empty. state takes a two-letter US state code with country: "US".
A ChatGPT task costs 5 credits. Enabling any of rawResponse, searchQueries, ads or shopping adds 2 once, however many you turn on, and synchronous calls add 2. markdown and html are free. The free tier grants 500 credits a month with no card, plan prices are on /pricing, and failed requests are not charged (credits).
Commerce blocks, citation pills and fan-out come in one response, with the same request and response conventions across ChatGPT, Perplexity, Gemini, Copilot, Grok, AI Mode and Google Search. Async batches take up to 500 tasks with webhooks and idempotency keys. Credits are per request, so a very large one-off census costs more than the cheapest per-page queues above.
Fits teams building AI-visibility, GEO or commerce products that need the parsed answer across several assistants.
OpenAI’s API with web search
OpenAI’s web search tool (web_search in the Responses API) returns url_citation annotations with the URL, title and location of each cited source, a sources list of every URL retrieved, and the search actions with their queries, and it accepts a user_location with country, city, region and timezone. Pricing is $10 per 1,000 calls plus search content tokens at model rates.
It is the right tool for generating answers inside your own application and the wrong one for measuring what ChatGPT tells people:
- You pick the model, instructions and tool settings, so the output describes your configuration, not the app a buyer uses.
- The guide does not describe shopping cards, product carousels or ads, where commerce visibility is decided in the app.
- Citation presentation (which sources are grouped in which inline chip, in what order) is an interface decision the API does not replicate.
The provider APIs comparison goes through the differences field by field.
Building it yourself
A home-grown collector means sessions, per-market network egress, a queue, a parser for the answer, retries, and monitoring for the day the interface changes. The build vs buy breakdown itemizes the cost. Build only if collection is your product, or if you need something no vendor offers, such as logged-in personas with memory.
How to choose
- Do you need the consumer answer? For visibility measurement, yes, which rules out model APIs.
- Which fields will you compute on? Citation share needs ordered sources, retrieval analysis needs fan-out, commerce needs parsed products. Check each vendor’s schema for the exact field.
- How many engines? If Perplexity, Gemini, Copilot and Google AI surfaces are on your roadmap, one contract across them saves a mapping layer per engine.
- What latency can you accept? Queues are cheapest. Daily monitoring rarely needs live calls; agents and interactive tools do.
- How do you target markets? Country is common; city, state or coordinates are not.
- What happens on failure? Look for success-only billing, idempotency and webhooks. A daily job that double-runs or drops tasks corrupts trend lines.
- Price at your volume with your flags: prompt count × markets × frequency, including add-ons.
Cost example
200 prompts, one market, collected daily for 30 days, with citations and fan-out: 6,000 ChatGPT answers a month. List prices checked 2026-09-17, before taxes, volume discounts and coupons:
| Option | How it’s billed | Monthly cost for 6,000 answers |
|---|---|---|
| DataForSEO LLM Scraper, standard queue | $0.0012 per results page | $7.20 (live mode at $0.004: $24.00), $50 minimum top-up |
| Bright Data, pay as you go | $1.50 per 1K records | $9.00 |
| Apify ChatGPT Search Scraper | from $3.00 per 1K | $18.00 plus any plan fee above the $5 free credit |
| SearchApi Developer | $40/month for 10,000 searches | $40.00 (fits the plan) |
| Oxylabs Micro | $49/month, up to 98,000 results | $49.00 (fits the plan) |
| ScrapingBee | 15 credits per call | 90,000 credits, more than Hobby’s 75,000 |
| OpenAI web_search (not the consumer answer) | $10 per 1K calls + tokens | $60.00 plus model and search content tokens |
| AnswerLine | 5 credits + 2 for searchQueries, async |
42,000 credits; compare with plan allowances on /pricing |
The cheapest line is not necessarily the cheapest system once you add the engineering time to normalize each vendor’s schema, the cost of a missed day when a queue backs up, and a possible second vendor for the next engine. Budgeting across engines and cadences is covered in AI monitoring cost planning.
Daily ChatGPT collection on AnswerLine
For a daily prompt set, submit async tasks in batches and receive results on a webhook:
import os, datetime, requests
API = "https://api.answerline.dev"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}
today = datetime.date.today().isoformat()
prompts = ["best CRM for agencies", "HubSpot vs Pipedrive for small teams"]
tasks = [
{
"taskType": "CHATGPT",
"payload": {"prompt": p, "country": "US", "include": {"searchQueries": True}},
"idempotencyKey": f"crm-{i}-US-{today}",
"webhook": {"url": "https://example.com/hooks/answers"},
}
for i, p in enumerate(prompts)
]
r = requests.post(f"{API}/v1/async/task/batch", json=tasks, headers=HEADERS, timeout=30)
r.raise_for_status()
for item in r.json()["results"]:
if not item["success"]:
print(item["index"], item["error"]["code"])
Each finished task is POSTed to the webhook; for a COMPLETED task the ChatGPT result is at response.result. Idempotency keys derived from prompt, market and day make a retried submission safe. Verify the webhook signature before trusting the body.
Pitfalls that skew ChatGPT data
- Web search off by default. Some APIs only search when asked. An answer without search has no citations, and a mixed dataset makes citation share meaningless.
- One run per prompt. ChatGPT answers vary run to run, so track rates over repeated runs; see AI answer volatility.
- Treating markdown links as citations. Links pulled from text lose display order and grouping. Use the structured sources.
- Ignoring commerce blocks. In product categories the carousel can matter more than the prose; see ChatGPT shopping cards.
- Assuming every field is always filled. Optional fields such as fan-out can be empty for a given answer; store which fields were present with each result.
Field-by-field detail is on the ChatGPT engine page, and the quickstart covers a first request.
Questions
Can I get ChatGPT's consumer answers through the OpenAI API?
No. The OpenAI API returns a completion from the model and settings you choose, optionally with its web_search tool. It does not return the answer the ChatGPT app shows a user, and OpenAI's web search guide does not describe shopping cards or ads.
Which fields matter most in a ChatGPT scraper response?
The answer text, the cited sources in display order, the search queries ChatGPT ran (query fan-out), and product or shopping blocks. Without those four you can measure mentions but not citations, retrieval or commerce visibility.
How much does a ChatGPT answer cost to collect?
List prices checked on 2026-09-17 include $0.0012 per results page (DataForSEO LLM Scraper, standard queue), $1.50 per 1,000 records (Bright Data pay as you go) and 15 credits per request (ScrapingBee). An AnswerLine ChatGPT task costs 5 credits, plus 2 once if you add fan-out, ads, shopping or the raw response.
Do ChatGPT scrapers support country targeting?
Most do at country level: Bright Data, Oxylabs (geo_location), ScrapingBee (country_code) and DataForSEO (location and language) all document it. AnswerLine takes a country code and, for the US, a two-letter state.
Should I build my own ChatGPT scraper?
Only if collection itself is your product. You would own sessions, proxies, interface changes and parser drift, and the ChatGPT interface can change without notice. Compare that maintenance time with per-answer vendor fees at your volume.