Provider model APIs vs AnswerLine
Calling OpenAI's API and asking in the ChatGPT app are different products. The API returns what your model, tools and parameters produce; the app shows its own answer, with the citations and products it chose.
What each returns
| Provider model API | AnswerLine | |
|---|---|---|
| Answer text | A completion, the model's output for your prompt and parameters. | The answer the consumer app shows. |
| Sources | Cited URLs when you enable web search: OpenAI's web search tool and Gemini's Grounding with Google Search both document URL citations (checked 2026-09-23). | `sources[]`, the citations the app showed, with display position. |
| Search fan-out | With web search enabled, both document the queries the model ran; OpenAI's docs say usually but not always (checked 2026-09-23). | `searchQueries[]`: Grok returns its web and X searches; ChatGPT's comes back empty today. |
| Commerce blocks | No shopping or product result type in either web search tool's docs (checked 2026-09-23). | ChatGPT's `inlineProducts` (with `include.shopping`): the products from its shopping search, with price, link and merchant offers. `entities` lists the brands and products it names. |
| Geo variation | OpenAI's web search takes an approximate user location (country, city, region, timezone); Gemini's Google Search grounding docs list no location parameter (checked 2026-09-23). | The `country` request parameter selects the market: ChatGPT and Gemini answer from 213 countries, and Gemini also takes a US state. |
When each is right
- Use a provider API to generate: a feature built on the model itself, where the consumer app's answer is irrelevant.
- Use AnswerLine to measure visibility, citations, recommendations and competitive presence. Those questions are about what users see, which only the consumer surfaces show.
The two combine: a provider API to build the product, and this API to measure how the brand appears in consumer answers.
Which to pick
Use a provider model API (OpenAI, Gemini and others) when you are building with a model: generating text, answering your users’ questions, running agents. You control the prompt, the model, the tools and the parameters, and that control is the point.
Use this API when you are measuring what the consumer products show: which brands the assistants mention, which sources they cite, and how that differs by market. That question is about what the product told a user, and only the product can answer it.
The names overlap and provider APIs now offer web search too, so the two are easy to confuse. The main difference is who configures the answer.
Who configures the answer
With a provider API, your request is the configuration. OpenAI’s web search guide (checked 2026-09-17, developers.openai.com) documents, among others:
- the model you call;
- a
web_searchtool you choose to enable; - a user location with country, city, region and timezone;
- domain filters with up to 100 allowed or blocked domains;
- a search context size of low, medium or high, controlling how much search content reaches the model.
Every one of those changes the answer. That is useful when you build, and a problem when you measure: an answer you shaped with your own settings can’t tell you what someone typing the same question into ChatGPT sees.
Gemini’s Grounding with Google Search is similar in principle (checked 2026-09-17, ai.google.dev): you enable a google_search tool, the response lists the queries the model ran and annotates the text with url_citation entries, and its docs say Gemini 3 models are billed for each search query the model decides to execute.
With this API, you send a prompt and a market. The consumer product decides the rest, as it would for a user: model, search behavior, sources, layout.
The same question, two requests
Provider API (OpenAI Responses API with web search)
As shown in OpenAI’s guide, with the model left for you to choose:
curl https://api.openai.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "YOUR_MODEL",
"tools": [{ "type": "web_search" }],
"input": "What is the best CRM for a small agency?"
}'
The output carries the model’s text with url_citation annotations, and a record of the web search call.
Consumer answer (this API)
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 small agency?",
"country": "US",
"include": { "markdown": true }
}'
The response is { "success": true, "result": { ... } } with text, markdown, sources[] and model, as ChatGPT showed them for that market.
Where measurement goes wrong with provider APIs
Measuring consumer visibility with a provider API runs into four issues:
- Configuration drift. Changing the model, tool settings or system instructions changes the series. You end up measuring your own configuration history.
- Interface elements. Consumer answers can include product cards, places and follow-up modules. OpenAI’s and Gemini’s web search docs list no result type for them (checked 2026-09-23), so if your customers care about appearing in them, collect the consumer answer.
- Market simulation vs market. A user location field tells the model’s search tool where the user is; it is not the same as collecting the product’s answer in that market. Treat the two as different measurements.
- Unclear mapping to reports. A report that says “ChatGPT recommends you” should be based on ChatGPT’s answer, not on a model you configured to resemble it.
When a provider API is the right tool
- Generation. Writing content, summaries, classifications: you want control and repeatability.
- Features in your product. An assistant inside your app; your users see your configuration.
- Controlled experiments. “Does adding this page to the allowed domains change the answer?” is a provider-API question, because you control the tool.
- Analysis of collected answers. Use a model to classify sentiment or extract brand mentions from answers this API collected.
That last point is how the two work together:
import os, requests
answer = requests.post(
"https://api.answerline.dev/v1/monitor/chatgpt",
headers={"Authorization": f"Bearer {os.environ['API_KEY']}"},
json={"prompt": "What is the best CRM for a small agency?", "country": "US"},
timeout=330,
).json()["result"]
# Store the consumer answer exactly as collected...
save_answer(prompt_id="crm-small-agency", market="US", text=answer["text"], sources=answer.get("sources", []))
# ...then classify it with the provider model of your choice, in its own column.
brands = classify_brands(answer["text"]) # your call to a provider model API
save_classification(prompt_id="crm-small-agency", market="US", brands=brands)
The consumer answer is the measurement; the provider model is the analyst. Keep them in separate columns so you never mix a model’s opinion with what the product showed.
When this API is the right tool
- AI visibility tracking. Mentions, citations and share of voice across the consumer assistants. See AI visibility tracking.
- Competitive monitoring. Which competitors the assistants recommend, per market. See competitor analysis.
- Local variation. The same prompt per country, from 213 countries on ChatGPT and Gemini and any country on Copilot, Perplexity and Grok, plus US states on Gemini. See state-level answers.
- Google’s AI surfaces. The AI Overview on Google Search, which neither provider’s API docs list as a response element (checked 2026-09-23), and the answers in Google AI Mode.
Designing a pipeline that uses both
A setup that keeps the two roles clean:
- Prompt set. One table of prompts, each with an id, a topic, and the markets it runs in.
- Collection. Async tasks on this API per prompt, engine and market on a schedule, delivered to a webhook, stored raw with the task id.
- Analysis. A job that reads new raw answers and asks a provider model to extract brand mentions, sentiment or product names, storing its output with the model name and prompt version.
- Metrics. Share of voice and citation rates computed from the raw answers’ sources and the analysis columns, never from the analysis text alone.
- Re-analysis. When you change the analysis model or prompt, re-run it over stored raw answers. The collected answers don’t change, so trends stay comparable.
A better analysis model then improves your metrics retroactively while the measurement stays fixed.
Cost structure differences
Provider APIs price by input and output tokens, and tool use such as web search adds per-call or per-query charges according to each provider’s pricing page. Costs therefore vary with prompt length, answer length and how many searches the model decides to run.
This API prices by request: a dollar price per engine, plus fixed add-ons, listed in credits. An answer’s length doesn’t change its price, and a failed request is not charged. ChatGPT, Gemini, Perplexity and Google News cost less on higher tiers, reached by 30-day spend, as listed on pricing.
For a combined pipeline, estimate the two separately:
- Collection: prompts × engines × markets × runs per month × price per request.
- Analysis: collected answers × average answer length in tokens × the analysis model’s token price, plus your instruction prompt.
Analysis is the part you can tune, for example by only analyzing answers that changed since the previous run.
Testing the difference yourself
Before choosing, run a small comparison on your own prompts:
- Pick ten prompts your customers care about.
- Collect the consumer answers here for one market.
- Ask the same prompts through a provider API with web search enabled and a user location for the same country.
- Compare the brands mentioned and the domains cited.
If the two agree closely for your prompts, a provider API may be enough for your use case. If they differ, you know which one your reports should rest on.
Decision checklist
- Are you building or measuring? Building: provider API. Measuring: consumer answers.
- Does the report name a product (“ChatGPT says”)? Collect from that product.
- Do you need repeatable, controlled output? Provider API.
- Do you need interface elements such as product cards or places? Check the consumer-answer schema for those fields and test them on your prompts.
- Do you need the answer per market? Collect per market; don’t infer it from a location field.
- Do you analyze answers at scale? Use both: collect here, classify with a model.
Pitfalls
- Calling a provider API “ChatGPT” in reports. Name the model and settings instead.
- Comparing series across the switch. If you move from a provider API to consumer answers, start a new series.
- Letting the analyst model rewrite the data. Store the raw consumer answer; store the model’s classification separately.
- Treating a user location as a market. A location hint on a model API refines its search; it doesn’t reproduce a consumer product’s regional behavior. Label such data as simulated.
- Letting prompts drift. Whichever path you use, version the prompt text. A reworded prompt is a new series, and so is a changed system instruction on a provider API.
- Forgetting cost structure. Provider APIs charge by tokens and tool calls; this API charges a dollar price per request, listed in credits.
Start with the ChatGPT engine page or the quickstart.
OpenAI and Google are trademarks of their owners. AnswerLine is not affiliated with or endorsed by OpenAI or Google.
Questions
Is the OpenAI API answer the same as what ChatGPT shows?
Not necessarily. With the OpenAI API you choose the model, instructions, tools and settings such as web search and user location, so the output reflects your configuration. ChatGPT applies its own configuration and interface. To measure what ChatGPT users see, collect from ChatGPT itself.
Can the OpenAI or Gemini API cite web sources?
Yes. OpenAI's web search tool returns url_citation annotations with a URL, title and location in the text, and Gemini's Grounding with Google Search returns the queries it ran and url_citation annotations, per their docs checked 2026-09-17. The sources depend on your request settings.
When should I use a provider API instead of this API?
When you are generating content or building a feature on top of a model, where you control the prompt and settings and the exact consumer answer doesn't matter. Use this API when you need to measure what users of the consumer products are shown.
Can I use both?
Yes. One split is a provider API inside your product and this API to measure how brands, including yours, appear in consumer answers.
Which consumer products does this API cover?
ChatGPT, Gemini, Perplexity, Copilot, Grok, Google Search with the AI Overview, Google AI Mode and Google News.