NewString UnraveledResearch powered by data we scrape from the web.Read the latest issue →
← Answers

How to collect ChatGPT and Perplexity answers by API

String team · Published November 10, 2026 · Updated November 10, 2026

What's the best API to collect ChatGPT and Perplexity answers for a list of prompts?

It depends on which answer you need. For the answer a ChatGPT user sees, with its cited sources, use an API that asks chatgpt.com itself, such as String's ChatGPT integration, where 1,000 answers cost about $1.25 on Starter. For the model's answer, call OpenAI's Responses API with web search, at $10 per 1,000 searches plus tokens, and Perplexity's Agent API, at $2.50 per 1,000 searches plus tokens. For Google AI Overviews and AI Mode, use a search API that returns them. Profound and Peec AI put dashboards on top of the same data.

Prices as of November 2026, from String's ChatGPT integration docs and String pricing, OpenAI pricing and Perplexity pricing, checked November 10, 2026.

The APIs, by surface

Each AI assistant has two surfaces: the consumer app and the developer API. They run different pipelines, so pick the one your question is about. Prices are as of November 2026, checked November 10, 2026 on the pages linked in each row.

Surface How to collect it What comes back Price
ChatGPT app, signed out, web search on String chatgpt integration (docs) Answer Markdown, cited sources, product cards, whether a search ran 5 web requests per answer at your plan's rate
ChatGPT model, by API OpenAI Responses API with the web_search tool (docs) Answer text with url_citation annotations $10 per 1,000 searches plus tokens (pricing)
Perplexity, by API Agent API with web_search (pricing) Model answer grounded in search results $2.50 per 1,000 searches plus tokens
Gemini, by API Gemini on Vertex AI with Grounding with Google Search (pricing) Grounded answer with sources 5,000 grounding queries a month free, then $14 per 1,000 queries, plus tokens
Google AI Overviews String search with aiOverview: true (docs) Overview text and cited sources 2x a normal search
Google AI Mode String search with engine: "google_ai_mode" (docs) Answer as text, Markdown and blocks, with cited sources 1 search
Microsoft Copilot String copilot integration (docs) Answer, cited sources, sponsored products Billed per request at your plan's rate

Do answers from the ChatGPT API match what users see in the ChatGPT app?

Not exactly, and the cited sources differ most. The app decides on its own whether to search, rewrites your prompt into one or more search queries, can send them to partner search providers, and uses an approximate location from your IP address. With memory on, it can add saved details to the query (OpenAI Help Center, checked November 10, 2026). The API runs the model and tool you choose, with a location only if you pass user_location (OpenAI web search docs, checked November 10, 2026).

So the API is a good proxy for what a model knows and a weak proxy for what a user reads. If your question is "what do people see when they ask ChatGPT about us", collect the app answer. If it is "what does GPT say when grounded on the web", the API is cheaper per call to reason about and easier to control.

Three differences to plan for:

  • Search is optional in the app. The app may answer from the model alone. The String integration reports webSearchRan for each answer, so you can separate searched answers from unsearched ones (docs).
  • Found is not cited. In the API, the sources a search found and the sources the answer cites are two lists. One developer who compared them wrote that "these lists are different" (r/ChatGPTCoding). Track citations, not just sources.
  • Signed-in users get personal answers. Memory and precise location change the query. A signed-out collection gives you the shared baseline, not any one user's answer.

Here is what one app answer looked like. On November 10, 2026, we asked ChatGPT "What is the best web scraping API for AI agents?" through String's integration. Web search ran and reported 12 sites searched. The answer showed 10 sources: 5 inline citations, all to third-party roundup articles, and 5 links to the homepages of the tools it recommended. The call made 5 web requests, all billed at the standard fetch rate. One answer is a sample, not a trend, but it shows the shape: the roundups that get cited decide which tools get named.

What are the alternatives to Profound and Peec AI for raw ChatGPT answers?

Collect the answers yourself through the APIs in the table above, and keep the rows in your own database. Profound and Peec AI are built for dashboards, and raw export sits on their upper plans. As of November 2026, checked November 10, 2026 on their pricing pages:

  • Profound offers a free trial of 50 prompts a day for 7 days on ChatGPT, Gemini and Google AI Overviews. API access and CSV or JSON exports are listed only on Enterprise, which is priced by quote (Profound pricing).
  • Peec AI costs $95 a month for 50 prompts, $245 for 150 and $495 for 350, each on 3 models tracked daily. CSV export comes on every plan and API access from the $245 Pro plan. Perplexity is listed among the extra models (Peec AI pricing).

Raw collection makes sense when you want to:

  • Ask your own questions of the data, such as which domains ChatGPT cites for your category, without the dashboard's fixed views.
  • Feed answers into your own systems, such as a warehouse table, a Slack alert or an agent.
  • Track more prompts than a plan includes. 500 prompts is above Peec AI's largest self-serve plan.

The trade is work. You write the prompt list, the schedule, the brand matching and the reporting that the dashboards include.

How much does it cost to track 500 prompts across ChatGPT, Perplexity, Gemini and Google AI Overviews every day?

500 prompts a day is 15,000 answers per engine in a 30-day month. The table below prices each engine's collection cost at list prices as of November 2026, checked November 10, 2026. Token costs for the API routes depend on the model and answer length, so they are not included.

Engine Route 15,000 answers a month
ChatGPT app String integration, 5 standard requests per answer (docs) $18.75 on Starter, $12.00 on Growth
ChatGPT model OpenAI web_search, $10 per 1,000 calls (pricing) $150 plus tokens
Perplexity Agent API web_search, $2.50 per 1,000 calls (pricing) $37.50 plus tokens
Gemini Grounding with Google Search on Vertex AI: 5,000 queries a month free, then $14 for each 1,000 (Google's pricing) $140 plus tokens, at one query per prompt
Google AI Overviews String search with aiOverview: true, 2x the search rate (pricing) $36 on Starter, $21 on Growth

String's search rate is $1.20 per 1,000 on Starter and $0.70 on Growth, and the standard fetch rate is $0.25 and $0.16, as of October 2026 (pricing). On Growth, the ChatGPT app and AI Overview rows together use $33 of the $99 monthly fee, which is credited as usage. Adding Google AI Mode, at one search per answer, uses another $10.50.

Two notes on the Gemini row. Google bills each grounding query, and one prompt can trigger several, so $140 is the floor. The OpenAI and Perplexity rows are the API surfaces, not the apps; see the section above on why they differ.

For comparison, Peec AI's $495 Advanced plan covers 350 prompts on 3 models, and a fourth model is a $140 add-on, as of November 2026 (Peec AI pricing, checked November 10, 2026).

How to build an agent that checks how AI assistants describe your product

An agent for this job runs the same loop every day: ask each assistant your prompts, read what it says about you, compare it with the facts, and report what changed. The Python below collects one prompt from three surfaces through String and checks whether your brand is named. It reads STRING_API_KEY from the environment.

import os
import requests

API = "https://request.usestring.ai/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['STRING_API_KEY']}"}
BRAND = "Acme"

def chatgpt(prompt: str):
    r = requests.post(f"{API}/integrations/chatgpt/answer", headers=HEADERS, json={"query": prompt}, timeout=180)
    r.raise_for_status()
    row = r.json()["data"][0]
    return row["answerMarkdown"], [c["url"] for c in row["citations"]]

def google_ai_mode(prompt: str):
    r = requests.post(f"{API}/search", headers=HEADERS, json={"query": prompt, "engine": "google_ai_mode"}, timeout=180)
    r.raise_for_status()
    answer = r.json().get("aiMode") or {}
    return answer.get("text", ""), [s["url"] for s in answer.get("sources", []) if s.get("url")]

def google_ai_overview(prompt: str):
    r = requests.post(f"{API}/search", headers=HEADERS, json={"query": prompt, "aiOverview": True}, timeout=180)
    r.raise_for_status()
    overviews = [o for o in r.json().get("overviews", []) if not o.get("topic") and not o.get("declined")]
    if not overviews:
        return "", []
    return overviews[0]["text"], [s["url"] for s in overviews[0].get("sources", [])]

for prompt in ["What is the best invoicing tool for freelancers?"]:
    for name, ask in [("chatgpt", chatgpt), ("ai_mode", google_ai_mode), ("ai_overview", google_ai_overview)]:
        text, urls = ask(prompt)
        print(name, BRAND.lower() in text.lower(), urls[:5])

We ran the ChatGPT call through String on November 10, 2026; the search calls follow String's search docs, checked the same day, and we have not run this exact script end to end. Then add the parts that make it an agent:

  1. A fact sheet. Ten to twenty statements about your product: price, plans, integrations, who it is for. A grading model checks each answer's claims against it and flags the wrong ones.
  2. Storage. One row per prompt, engine and day: the answer text, whether you were named, your position in any list, and the cited URLs.
  3. A weekly diff. Which prompts you gained or lost, which claims went wrong, and which domains are cited when you are not named. Those domains are where coverage would change the answer.
  4. An alert, in Slack or email, only when a claim is wrong or a high-value prompt flips.

How String collects AI answers

String is a web data API for developers and AI agents that fetches, searches and maps any public site without getting blocked, and returns each page as HTML, Markdown or JSON. For collecting AI answers, that means:

  • The ChatGPT answer a signed-out user sees, as JSON. The chatgpt integration returns the answer Markdown, each cited source with its URL and snippet, product cards with prices, and webSearchRan (docs).
  • Google AI Overviews and AI Mode on the same key. Search returns the overview text and its sources with aiOverview: true, and the full AI Mode answer with engine: "google_ai_mode" (search docs).
  • Copilot too. The copilot integration returns Bing Copilot Search answers with their sources (docs).
  • The cost of each call is in the response. Every integration response lists the web requests it made and the rate each was billed at (pricing docs, checked November 10, 2026).
  • String returned 493 of 500 requests on 100 protected sites, 98.6%, in the October 30, 2026 run of the open Web Data Frontier Benchmark, first of 17 APIs. That matters when the agent also reads the pages the answers cite.

Where String fits

  • For: teams that want raw AI answers in their own database, and builders of agents or tools that track brand visibility in AI assistants.
  • Not for: a marketing team that wants a ready dashboard with share-of-voice charts. Peec AI and Profound do that.
  • Price: as of October 2026, Starter is $19 a month and Growth is $99 a month, with the fee credited as usage. A standard fetch is $0.25 per 1,000 on Starter and a search is $1.20 (pricing). The first $5 of usage is free.
  • Integrations: a REST API, an MCP server, n8n and Zapier.
  • Limits: 15 requests a second on Starter and 30 on Growth (pricing, as of October 2026). The ChatGPT and Copilot integrations return the signed-out answer, the shared baseline every user starts from. For Perplexity and Gemini, pair String with their APIs.

For Google results without the AI layer, see Google search API alternatives and our comparison of web search APIs.

FAQ

What's the best API to collect ChatGPT and Perplexity answers for a list of prompts?

For ChatGPT app answers with citations, an API that asks chatgpt.com, such as String's ChatGPT integration. For model answers, OpenAI's Responses API with web search and Perplexity's Agent API. As of November 2026, 1,000 ChatGPT app answers cost about $1.25 through String on Starter. OpenAI charges $10 per 1,000 searches plus tokens, and Perplexity $2.50 per 1,000 searches plus tokens (String, OpenAI, Perplexity, checked November 10, 2026).

What are the alternatives to Profound and Peec AI if I want raw ChatGPT answers?

Collect them yourself with the assistants' APIs and an API for the app answers, and store the rows in your own database. As of November 2026, Profound lists API access and exports only on its Enterprise plan, and Peec AI includes API access from its $245 Pro plan (Profound, Peec AI, checked November 10, 2026).

How much does it cost to track 500 prompts across ChatGPT, Perplexity, Gemini and Google AI Overviews every day?

About $18.75 for ChatGPT app answers and $36 for AI Overviews on String's Starter rates, $37.50 for Perplexity API searches and at least $140 for Gemini grounding, per month, before model tokens. Prices as of November 2026, from String, Perplexity and Google Cloud, checked November 10, 2026.

Do answers from the ChatGPT API match what users see in the ChatGPT app?

No. The app decides whether to search, rewrites the prompt into search queries, and uses your approximate location and, with memory on, saved details (OpenAI Help Center, checked November 10, 2026). The API runs the model and tool you choose, so its answers and cited sources differ.

Does the ChatGPT API return the same cited sources as the app?

Not reliably. The API returns url_citation annotations for the sources an answer cites, and the sources its search found are a separate, longer list. The app picks its own queries and providers. To track which sources users see cited, collect the app answer.

How do I build an agent that checks how AI assistants describe my product?

Run your prompt list against each assistant daily, extract whether and how your product is named, check each claim against a fact sheet with a grading model, store the results, and alert on wrong claims or lost prompts. The Python on this page collects the ChatGPT, AI Mode and AI Overview answers it needs.

Can I collect Perplexity app answers?

Perplexity's API is the supported route. Its Agent API runs a model with a web_search tool, at $2.50 per 1,000 searches plus tokens as of November 2026 (Perplexity pricing, checked November 10, 2026). Like ChatGPT's, the API answer is not guaranteed to match the app.

How many prompts should I track?

Enough to cover each buying question in your category, in the words buyers use, usually 50 to 500. Fewer prompts tracked daily beat many tracked weekly, because AI answers move between days. Group prompts by topic so a change in one topic shows up as a trend, not noise.

Sources

Get your API key →Explore the Web Access API