ScraperAPI vs AnswerLine
ScraperAPI added structured endpoints for ChatGPT, Perplexity, Gemini and Google AI Mode next to its Google Search and News endpoints, billed in credits on monthly plans. This API serves ChatGPT, Gemini, Copilot, Google AI Mode, Google Search and Google News, with engine-specific fields for each.
Coverage
| ScraperAPI | AnswerLine | |
|---|---|---|
| ChatGPT | Yes, structured ChatGPT endpoint: answer as markdown, sources, related queries, model. | Yes, POST /v1/monitor/chatgpt. |
| Perplexity | Yes, structured Perplexity endpoint: the same fields. | Paused, coming back soon. |
| Gemini | Yes, structured Gemini endpoint: the same fields. | Yes, POST /v1/monitor/gemini. |
| Microsoft Copilot | No endpoint listed in ScraperAPI's public docs (checked 2026-09-17). | Paused, coming back soon. |
| Grok | No endpoint listed in ScraperAPI's public docs (checked 2026-09-17). | Paused, coming back soon. |
| Google AI Mode | Yes, structured Google AI Mode endpoint. | Yes, POST /v1/monitor/aimode. |
| Google AI Overview | No AI Overview field in ScraperAPI's Google SERP endpoint docs (checked 2026-09-17). | Supported by the API. +35 credits, added once per request. |
| Google Search | Yes, Google SERP structured endpoint: organic results, shopping items, related questions and searches. | Supported by the API. |
| Google News | Yes, Google News structured endpoint. | Supported by the API. |
ScraperAPI's plans
| Plan | Monthly | API credits | Concurrent threads | Geotargeting |
|---|---|---|---|---|
| Hobby | $49 | 100,000 | 20 | US & EU only |
| Startup | $149 | 1,000,000 | 50 | US & EU only |
| Business | $299 | 3,000,000 | 100 | Country-level |
| Scaling | $475 | 5,000,000 | 200 | Country-level |
| Professional | $975 | 10,500,000 | 300 | Country-level |
| Advanced | $1,975 | 21,500,000 | 500 | Country-level |
Price per request
| Request | AnswerLine credits | AnswerLine price | ScraperAPI |
|---|---|---|---|
| ChatGPT | 7 | $0.001 | 25 credits, $0.0123 ($0.0025); 75 with sources |
| Perplexity (paused, coming back soon) | 56 | $0.006 | 25 credits, $0.0123 ($0.0025) |
| Gemini | 5.6 | $0.001 | 25 credits, $0.0123 ($0.0025) |
| Microsoft Copilot (paused, coming back soon) | 90 | $0.009 | No endpoint listed |
| Grok (paused, coming back soon) | 56 | $0.006 | No endpoint listed |
| Google AI Mode | 70 | $0.007 | 25 credits, $0.0123 ($0.0025) |
| Google AI Overview | 70 | $0.007 | No AI Overview field documented |
| Google Search | 35 | $0.004 | SERP requests listed at 25 credits |
| Google News | 35 | $0.004 | SERP requests listed at 25 credits |
How requests, geo, billing and delivery work
| ScraperAPI | AnswerLine | |
|---|---|---|
| Parsing depth | AI endpoints return the same normalized fields for every engine: answer as markdown, sources, related queries and model, with raw HTML optional. Google SERP: organic results, shopping items, related questions and searches. | One JSON schema per engine in the OpenAPI document. Assistants: answer text, markdown and sources, plus the engine-specific fields each schema defines. Google Search: organic results, ads, People Also Ask, local pack, knowledge graph and the AI Overview. Google News: the news results with their source, date and position. |
| Geo targeting | Google SERP, News and AI Mode: country_code, tld, hl, gl and uule; Hobby and Startup plans are limited to US and EU. No geo parameter is documented for ChatGPT, Perplexity or Gemini (checked 2026-09-17). | country on every engine: ChatGPT, Gemini, AI Mode and Google Search answer from 213 countries, Copilot takes any country, and Google News the 71 countries with a Google News edition. Google Search and AI Mode also take a city, and Gemini a US state. |
| Billing on failures | Charged for 200 and 404 responses; not for a request that fails after 70 seconds of retrying. | A failed request or task is not charged, and neither is a queued task you clear before it starts. |
| Async and webhooks | Async endpoints with a webhook callback, tried 3 times, plus DataPipeline for scheduled jobs. | Synchronous monitor calls, or async tasks and batches with idempotency keys, polled or delivered to a signed webhook with up to 10 delivery attempts. |
Where ScraperAPI fits
- One plan covers any URL plus structured endpoints for Amazon, eBay, Walmart, Redfin and Google Jobs, Shopping and Maps.
- DataPipeline runs recurring jobs of up to 100,000 inputs without code and delivers to a webhook.
- Self-serve plans go up to 500 concurrent threads.
This API fits when you want engine-specific fields, async tasks, and signed webhooks with idempotency keys. The guide below compares the two requests.
Which fits your data
ScraperAPI is the right call if you already use it to scrape e-commerce, real estate or arbitrary pages and its four AI endpoints return the fields you store: an answer as markdown and a source list. Its DataPipeline also schedules recurring jobs without code.
This API is the right call if you need citations and inline citation pills as fields, ChatGPT’s shopping cards, the Google AI Overview, Copilot answers, and signed webhooks with idempotency keys. Its Perplexity and Grok endpoints are paused for now and coming back soon.
Normalized vs engine-specific schemas
ScraperAPI’s AI Results endpoints return one normalized shape for every engine: query, url, model, answer (markdown), sources[] with title, URL, domain and snippet, and related_queries[] (checked 2026-09-17, docs.scraperapi.com). The same docs offer raw HTML with include_html for anything outside those fields.
This API returns one schema per engine. The shared core (text, markdown, sources) has the same names, and each engine’s schema adds its own fields, such as shoppingCards on ChatGPT.
Migration: a ChatGPT answer with sources
On ScraperAPI
curl "https://api.scraperapi.com/structured/chatgpt/search/v1?api_key=$SCRAPERAPI_KEY&query=best+CRM+for+real+estate+agents&sources=true"
Per its docs, sources=true makes citations a condition of a successful response and raises the cost from 25 to 75 credits; without it, sources are often empty for ChatGPT.
On this API
curl -X POST https://api.answerline.dev/v1/monitor/chatgpt \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "best CRM for real estate agents",
"country": "US",
"include": { "markdown": true }
}'
Web search is forced by default on this API’s ChatGPT requests, and there is no separate flag or price for asking for sources. Set disableWebSearch: true only when you want to measure what ChatGPT answers without being pushed to search.
Where each field goes
| ScraperAPI AI Results | This API ChatGPT result |
|---|---|
answer |
result.markdown (with include.markdown), result.text |
sources[] title, url, domain, snippet |
result.sources[] label, url, description, position; result.citationPills[] domain |
related_queries[] |
no equivalent |
model |
result.model |
query |
your prompt |
Google Search: adding the AI Overview
On ScraperAPI
curl "https://api.scraperapi.com/structured/google/search?api_key=$SCRAPERAPI_KEY&query=crm+for+realtors&country_code=us&tld=com"
The documented keys are search_information, shopping_items, organic_results, related_questions, related_searches and pagination.
On this API
import os, requests
r = requests.post(
"https://api.answerline.dev/v1/monitor/google",
headers={"Authorization": f"Bearer {os.environ['API_KEY']}"},
json={
"query": "crm for realtors",
"country": "US",
"include": {"aioverview": {"markdown": True}},
},
timeout=330,
)
result = r.json()["result"]
for s in (result.get("aioverview") or {}).get("sources", []):
print(s["position"], s["url"])
Beyond the AI Overview, the response adds ads, localResults, knowledgeGraph, peopleAreSaying and shoppingCards next to organicResults, peopleAlsoAsk and relatedSearches.
Async jobs and callbacks
ScraperAPI’s async structured endpoints take a JSON body with apiKey, the query and a callback of type webhook; the reply includes a statusUrl, and its docs say a webhook is tried three times before the job is canceled.
This API’s equivalent:
import { Client } from "@answerline/sdk";
const client = new Client({ apiKey: process.env.API_KEY!, baseUrl: "https://api.answerline.dev" });
const prompts = ["best CRM for real estate agents", "Follow Up Boss vs kvCORE"];
const batch = await client.createBatch(
prompts.flatMap((prompt, i) =>
(["CHATGPT", "GEMINI"] as const).map((taskType) => ({
taskType,
payload: { prompt, country: "US" },
idempotencyKey: `crm-${i}-${taskType}-US-2026-09-17`,
webhook: { url: "https://your-app.com/hooks/answers" },
})),
),
);
console.log(batch.summary);
Differences to plan for:
- Delivery retries. Here a delivery is retried up to 10 attempts with exponential backoff, and owners can redeliver a dead delivery from the dashboard after fixing an endpoint.
- Signatures. Every delivery is signed with your account’s secret. Reject unsigned or stale deliveries.
- Keys. The idempotency key makes resubmission safe; ScraperAPI’s async docs list no equivalent (checked 2026-09-17).
- Queue visibility.
GET /v1/async/statusshows queued and running counts;DELETE /v1/async/queueclears tasks that haven’t started, and those are not charged.
What each side costs
ScraperAPI’s credit value depends on the plan: the same 25-credit request costs roughly five times more per request on Hobby than on Business, as the table above shows. Its sources=true flag triples the ChatGPT cost. This API’s credits per request are 7 for a ChatGPT and 90 for a Copilot task, 5.6 for Gemini, 70 for Google AI Mode, 35 for a one-page Google Search request (plus 35 for the AI Overview) and 35 for a one-page Google News request; synchronous calls add 6.7, and 35 more per results page on Google Search and Google News. Credits per request are the same on every plan; the dollar value of a credit depends on the plan, as listed on pricing.
- Decide whether you need citations on every ChatGPT answer. If yes, price ScraperAPI at 75 credits.
- Check the geotargeting limit on the ScraperAPI plan you’d buy: Hobby and Startup are US and EU only.
- Convert both to dollars per answer per engine, at the plan your total volume needs.
- Price engines one side lacks separately instead of dropping them.
Testing both before you move the schedule
Collect from both for a week or two, into one table with a provider column.
- Choose prompts for engines both sides cover.
- Decide once whether your ScraperAPI ChatGPT baseline uses
sources=true; the answer changes both cost and what counts as success. - Submit the same prompts here as tasks with webhooks, in the markets your ScraperAPI plan allows, deriving each key from prompt, engine, market and date.
- Store both in one table with provider, engine, market, answer text, cited domains and status.
Three comparisons come out of that table:
- Answers with sources: the share of answers with at least one source on each side, with the
sourcessetting noted. - Cited domains overlap per prompt, next to the same prompt’s overlap between two days on one side.
- Cost per usable answer on the plan each side needs for your volume and markets.
Move the engines whose fields you already store, and leave Google on ScraperAPI until you have decided what an aioverview column does to your reports. ScraperAPI’s SERP docs list no counterpart, so it is a new metric to define rather than a migrated one, and mixing those two changes in the same week makes both hard to read.
Where retries live now
ScraperAPI charges for 200 and 404 responses, retries internally for up to 70 seconds, and does not charge a request that still fails after that. The retrying is invisible to your client, which sees one slow call. Here it happens inside a task: you get a task id immediately, transient failures are retried within the task’s own window, and only a COMPLETED task is charged (async tasks).
The timeout you tune therefore moves from the HTTP client to the schedule. Synchronous calls still fail fast with a code you can branch on; the codes are on authentication and errors, and rate limits covers the concurrency limit a synchronous call runs into first.
Deciding factors
- Citations and pills as fields? This API.
- AI Overview from Google? Not in ScraperAPI’s SERP endpoint docs (checked 2026-09-17); returned by our Google Search endpoint.
- Markets beyond US and EU on an entry plan? This API offers the same markets on every plan: 213 countries on ChatGPT, Gemini, Google Search and Google AI Mode, any country on Copilot, and the 71 countries with a Google News edition on Google News.
- Other scraping needs? Keep ScraperAPI for them.
What to watch for
- Treating an empty
sourcesas zero visibility. ScraperAPI’s own docs say sources are often empty withoutsources=true. Whichever API you use, store empty source lists together with the request settings, such as whether web search was disabled, so a zero can be interpreted later. - Mixing related queries and search queries. ScraperAPI’s
related_queriesare follow-up suggestions;searchQuerieshere is the field for searches the engine ran, and it comes back empty on the ChatGPT answers served today. They measure different things. - Carrying API keys in URLs. Header auth here; rotate keys that were logged in query strings.
- Unbounded retries. Retry a synchronous call only when it never reached the server; a
500or502from it is final. See authentication and errors.
The ChatGPT engine page documents the answer and citation fields; the quickstart gets a key working.
ScraperAPI is a trademark of its owner. AnswerLine is not affiliated with or endorsed by ScraperAPI.
Questions
Does ScraperAPI have a ChatGPT endpoint?
Yes. As checked on 2026-09-17, ScraperAPI's docs list structured endpoints for ChatGPT, Perplexity, Gemini and Google AI Mode. The ChatGPT endpoint costs 25 credits, or 75 with sources=true, and returns the answer as markdown, sources, related queries and the model.
Does ScraperAPI return Google AI Overviews?
Its Google SERP structured endpoint documentation, checked 2026-09-17, lists search information, shopping items, organic results, related questions, related searches and pagination, with no AI Overview field. This API's Google Search endpoint returns result.aioverview with sources and citation pills when include.aioverview is set.
Can I target a country on ScraperAPI's AI endpoints?
Its Google SERP, News and AI Mode endpoints take country_code and tld; its ChatGPT, Perplexity and Gemini docs list no geo parameter (checked 2026-09-17). Its Hobby and Startup plans are limited to US and EU geotargeting. On this API, ChatGPT, Gemini, Google Search and Google AI Mode answer from 213 countries, and Gemini also takes a US state; Copilot takes any country, and Google News the 71 countries with a Google News edition.
What does ScraperAPI charge for?
Its docs say it charges for 200 and 404 responses and not for a request that fails after 70 seconds of retrying. This API does not charge a failed request or task.
How do I migrate a ScraperAPI async job with a webhook?
Replace the POST to async.scraperapi.com with POST /v1/async/task, move query and parameters into payload, and replace callback with webhook.url. Deliveries here carry the finished result and are signed, so verify the Webhook-Signature header before storing them.