SearchApi vs AnswerLine
SearchApi prices every engine the same, one search per successful request, and includes ChatGPT, Perplexity, Gemini and Bing Copilot next to its Google engines. This API serves ChatGPT, Gemini, Copilot, Google AI Mode, Google Search and Google News, and runs async tasks.
Coverage
| SearchApi | AnswerLine | |
|---|---|---|
| ChatGPT | Yes, chatgpt engine: markdown, text blocks, reference links, citations and the searches ChatGPT ran. | Yes, POST /v1/monitor/chatgpt. |
| Perplexity | Yes, perplexity engine: text blocks, markdown, reference links and related questions. | Paused, coming back soon. |
| Gemini | Yes, gemini engine: text blocks, markdown and reference links. | Yes, POST /v1/monitor/gemini. |
| Microsoft Copilot | Yes, bing_copilot engine (Bing Copilot Search): text blocks, markdown and reference links. | Paused, coming back soon. |
| Grok | Not listed on searchapi.io (checked 2026-09-17). | Paused, coming back soon. |
| Google AI Mode | Yes, google_ai_mode engine: text blocks, markdown, reference links, local results and shopping. | Yes, POST /v1/monitor/aimode. |
| Google AI Overview | Yes, ai_overview in Google results; when Google loads it later, a second google_ai_overview request with a page_token that expires in under a minute. | Supported by the API. +35 credits, added once per request. |
| Google Search | Yes, google engine. | Supported by the API. |
| Google News | Yes, google_news engine. | Supported by the API. |
SearchApi's plans
| Plan | Monthly | Searches | Per 1,000 searches |
|---|---|---|---|
| Developer | $40 | 10,000 | $4.00 |
| Production | $100 | 35,000 | $3.00 |
| BigData | $250 | 100,000 | $2.50 |
| Scale | $500 | 250,000 | $2.00 |
| Octo 500K | $900 | 500,000 | $1.80 |
| Octo 1M | $1,500 | 1,000,000 | $1.50 |
| Octo 2M | $2,800 | 2,000,000 | $1.40 |
| Octo 5M | $5,000 | 5,000,000 | $1.00 |
Price per request
| Request | AnswerLine credits | AnswerLine price | SearchApi |
|---|---|---|---|
| ChatGPT | 7 | $0.001 | 1 search, $0.004 ($0.001) |
| Perplexity (paused, coming back soon) | 56 | $0.006 | 1 search, $0.004 ($0.001) |
| Gemini | 5.6 | $0.001 | 1 search, $0.004 ($0.001) |
| Microsoft Copilot (paused, coming back soon) | 90 | $0.009 | 1 search, $0.004 ($0.001) |
| Grok (paused, coming back soon) | 56 | $0.006 | Not listed |
| Google AI Mode | 70 | $0.007 | 1 search, $0.004 ($0.001) |
| Google AI Overview | 70 | $0.007 | 1 search, plus a google_ai_overview request when a page_token is needed |
| Google Search | 35 | $0.004 | 1 search, $0.004 ($0.001) |
| Google News | 35 | $0.004 | 1 search, $0.004 ($0.001) |
How requests, geo, billing and delivery work
| SearchApi | AnswerLine | |
|---|---|---|
| Parsing depth | Google: organic results, AI Overview, answer box, related questions, local results, ads, shopping and knowledge graph. Assistants: text blocks, markdown and reference links; ChatGPT adds citations, web results and search queries. | 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: location, uule, coordinates, gl, hl and device. The ChatGPT, Perplexity, Gemini and Bing Copilot docs list no location, country or language parameter (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 | Only successful searches with a 200 status are billed. | A failed request or task is not charged, and neither is a queued task you clear before it starts. |
| Async and webhooks | No async or webhook option in SearchApi's public docs (checked 2026-09-17); each request is a synchronous GET. | 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 SearchApi fits
- Bing, Amazon, YouTube, DuckDuckGo, Baidu, app stores, travel sites and ad libraries share the same key and price.
- One flat search price, down to $1 per 1,000 on its largest plan, applies to an AI answer and a Google page alike.
- An enterprise zero_retention option disables logging and storage per request.
This API fits when prompt sets run as async batches delivered to webhooks, with idempotency keys and one response schema per engine. The guide below compares the requests.
Which to choose
SearchApi fits when breadth matters: one key and one flat per-search price across Google verticals, Bing, Amazon, YouTube, app stores and ad libraries. Choose it when the AI answers you need are fine without market targeting, or when the enterprise zero-retention option is a requirement.
This API fits when the AI answer must come from a known market, because here ChatGPT and Gemini answer from 213 countries and Copilot from any country, set on each request, and Gemini also takes a US state; or when prompt sets run as async batches with idempotency keys and webhooks rather than a synchronous loop.
Why market targeting decides most evaluations
Assistants that search the web can answer differently by market: the providers, regulation and availability behind a question like “best bank for small business” are local. A visibility report that doesn’t pin the market can’t say which market it describes, and can’t be reproduced.
SearchApi’s docs for its ChatGPT, Perplexity, Gemini and Bing Copilot engines list the query, the API key and an enterprise retention flag, plus a few engine options (web search and entity expansion for ChatGPT, source connectors for Perplexity), and no location or country parameter (checked 2026-09-17, searchapi.io). Its Google engines are the opposite: location, uule, coordinates, gl and hl.
On this API, the assistants take:
country: ISO 3166-1 alpha-2, required on ChatGPT and Gemini, which answer from 213 countries. Copilot takes any country.state: a US state on Gemini; ChatGPT answers at country level and refuses it, without billing.
Google Search and Google AI Mode take any of the same 213 countries, and AI Mode also takes location or uule and hl. Google News takes the 71 countries with a Google News edition plus hl.
If your reporting is single-market and the provider’s default market is yours, this matters less. If you sell reports per country or per state, check coverage for what is served today.
Migration: the same ChatGPT request
On SearchApi
curl -G "https://www.searchapi.io/api/v1/search" \
-H "Authorization: Bearer $SEARCHAPI_KEY" \
--data-urlencode "engine=chatgpt" \
--data-urlencode "q=best business bank account for freelancers" \
--data-urlencode "web_search=true"
Its docs list markdown, text_blocks, reference_links, cards, web_results, search_queries, citations and response_metadata in the response.
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 business bank account for freelancers",
"country": "US",
"include": { "markdown": true }
}'
Field mapping
SearchApi chatgpt |
This API ChatGPT result |
|---|---|
markdown |
result.markdown with include.markdown |
text_blocks |
result.text (plain), result.markdown (structured) |
reference_links |
result.sources[] |
citations |
result.citationPills[] |
search_queries |
result.searchQueries with include.searchQueries |
cards |
result.entities[], result.shoppingCards[], result.map[] |
response_metadata model |
result.model |
result.searchQueries comes back empty on the ChatGPT answers served today. result.entities[] lists the brands and products the answer names, each with a type and name.
Google and the AI Overview
On SearchApi, the Google engine includes ai_overview, but when Google loads it separately the response carries a page_token, and you call the google_ai_overview engine with it within a minute (checked 2026-09-17, searchapi.io). Your code therefore has two paths and a timing constraint.
On this API the overview is part of the one Google request:
import { Client } from "@answerline/sdk";
const client = new Client({ apiKey: process.env.API_KEY!, baseUrl: "https://api.answerline.dev" });
const { result } = await client.google({
query: "business bank account freelancers",
country: "GB",
include: { aioverview: { markdown: true } },
});
if (result.aioverview) {
for (const s of result.aioverview.sources) console.log(s.position, s.url);
}
result.aioverview is either the overview or null when Google showed none.
From a synchronous loop to async batches
SearchApi’s documented requests are synchronous, and its pricing page caps use at 20% of a plan’s credits per hour. A monthly plan used for a weekly prompt run needs that spread planned.
This API has no hourly credit cap; the limits are requests per second, concurrent running tasks per plan, and a queue for the rest (rate limits). A weekly run is a set of batch calls:
import os, requests
prompts = ["best business bank account for freelancers", "Mercury or Novo for sole proprietors?"]
tasks = [
{
"taskType": engine,
"payload": {"prompt": p, "country": "US"},
"idempotencyKey": f"bank-{i}-{engine}-US-2026-W38",
"webhook": {"url": "https://your-app.com/hooks/answers"},
}
for i, p in enumerate(prompts)
for engine in ("CHATGPT", "GEMINI")
]
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"])
Use the week in the idempotency key so a rerun of the same week is refused rather than duplicated, and next week’s run gets fresh keys.
Comparing cost
SearchApi charges one search per successful request whatever the engine, with the per-search price falling on larger plans. This API charges per engine in credits (7 for ChatGPT and 90 for Copilot tasks, 5.6 for Gemini, 70 for Google AI Mode, 35 for a one-page Google Search request plus 35 for the AI Overview, 35 for a one-page Google News request, and 6.7 more for synchronous calls, plus 35 per results page on synchronous Google Search and Google News); the credit’s dollar value falls on larger plans, as pricing shows.
- Count successful answers per engine per month.
- For SearchApi, count one search per answer, plus a second request for Google queries whose AI Overview needs a page token; measure that share on your queries.
- For this API, sum credits per engine and pick the plan that covers them.
- Check SearchApi’s hourly 20% cap against how bunched your runs are.
- Price the engines both cover first, then add the rest separately.
What an overlap period should measure
Two weeks of both, same prompts and same schedule, in one table with a provider column, is enough to settle the market question.
- Take prompts for the engines both sides cover: ChatGPT, Gemini and Copilot.
- SearchApi’s assistant docs list no market parameter (checked 2026-09-17), so run this API’s side in the market you report on.
- Submit tasks here with webhooks and a distinct key per prompt, engine, market and day.
The numbers that settle it:
- Market pinning: how far SearchApi’s untargeted answers differ from answers pinned to that market here. If they differ a lot, an untargeted series isn’t comparable.
- Answer and citation overlap per prompt. The baseline is the overlap between two runs on one provider, not 100%.
- Hourly-cap impact: runs delayed by SearchApi’s 20% hourly cap versus queue wait here.
Move the engines where the market matters first, since that is the difference the overlap was measuring. The untargeted ones can stay on SearchApi until their series reaches a natural break, such as a quarter boundary, because switching them changes nothing you are reporting.
What your retry code needs to change
SearchApi bills only 200 responses, so a client written for it can retry anything else without counting the cost. That habit is nearly safe here, since nothing that errors is charged, but it is not free. A retry loop with no backoff turns one RATE_LIMIT_EXCEEDED into many, and a task resubmitted without its original idempotency key becomes a second task that does get charged.
Derive the key from prompt, engine, market and period, as the batch above does, and back off on 429. The retry rules are on authentication and errors; rate limits describes what replaces SearchApi’s hourly credit cap: a per-second limit, a concurrency limit and a queue for the rest.
What the decision comes down to
- Per-market AI answers? Needs
countryon the assistants: this API, 213 countries on ChatGPT and Gemini and any country on Copilot, with US states on Gemini. - Dozens of non-AI engines on one key? SearchApi.
- Scheduled volume without your own queue? Async tasks and webhooks here.
- Per-request zero retention? SearchApi documents it for enterprise requests.
Where this goes wrong
- Assuming a default market is yours. Record the market with every answer; if the provider doesn’t let you set it, record that too.
- Expired page tokens. On SearchApi, fetch the AI Overview immediately or you lose it for that search.
- Bursty schedules against an hourly cap. Spread runs, or use a provider with a queue.
- Comparing
text_blockstotext. Structure differs; compare markdown to markdown when diffing answers across providers.
Run one prompt and compare it with SearchApi’s answer: the quickstart has the first request, the ChatGPT engine page the schema.
SearchApi is a trademark of its owner. AnswerLine is not affiliated with or endorsed by SearchApi.
Questions
Which AI engines does SearchApi support?
As checked on 2026-09-17, SearchApi lists ChatGPT, Gemini, Bing Copilot and Perplexity APIs, plus Google AI Mode and Google AI Overview APIs. Grok is not listed on its site.
Can I choose the country for SearchApi's ChatGPT or Perplexity results?
The ChatGPT, Perplexity, Gemini and Bing Copilot docs checked on 2026-09-17 list no location, country or language parameter; Perplexity and Gemini answer in the language of the query. On this API, ChatGPT and Gemini answer from 213 countries and Copilot from any country, set on each request, and Gemini also takes a US state.
How does SearchApi return the Google AI Overview?
Its Google results include ai_overview. When Google loads the overview separately, the response carries a page_token for a second request to the google_ai_overview engine, and its docs say the token expires in less than a minute.
Does SearchApi charge for failed searches?
Its pricing page says failed requests are not billed and only successful searches with a 200 status code are charged. It also says at most 20% of a plan's credits can be used in an hour.
Does SearchApi have webhooks or async jobs?
SearchApi's public docs listed no async or webhook option when checked on 2026-09-17; requests are synchronous GETs. This API offers synchronous calls and async tasks and batches with signed webhooks.