AnswerLineStart free

Compare

Apify vs AnswerLine

Apify publishes its own actors for ChatGPT, Perplexity, Gemini, Copilot, Google AI Mode, AI Overviews and Google Search, priced per event on top of a platform plan. This API is one request contract across AI assistants and Google, priced in credits.

Sources: apify.com/pricing (checked 2026-09-17), apify.com/apify/google-search-scraper (checked 2026-09-17), apify.com/apify/chatgpt-search-scraper (checked 2026-09-17), apify.com/apify/perplexity-search-scraper (checked 2026-09-17), apify.com/apify/gemini-search-scraper (checked 2026-09-17), apify.com/apify/microsoft-copilot-search-scraper (checked 2026-09-17), apify.com/apify/google-ai-mode-scraper (checked 2026-09-17), apify.com/apify/google-ai-overviews-scraper (checked 2026-09-17), docs.apify.com/api/v2/act-run-sync-get-dataset-items-post (checked 2026-09-17), docs.apify.com/platform/integrations/webhooks/ad-hoc-webhooks (checked 2026-09-17).

Coverage

ApifyAnswerLine
ChatGPTYes, Apify's ChatGPT Search Scraper actor: answer text, sources, query fan-out and widgets.Yes, POST /v1/monitor/chatgpt.
PerplexityYes, Perplexity Search Scraper actor: answer text and sources; images and related questions optional.Yes, POST /v1/monitor/perplexity.
GeminiYes, Gemini Search Scraper actor: answer and cited sources.Yes, POST /v1/monitor/gemini.
Microsoft CopilotYes, Microsoft Copilot Search Scraper actor.Yes, POST /v1/monitor/copilot.
GrokNo Apify-published actor; community actors only.Yes, POST /v1/monitor/grok.
Google AI ModeYes, Google AI Mode Scraper actor, or an add-on of the Google Search actor.Yes, POST /v1/monitor/aimode.
Google AI OverviewYes, Google AI Overviews Scraper actor, or an add-on of the Google Search actor.Supported by the API. +2 credits, added once per request.
Google SearchYes, Google Search Results Scraper actor.Supported by the API.
Google NewsNo Apify-published actor; community actors only.Supported by the API.

Apify's platform plans

As published on apify.com/pricing, checked 2026-09-17. Actor events are paid from the plan's prepaid usage; the plan sets the store price tier used below.

PlanMonthlyPrepaid usageStore price tier
Free$0$5No store discount
Starter$19$19Bronze
Scale$199$199Silver
Business$999$999Gold

Apify's event prices for these actors

Pay-per-event prices from the actors' store pages, checked 2026-09-17. On the Free plan each AI answer event is listed at $0.20.

EventStarter (Bronze)Business (Gold)
Google Search results page$0.0025$0.0018
Google Search run start$0.001$0.001
AI Overview$0.002$0.001
AI Mode answer$0.005$0.002
ChatGPT, Gemini or Copilot answer$0.005$0.003
Perplexity answer$0.013$0.009

Price per request

Apify figures are its Starter (Bronze) event price per answer, before run-start events. This API's dollar figure is its credits per request at the credit price of the lowest paid plan. Reference plan: Lite.

RequestAnswerLine creditsAnswerLine priceApify
ChatGPT5$0.003$0.005 (Business: $0.003)
Perplexity4$0.002$0.013 (Business: $0.009)
Gemini4$0.002$0.005 (Business: $0.003)
Microsoft Copilot5$0.003$0.005 (Business: $0.003)
Grok4$0.002No Apify-published actor
Google AI Mode4$0.002$0.005 (Business: $0.002)
Google AI Overview5$0.003$0.0025 per page + $0.002 per AI Overview
Google Search3$0.002$0.0025 per results page + $0.001 per run
Google News3$0.002No Apify-published actor

How requests, geo, billing and delivery work

ApifyAnswerLine
Parsing depthDataset items per actor: text and sources for AI answers (ChatGPT adds query fan-out and widgets); organic and paid results, People Also Ask and related queries for Google.One JSON schema per engine in the OpenAPI document. Assistants: answer text, markdown and sources, plus the engine-specific fields each schema defines. Google: organic results, ads, People Also Ask, local pack, knowledge graph and the AI Overview with its sources.
Geo targetingGoogle Search actor: country, search and interface language, UULE location and mobile results. The standalone ChatGPT, Gemini, AI Mode and AI Overview actors' input schemas take queries only.country on every engine; US state on ChatGPT, Perplexity, Gemini, Copilot and Grok; location, uule, hl and device on Google Search and AI Mode.
Billing on failuresAI answer events are charged when an answer is returned and Google pages when successfully scraped; run-start events are charged per run.A failed request or task is not charged, and neither is a queued task you clear before it starts.
Async and webhooksSynchronous run-and-get-items endpoint (408 after 300 s), or start a run with ad-hoc webhooks on run events such as succeeded, failed and timed out.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 Apify is stronger

Choose this API to measure AI answers across engines on a schedule, with one request schema, country and US state on every assistant, and per-task webhooks. The guide below covers the migration.

Which to pick

Pick Apify when AI answers are one input among many web data jobs you already run on its platform, when you want one Google Search run to carry AI Overview, AI Mode and assistant add-ons together, or when you need an actor for a site no search or AI API covers.

Pick this API when AI answers are the product input itself: a prompt set that runs across the AI assistants and Google Search, in specific countries or US states, on a schedule, with answers and sources in documented fields.

If you already run Apify for maps, social or e-commerce data, keep those actors and move only the AI answer jobs.

Actors versus endpoints

Apify is a platform for running programs. An actor is a packaged scraper with its own input schema, output dataset and pricing events. Running one means starting a run, waiting for it to finish and reading the dataset items it produced. Each engine is a separate actor maintained on its own schedule, with its own input fields: the Google Search actor takes countryCode, languageCode and locationUule; the standalone ChatGPT actor’s input schema takes queries and nothing else (checked 2026-09-17).

This API is a request/response contract. Each engine has one endpoint, POST /v1/monitor/<engine>, and one response schema documented in the OpenAPI document. The same request can run synchronously or as an async task, and every task can carry its own idempotency key and webhook. There is no run, dataset or actor version to manage.

  1. Unit of work. On Apify a run can hold many queries and its cost has a run-start event plus a per-answer event. Here one request is one answer, and its cost is known before you send it.
  2. Schema. Actor outputs are defined by each actor’s README and dataset. Here every engine’s fields are in one OpenAPI document.
  3. Markets. On Apify, geo options vary by actor. Here country is accepted by every engine, state by the five assistants, and location, uule, hl and device by Google Search and AI Mode.

Migration: the same job, two requests

The job: ask ChatGPT “best CRM for a 10-person agency” and store the answer and its sources.

On Apify

Apify’s API reference documents a synchronous endpoint that runs an actor and returns its dataset items. The body is the actor’s input; for the ChatGPT Search Scraper the input schema’s field is queries, a newline-separated string (checked 2026-09-17 on docs.apify.com and the actor’s input schema).

curl -X POST "https://api.apify.com/v2/acts/apify~chatgpt-search-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "queries": "best CRM for a 10-person agency" }'

The response is an array of dataset items, one per query, with query, text, sources, queryFanOut and widgets. Apify’s docs say a synchronous run that takes longer than 300 seconds returns a 408, after which you read the dataset of the still-running run.

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 a 10-person agency",
    "country": "US",
    "state": "NY",
    "include": { "markdown": true }
  }'

The response is { "success": true, "result": { ... } }. The fields you would have mapped from the actor output:

Apify ChatGPT actor This API
query the prompt you sent
text result.text (and result.markdown with include.markdown)
sources[] (title, url) result.sources[] (label, url, position, description)
queryFanOut result.searchQueries (with include.searchQueries)
widgets result.shoppingCards, result.inlineProducts, result.entities

The same request in TypeScript with the SDK:

import { Client } from "@answerline/sdk";

const client = new Client({ apiKey: process.env.API_KEY!, baseUrl: "https://api.answerline.dev" });

const { result } = await client.chatgpt({
  prompt: "best CRM for a 10-person agency",
  country: "US",
  include: { markdown: true },
});
for (const s of result.sources ?? []) console.log(s.position, s.url);

Replacing scheduled Apify runs

Most visibility pipelines don’t call one prompt at a time; they run a prompt set every day or week. On Apify that is typically a schedule that starts a run, plus an ad-hoc webhook on ACTOR.RUN.SUCCEEDED that tells your service to read the dataset.

Here the equivalent is a batch of async tasks with a webhook per task:

import os, requests

prompts = ["best CRM for a 10-person agency", "HubSpot or Pipedrive for agencies?"]
markets = [("US", "NY"), ("US", "CA")]
day = "2026-09-17"

tasks = [
    {
        "taskType": "CHATGPT",
        "payload": {"prompt": p, "country": c, "state": s},
        "idempotencyKey": f"crm-{i}-{c}-{s}-{day}",
        "webhook": {"url": "https://your-app.com/hooks/answers"},
    }
    for i, p in enumerate(prompts)
    for c, s in markets
]

r = requests.post(
    "https://api.answerline.dev/v1/async/task/batch",
    headers={"Authorization": f"Bearer {os.environ['API_KEY']}"},
    json=tasks,
    timeout=60,
)
for item in r.json()["results"]:
    if not item["success"]:
        print(tasks[item["index"]]["idempotencyKey"], item["error"]["code"])

Differences to plan for:

Modelling cost

Apify pricing has three layers: the platform plan (which sets the store price tier), the per-event price of each actor at that tier, and any run-start events. The event price for the same ChatGPT answer differs between Apify’s Starter and Business tiers, and its Free plan lists AI answer events at $0.20 each, so trial runs on the Free plan are not a guide to production cost.

This API has two layers: credits per request and the credit price of your plan. A ChatGPT task costs 5 credits, plus 2 once if you add search queries, shopping, ads or the raw response; a synchronous call adds 2 more. Other engines are on pricing and in credits.

To compare for your own workload:

  1. List prompts × engines × markets × runs per month.
  2. For Apify, multiply the answer count per engine by that engine’s event price at the tier your plan gives you, then add run-start events for the number of runs you start.
  3. For this API, multiply the answer count per engine by credits per request, and pick the smallest plan whose monthly credits cover the total.
  4. Add the engineering time for anything one side does not return and you would have to derive, such as citation positions or US state variants.

Running both side by side before cutting over

Start with a parallel run: the same prompts, markets and schedule on Apify and on this API for one or two weeks, stored in the same table with a provider column.

  1. Choose prompts for engines both sides cover, plus Google queries where you use the AI Overview add-on.
  2. Keep your Apify schedule unchanged.
  3. Submit matching tasks here, keyed by prompt, engine, market and day, with a webhook.
  4. Store both in one table; on Apify note which runs timed out and which queries went to the errors dataset.

What to compare at the end of the run:

Cut over one engine at a time and keep the parallel data: it is the only record of how the switch itself moved your numbers.

Handling errors after the switch

On Apify, a failed or timed-out run is an actor-level event, and queries that return nothing go to a separate errors dataset on the ChatGPT and AI Mode actors.

This API’s errors carry a stable code to branch on (authentication and errors):

Situation Status and code What to do
Too many requests this second 429 RATE_LIMIT_EXCEEDED Back off with jitter and retry; nothing ran or was charged.
Every concurrency slot busy on a synchronous call 429 CONCURRENT_LIMIT_EXCEEDED Retry when a running call finishes, or send a task instead.
Queue would overflow 429 QUEUE_LIMIT_EXCEEDED The whole submission was rejected; resubmit later.
API shedding load 429 SERVICE_OVERLOADED Wait at least Retry-After seconds.
Balance can’t cover the request 403 INSUFFICIENT_CREDITS Top up or wait for the next cycle; check GET /v1/credits.
Repeated idempotency key 409 RESOURCE_CONFLICT The task already exists; fetch it instead of creating it.
Engine failed after automatic retries 500 or 502 EXTERNAL_SERVICE_ERROR Not charged. For tasks, resubmit with a new key if you still need the answer.

Every response carries an X-Request-Id; send your own to tie a request to your logs, and quote it to support. The TypeScript SDK applies this retry policy for you.

Decision checklist

  1. Engines. Do you need Grok or Google News? Apify’s store has no Apify-published actor for either (checked 2026-09-17); this API has an endpoint for both.
  2. Markets. Do answers need to come from a specific country or US state on every assistant? Check each actor’s input schema; this API takes country everywhere and state on all five assistants.
  3. Fields. Do you store citation positions, shopping cards or brand entities? Map each to a documented output field before migrating.
  4. Scheduling. Is the schedule already in your own job runner? Then per-task webhooks fit better than run-level webhooks.
  5. Other data. Do you depend on Apify actors outside search and AI answers? Keep those; move only the AI answer jobs.
  6. Failure semantics. Decide how you treat an answer that did not come back. Here a failed task has status FAILED and is not charged; on Apify, check each actor’s event definitions and the run-start charge.

Pitfalls when moving

Start with the quickstart, or read the ChatGPT engine page for the full result schema.

Questions

Does Apify have actors for ChatGPT, Perplexity and Google AI Mode?

Yes. As checked on 2026-09-17, Apify publishes its own ChatGPT Search Scraper, Perplexity Search Scraper, Gemini Search Scraper, Microsoft Copilot Search Scraper, Google AI Mode Scraper and Google AI Overviews Scraper, priced per event. Its store lists no Apify-published actor for Grok or Google News.

Can I target a country with Apify's AI answer actors?

The Google Search Results Scraper takes a country code, languages and a UULE location. The input schemas of the standalone ChatGPT, Gemini, AI Mode and AI Overview actors take only queries (checked 2026-09-17). This API takes country on every engine and a US state on the five assistants.

How do I replace an Apify run-sync call with this API?

Replace the POST to the actor's run-sync-get-dataset-items endpoint with a POST to the engine's monitor endpoint, and send one prompt per request instead of a newline-separated queries string. For scheduled volume, submit async tasks in batches and receive results by webhook.

Is Apify cheaper than this API?

It depends on the Apify plan and the engine. Apify's AI answer events cost less on its Business plan than on Starter, and each AI answer event is listed at $0.20 on its Free plan. Compare per-request prices for your engine mix on the table above and on the pricing page.

How does this API differ from Apify's ChatGPT actor?

Both return the answer text and its sources. The differences are in the request: this API takes country and a US state on every assistant, delivers each task to its own webhook, and covers Copilot and Grok, which have no Apify-published actors.

Other comparisons

Build vs buy

What collecting ChatGPT, Perplexity and Google AI answers in-house costs, from browser fleets and parser maintenance to geo egress, compared with per-request pricing.

Provider APIs vs AnswerLine

The OpenAI or Gemini API returns a completion; the consumer app adds web search, citations and product cards on top. What differs, and when each is the right call.

SerpApi vs AnswerLine

Google Search, Google News and AI Overview coverage and price per search on SerpApi, next to this API's credit prices for the same requests.

Bright Data vs AnswerLine

Bright Data's SERP API and AI scrapers for ChatGPT, Perplexity, Gemini, Copilot, Grok and AI Mode next to this API: coverage, price per request, geo and delivery.

DataForSEO vs AnswerLine

DataForSEO's SERP API, LLM Scraper, LLM Responses and LLM Mentions next to this API: which engines are scraped, prices per SERP and per task, geo and delivery.

Oxylabs vs AnswerLine

Oxylabs Web Scraper API sources for ChatGPT, Perplexity, Gemini, AI Mode, AI Overviews and Google next to this API: coverage, price per result, geo and delivery.

Scrape.do vs AnswerLine

Scrape.do's ChatGPT, Gemini and Google Scraper APIs next to this API: engine coverage, credits per request, geo parameters, failure billing and async delivery.

ScraperAPI vs AnswerLine

ScraperAPI's structured ChatGPT, Perplexity, Gemini, AI Mode and Google endpoints next to this API: coverage, credits per request, geo, failures and callbacks.

ScrapingBee vs AnswerLine

ScrapingBee's Google, ChatGPT and Gemini APIs next to this API: coverage of AI engines, credits per request, geo parameters, failure billing and async support.

SearchApi vs AnswerLine

SearchApi's Google, AI Mode, AI Overview, ChatGPT, Perplexity, Gemini and Bing Copilot engines next to this API: coverage, price per search, geo and delivery.

Serper vs AnswerLine

Serper's Google Search API credit packs next to this API: which surfaces each covers, price per query, geo options, billing and delivery.

AI Overview API alternative

Which APIs return Google's AI Overview, what each returns and charges, and this API's AI Overview fields from its OpenAPI document.