# Changelog of ChatGPT Results Scraper: Answers, Citations & Screenshots (`mrbridge/chatgpt-results-scraper`) Actor

- **URL**: https://apify.com/mrbridge/chatgpt-results-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/mrbridge/chatgpt-results-scraper.md

## Changelog

### 1.1.0 (2026-10-16)

#### Added

- The new `images` field lists the pictures of the answer: image cards, pictures of image mosaics and the thumbnails of citation pop-ups, with `imageUrl`, `alt`, `pageTitle`, `publisher`, `context`, `sourcePosition` and `collageCount`. It is an empty list on an answer without pictures and on error items.
- `answerHtml` now keeps the `src` of images (`https` only, no icons), and `answerMarkdown` shows each image of the text as `![alt](imageUrl)`. `answerText` is unchanged. The image links point to ChatGPT's image cache and may stop working later, so download the images you want to keep.

#### Changed

- `country` is now a menu of 20 countries (AT, AU, BE, BR, CA, CH, DK, ES, FR, GB, GR, IN, IT, JP, MX, NL, PL, SE, TR, US). Only countries where the answer comes back localized for that country are listed. Lowercase codes are still accepted in API calls.

- The country menu now lists United States first. The accepted values and the default (`US`) do not change.

- Germany is removed from the country menu: the hosted browsers rarely reach chatgpt.com from Germany. A run with `country` set to `DE` now stops before any request, with the list of accepted codes.

- Every query now waits a fixed 120 seconds for its answer. The `timeout` status refers to that duration.

- `provider` now takes the values `primary` and `fallback` (and `fixture` for local test runs only). Some countries are served directly by the fallback browser network.

- The run log now holds one line per failed attempt.

- The Actor is now delivered as a prebuilt bundle. This has no consequence for your inputs or outputs.

- The files of each query now start with their kind: `answer-<slug>.md`, `item-<slug>.json`, `screenshot-<slug>.png` and `table-<slug>-<n>.csv` (they were `<slug>.md`, `<slug>.json`, `<slug>.png` and `<slug>-table-<n>.csv`). The run files `results.md`, `results.json` and `citations.csv` keep their names. The links in the dataset item (`files`, `screenshotUrl`) always point to the right key.

- The key-value store has a schema: in the **Storage** tab, the files are grouped in seven tabs (answers, items, screenshots, tables, and the three run files). Each file is stored with a plain content type (`text/markdown`, `text/csv`, `application/json`, `image/png`).

- Citation bullets now list their pages in `sources`, and links outside citation bullets are included. Each bullet in `answerMarkdown` shows the numbers of its pages, for example `[2][3]`, and `[?]` marks a bullet whose pop-up could not be read. The Actor opens at most 20 bullets per answer within 20 seconds, and this time is part of `responseTimeMs`.

- Each page behind a citation bullet is now a source, with its `domain`, its `title`, the site name in the new `publisher` field and the excerpt shown in the pop-up in the new `snippet` field. Its `url` is filled when the page could be opened without leaving the answer, and is `null` otherwise. `sources[].url` can therefore be `null`. The links of the text have `publisher` and `snippet` set to `null`.

- `citations.csv` has two new columns, `publisher` and `snippet`. A `null` value gives an empty cell.

#### Removed

- The `engine` and `maxWaitSeconds` input fields. If an input still contains them, they are ignored and the run log shows a warning.
- The `language` input and the `language` output field are removed: ChatGPT answers in the language of the question. Older inputs that still send `language` are accepted and the field is ignored.
- The always-empty fields `model`, `searchQueries`, `followUps` and `streamCaptured` are removed. They are gone from the dataset item, from `item-<slug>.json` and from `results.json`.
- The always-empty `places` field is removed. The map that ChatGPT shows to logged-out visitors says that map data is unavailable, so it never held a place. It is gone from the dataset item, from `item-<slug>.json` and from `results.json`.

### 1.0.0 (2026-10-15)

#### Added

- First public release.
- Sends up to 200 queries per run to chatgpt.com as a logged-out visitor, through hosted browsers with residential exits, with a choice of exit country and browser language.
- Dataset item per query with the answer in Markdown, plain text and HTML, `sources`, `places`, `products`, `tables`, `status`, response time and a screenshot link.
- Key-value store files per query (`.md`, `.json`, table CSVs, `.png`) and per run (`results.md`, `results.json`, `citations.csv`).
- Pay-per-event billing: one `query-answered` event per answered query, and no charge for error items.
- Statuses `ok`, `invalid_input`, `blocked`, `no_answer`, `timeout` and `engine_error`, with the run always ending as succeeded.

#### Known limits

- `searchQueries`, `followUps` and `model` are empty in this version and are present so the output shape stays stable.
- Sources shown only in the popover of a citation bullet are not listed.
- `places` is often empty because map cards frequently report that map data is unavailable.
