> ## Documentation Index
> Fetch the complete documentation index at: https://docs.brightdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ChatGPT Scraper API endpoints

> Make synchronous requests to the Bright Data ChatGPT Scraper API with copy-paste examples for search, targeting across 195 countries and follow-up prompts.

This guide shows you how to send synchronous requests to the Bright Data ChatGPT Scraper API. It covers basic search, country-targeted search, and follow-up prompts.

## Prerequisites

* A [Bright Data account](https://brightdata.com/products/web-scraper/chatgpt?hs_signup=1\&utm_source=docs) with an active API key
* Completed the [Quickstart](/products/scrapers/chatgpt/quickstart)

## Request structure

Every synchronous request follows the same pattern:

```http theme={null}
POST https://api.brightdata.com/datasets/v3/scrape?dataset_id=gd_m7aof0k82r803d5bjm&format=json
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

[{"url": "https://chatgpt.com/", "prompt": "Your search prompt here"}]
```

The `url` field is always `https://chatgpt.com/`. The `prompt` field contains your search query.

<Note>
  The `/scrape` endpoint is built for real-time, single-URL requests. Bright Data recommends 20 inputs or fewer per request, a best practice rather than a hard limit, and the endpoint waits up to 1 minute. If collection takes longer, the response is HTTP `202` with a `snapshot_id` instead of data, and collection continues asynchronously. Fetch the result with [async requests](/products/scrapers/scrapers-library/async-requests) or have it pushed to you with [webhook delivery](/products/scrapers/scrapers-library/data-delivery).
</Note>

## How to scrape ChatGPT Search

**Dataset ID:** `gd_m7aof0k82r803d5bjm`

### How to send a basic search

Send a prompt and get a structured answer with citations:

```bash theme={null}
curl -X POST \
  "https://api.brightdata.com/datasets/v3/scrape?dataset_id=gd_m7aof0k82r803d5bjm&format=json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[{"url": "https://chatgpt.com/", "prompt": "Top hotels in New York"}]'
```

You should see a `200` response. Processing time varies with target-site conditions and scraper workload.

<Accordion title="Example response">
  ```json theme={null}
  [
    {
      "url": "https://chatgpt.com/?q=Top%20hotels%20in%20New%20York",
      "prompt": "Top hotels in New York",
      "answer_text": "Map data is currently unavailable Aman New York 4.3 Отель 2 450 $ The Plaza Hotel The Carlyle, A Rosewood Hotel 4.5 Отель 1 359 $ The Mark Hotel 4.5 Отель 2...",
      "answer_text_markdown": "*   Map data is currently unavailable![](https://images.openai.com/static-rsc-1/3CY66dbP3KXwQ7yDckANu6xIJ-NtQwAsXzoo2jAaWY6HKEHzvQ6cRzvjKFZEX9NpW5wWXY-HzQqfO...",
      "model": null,
      "web_search_triggered": true,
      "is_map": true,
      "shopping_visible": false,
      "citations": [
        {
          "url": "https://www.timeout.com/newyork/hotels/best-luxury-hotels-in-nyc?utm_source=chatgpt.com",
          "title": "16 Best Luxury Hotels in New York City For 2026 | World-Class Hotels in NYC",
          "description": "Time Out Worldwide",
          "icon": null
        }
      ],
      "search_sources": [
        {
          "url": "https://www.timeout.com/newyork/hotels/best-luxury-hotels-in-nyc?utm_source=chatgpt.com",
          "title": "16 Best Luxury Hotels in New York City For 2026 | World-Class Hotels in NYC",
          "snippet": null,
          "rank": 1
        }
      ]
    }
  ]
  ```
</Accordion>

### Search with country targeting

Use the `country` field to get location-specific results:

```bash theme={null}
curl -X POST \
  "https://api.brightdata.com/datasets/v3/scrape?dataset_id=gd_m7aof0k82r803d5bjm&format=json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[{"url": "https://chatgpt.com/", "prompt": "Best local restaurants", "country": "JP"}]'
```

<Accordion title="Example response">
  ```json theme={null}
  [
    {
      "url": "https://chatgpt.com/?q=Best%20local%20restaurants",
      "prompt": "Best local restaurants",
      "answer_text": "Map data is currently unavailable すしレストラン FUJIYAMA TOKYO 新宿東口店 4.7 寿司店 indian restaurant khana (HALAL) 4.4 インド料理店 ￥1,000～2,000 神戸鉄板焼 白秋 4.7 ステーキハウス ￥10,000 以...",
      "model": null,
      "web_search_triggered": false,
      "is_map": true,
      "citations": [],
      "prompt_sent_at": "2026-09-06T10:23:10.445Z",
      "answer_html": "<html lang=\"en-US\" dir=\"ltr\" data-theme=\"light\" data-contrast=\"default\" data-build=\"prod-4ec31e730ff961987ab0f9a7e9dd6248f66da3b0\" data-close-image-viewer=\"C...",
      "country": "JP"
    }
  ]
  ```
</Accordion>

### Search with follow-up prompt

Use the `additional_prompt` field to ask a follow-up question in the same session:

```bash theme={null}
curl -X POST \
  "https://api.brightdata.com/datasets/v3/scrape?dataset_id=gd_m7aof0k82r803d5bjm&format=json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[{"url": "https://chatgpt.com/", "prompt": "Top hotels in New York", "additional_prompt": "Which of these are pet-friendly?"}]'
```

<Accordion title="Example response">
  ```json theme={null}
  [
    {
      "url": "https://chatgpt.com/?q=Top%20hotels%20in%20New%20York",
      "prompt": "Top hotels in New York",
      "answer_text": "Map data is currently unavailable The St. Regis New York 4.5 Hotel $2,201 Park Hyatt New York 4.6 Hotel $3,191 The Carlyle, A Rosewood Hotel 4.5 Hotel $1,359...",
      "additional_answer_text": "Map data is currently unavailable Park Hyatt New York 4.6 Hotel The Manner 4.6 Resort hotel Refinery Hotel 4.5 Hotel Made Hotel 4.4 Hotel New York Hilton Mid...",
      "model": null,
      "web_search_triggered": true,
      "citations": [
        {
          "url": "https://www.cntraveler.com/gallery/best-hotels-in-new-york-city?utm_source=chatgpt.com",
          "title": "35 Best Hotels in New York City We Won't Shut Up About | Condé Nast Traveler",
          "description": "Condé Nast Traveler",
          "icon": null
        }
      ],
      "prompt_sent_at": "2026-09-06T10:23:07.451Z",
      "answer_html": "<html lang=\"en-US\" dir=\"ltr\" data-theme=\"light\" data-contrast=\"default\" data-build=\"prod-4ec31e730ff961987ab0f9a7e9dd6248f66da3b0\" data-close-image-viewer=\"C...",
      "is_map": true
    }
  ]
  ```
</Accordion>

[Full ChatGPT Search response schema](/api-reference/scrapers/ai-search-apis/chatgpt-search-by-prompt)

### Which output fields does the ChatGPT Search scraper return?

The ChatGPT Search scraper (`gd_m7aof0k82r803d5bjm`, `collect_by_url`) returns 28 output fields.

<Accordion title="Output fields (28)">
  | Field | Type | Description |
  | - | - | - |
  | `url` | url | ChatGPT page URL |
  | `prompt` | text | The input prompt |
  | `answer_html` | text | The answer of ChatGPT search |
  | `answer_text` | text | Answer text in plain text |
  | `links_attached` | array | Hyperlinks included in the response text, along with their position and linked words. |
  | `citations` | array | Sources directly referenced in the answer, often linked to specific facts or claims. |
  | `country` | country | Country from which to perform the search |
  | `is_map` | boolean | Indication whether a map package result was generated |
  | `references` | array | Links grouped under the References section |
  | `shopping` | array | Product recommendation cards from ChatGPT's Shopping panel |
  | `shopping_visible` | boolean | Whether the Shopping panel appeared for this answer |
  | `index` | number | The index column lets you assign a unique ID to each crawl request for easy tracking. |
  | `answer_text_markdown` | html2markdown | Answer text in markdown format. |
  | `web_search_triggered` | boolean | Was a web search triggered by ChatGPT when returning the answer |
  | `additional_prompt` | text | The additional\_prompt is a follow-up input sent after receiving the first answer, aiming to clarify, expand, or refine the initial response. The system processes this prompt and returns the result as additional\_answer\_text. |
  | `additional_answer_text` | text | The additional\_answer\_text is the system's response to the additional\_prompt, which follows the initial interaction. It provides additional information, clarification, or a refined answer based on the user's follow-up input. |
  | `map` | array | Map package result |
  | `search_sources` | array | A list of external web pages ChatGPT used to gather information, usually shown at the bottom of the response. |
  | `search_sources_more` | array | A list of external web pages ChatGPT used to gather information, usually shown at the bottom of the response (from "More" partition). |
  | `response_raw` | text | Raw data of ChatGPT's response |
  | `response_raw_additional_prompt` | text | Raw data of ChatGPT's response for additional prompt. |
  | `answer_section_html` | text | The answer's section html |
  | `model` | text | Model used for answer |
  | `web_search_query` | array | Model-generated web search queries (exact strings, in execution order) |
  | `prompt_sent_at` | date | exact prompt timestamp |
  | `answer_text_raw` | text | Original answer\_text as extracted, without trimming or whitespace normalization (may include leading/trailing spaces and newline characters). |
  | `business_locations` | array | Please consider adding new fields, attaching example of JSON we can get for each business location mentioned in answer. Array of business location entities returned when the answer includes local business results. Each entry contains the business ID, coordinates, name, category, address, contact info, ratings, hours, images, and open/closed status. |
  | `ads` | array | Array of advertisement's card data. |
</Accordion>

Machine-readable version with the input schema: [`/scrapers/gd_m7aof0k82r803d5bjm.json`](/scrapers/gd_m7aof0k82r803d5bjm.json)

## Quick reference: dataset ID

| Endpoint | Dataset ID | Input |
| :- | :- | :- |
| ChatGPT Search | `gd_m7aof0k82r803d5bjm` | `url` + `prompt` |

## Input fields

| Field | Required | Description |
| :- | :- | :- |
| `url` | Yes | Always `https://chatgpt.com/` |
| `prompt` | Yes | Search prompt (max 4,096 characters) |
| `country` | No | Country code for location-targeted results |
| `index` | No | Unique tracking ID (number) |
| `require_sources` | No | Return error if no sources found (boolean) |
| `additional_prompt` | No | Follow-up prompt within the same session |
| `web_search` | No | Allow (`true`, the default) or disable (`false`) web search during the run. Read `web_search_triggered` in the response to know whether a search ran; see [Query fan-out and web search control](/products/scrapers/concepts/query-fan-out) |

## Output formats

Control the response format with the `format` query parameter:

| Value | Description |
| :- | :- |
| `json` | JSON array |
| `ndjson` | Newline-delimited JSON, one record per line (default) |
| `csv` | Comma-separated values |

These are the `format` values for `/scrape`. The full list, NDJSON (default), JSON, JSON lines, CSV and Parquet, and where each applies is in [output formats](/products/scrapers/scrapers-library/data-delivery#which-output-formats-can-i-use).

## Related

<CardGroup cols={2}>
  <Card title="Async batch requests" icon="layer-group" href="/products/scrapers/scrapers-library/async-requests">
    Search ChatGPT with hundreds of prompts in a single batch job.
  </Card>

  <Card title="API reference" icon="code" href="/api-reference/scrapers/ai-search-apis/chatgpt-search-by-prompt">
    Full parameter and response field reference.
  </Card>
</CardGroup>
