# ChatGPT search answers with sources and fan-out queries

**Use case:** 

10 everyday questions asked of ChatGPT search in the United States with forceWebSearch on, so it searches each one: one row per question with the whole answer as Markdown, every source it cited, the pages it retrieved (search_results), the queries it ran itself (fan_out_queries) and, where ChatGPT gives them, its brand list and the product or local cards it showed.

## Input

```json
{
  "queries": [
    "best budget wireless earbuds",
    "best family hotels in lisbon",
    "emergency plumber chicago",
    "how much does a kitchen remodel cost",
    "symptoms of vitamin d deficiency",
    "best laptop for college students",
    "how to get rid of fruit flies",
    "best hiking trails near denver",
    "cheapest way to send money abroad",
    "is a heat pump worth it"
  ],
  "queriesText": "",
  "engines": [
    "chatgpt"
  ],
  "country": "US",
  "language": "en",
  "readMode": "auto",
  "repeats": 1,
  "brand": "",
  "brandAliases": [],
  "brandDomain": "",
  "competitors": [],
  "competitorDomains": [],
  "brandSentiment": false,
  "forceWebSearch": true,
  "apiWebSearch": true,
  "chatgptApiModel": "gpt-4.1-mini",
  "geminiApiModel": "gemini-3.5-flash-lite",
  "claudeApiModel": "claude-haiku-4-5-20251001",
  "perplexityModel": "sonar",
  "maxItems": 0
}
```

## Output

```json
{
  "row_type": {
    "label": "Row type",
    "format": "string"
  },
  "query": {
    "label": "Query",
    "format": "string"
  },
  "engine": {
    "label": "Engine",
    "format": "string"
  },
  "engine_label": {
    "label": "Engine name",
    "format": "string"
  },
  "route": {
    "label": "Route",
    "format": "string"
  },
  "read_mode": {
    "label": "Read mode",
    "format": "string"
  },
  "repeat": {
    "label": "Repeat",
    "format": "integer"
  },
  "reads_in_run": {
    "label": "Reads in run",
    "format": "integer"
  },
  "status": {
    "label": "Status",
    "format": "string"
  },
  "status_detail": {
    "label": "Status detail",
    "format": "string"
  },
  "charged": {
    "label": "Charged",
    "format": "boolean"
  },
  "scraped_at": {
    "label": "Scraped at",
    "format": "string"
  },
  "answered_at": {
    "label": "Answered at",
    "format": "string"
  },
  "country": {
    "label": "Country",
    "format": "string"
  },
  "location_code": {
    "label": "Location code",
    "format": "integer"
  },
  "language_code": {
    "label": "Language",
    "format": "string"
  },
  "task_id": {
    "label": "Task id",
    "format": "string"
  },
  "model": {
    "label": "Model",
    "format": "string"
  },
  "web_search": {
    "label": "Web search",
    "format": "boolean"
  },
  "check_url": {
    "label": "Check URL",
    "format": "string"
  },
  "answer_markdown": {
    "label": "Answer (Markdown)",
    "format": "string"
  },
  "answer_chars": {
    "label": "Answer chars",
    "format": "integer"
  },
  "item_types": {
    "label": "Item types",
    "format": "array"
  },
  "answer_sections": {
    "label": "Answer sections",
    "format": "array"
  },
  "sources": {
    "label": "Sources",
    "format": "array"
  },
  "sources_count": {
    "label": "Sources count",
    "format": "integer"
  },
  "cited_domains": {
    "label": "Cited domains",
    "format": "array"
  },
  "search_results": {
    "label": "Search results",
    "format": "array"
  },
  "search_results_count": {
    "label": "Search results count",
    "format": "integer"
  },
  "fan_out_queries": {
    "label": "Fan-out queries",
    "format": "array"
  },
  "organic_results": {
    "label": "Organic results",
    "format": "array"
  },
  "ai_overview_async": {
    "label": "AI Overview loaded async",
    "format": "boolean"
  },
  "products": {
    "label": "Products",
    "format": "array"
  },
  "local_results": {
    "label": "Local results",
    "format": "array"
  },
  "images_count": {
    "label": "Images count",
    "format": "integer"
  },
  "ads_in_answer": {
    "label": "Ads in answer",
    "format": "array"
  },
  "answer_links": {
    "label": "Answer links",
    "format": "array"
  },
  "brand": {
    "label": "Brand",
    "format": "string"
  },
  "brand_mentioned": {
    "label": "Brand mentioned",
    "format": "boolean"
  },
  "brand_mention_count": {
    "label": "Brand mentions",
    "format": "integer"
  },
  "brand_position": {
    "label": "Brand position",
    "format": "integer"
  },
  "brand_cited": {
    "label": "Brand cited",
    "format": "boolean"
  },
  "brand_cited_urls": {
    "label": "Brand cited URLs",
    "format": "array"
  },
  "brands_named": {
    "label": "Brands named",
    "format": "array"
  },
  "brands_named_source": {
    "label": "Brands named source",
    "format": "string"
  },
  "competitors_named": {
    "label": "Competitors named",
    "format": "array"
  },
  "competitors_cited": {
    "label": "Competitors cited",
    "format": "array"
  },
  "share_of_voice": {
    "label": "Share of voice",
    "format": "number"
  },
  "brand_sentiment": {
    "label": "Brand sentiment",
    "format": "number"
  },
  "brand_sentiment_label": {
    "label": "Sentiment label",
    "format": "string"
  },
  "brand_recommended": {
    "label": "Brand recommended",
    "format": "string"
  },
  "brand_sentiment_confidence": {
    "label": "Sentiment confidence",
    "format": "number"
  },
  "input_tokens": {
    "label": "Input tokens",
    "format": "integer"
  },
  "output_tokens": {
    "label": "Output tokens",
    "format": "integer"
  }
}
```

## How it works

### 1. Sign up on Apify or log in

The ChatGPT Scraper: Perplexity, Gemini, AI Mode & AI Overview Actor is ready to run with the inputs already set for "ChatGPT search answers with sources and fan-out queries". [Sign up or log in](https://console.apify.com/create-task-from-example/CqJsi3jbOfELkZcSD) and you'll land in Apify Console with a copy of this exact task.

### 2. Start the "ChatGPT search answers with sources and fan-out queries" task

The ChatGPT Scraper: Perplexity, Gemini, AI Mode & AI Overview Actor will start running based on the input automatically. You can also change all the input fields, like queries (prompts), engines, and more, to match your specific use case.

### 3. Receive the "ChatGPT search answers with sources and fan-out queries" output

Monitor the progress in real time. You will be notified as soon as your dataset is complete and ready for review. Each result includes data such as row type, query, engine, and more.

### 4. Integrate into your workflow

The final output is delivered in JSON, CSV, or Excel format, ready to be plugged into your workflow. You can also [run the "ChatGPT search answers with sources and fan-out queries" task via API](https://apify.com/hyperbach/ai-search-answers.md).

## About this Actor

This example demonstrates how to use [ChatGPT Scraper: Perplexity, Gemini, AI Mode & AI Overview](https://apify.com/hyperbach/ai-search-answers.md) with a specific input configuration. Visit the [Actor detail page](https://apify.com/hyperbach/ai-search-answers.md) to learn more, explore other use cases, and run it yourself.


## How to integrate an Actor?

This Task's input is already configured above. Use it as-is rather than inventing a new one.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For full API examples (JavaScript, Python, CLI, MCP, OpenAPI), see this Task's Actor page: https://apify.com/hyperbach/ai-search-answers.md

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).
