# What changed in scrapegraph-py

> 31 changes in scrapegraph-py 1 to 2 from its official release notes, upgrade guides and advisories: 6 breaking, 21 new APIs and options. Each one cited. Sources checked 2026-11-12. HTML: https://unstale.sh/pypi/scrapegraph-py/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## scrapegraph-py 2

### Breaking changes

- HealthResponse.status is narrowed to Literal["ok", "degraded"]. (2.1.1) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v2.1.1)
- The default API base URL now uses the v2-api host. (2.0.1) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v2.0.1)
- Renames SGAI_TIMEOUT_S to SGAI_TIMEOUT. (2.0.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v2.0.0)

### New APIs and options

- Adds SDK options for MIME and PDF processors. (2.3.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v2.3.0)
- Adds support for crawling pages. (2.2.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v2.2.0)
- Adds an endpoint for polling monitor results. (2.0.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v2.0.0)

### Behavior and default changes

- Updates the default API URL. (2.0.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v2.0.0)

### Fixes and other changes

- A User-Agent header is now sent on every API request. (2.3.2) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v2.3.2)
- HealthResponse no longer includes the non-existent services field. (2.1.1) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v2.1.1)

## scrapegraph-py 1

### Breaking changes

- The synchronous client was renamed from SyncClient to Client. (1.0.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v1.0.0)
- Adds infinite scrolling, with scroll configuration simplified to the number_of_scrolls parameter instead of scroll_options. (1.0.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v1.0.0)
- The local scraper was removed after being merged into smartScraper. (1.0.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v1.0.0)

### New APIs and options

- Adds the wait_ms parameter to the Crawler endpoint. (1.47.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v1.47.0)
- Adds the location_geo_code parameter to SearchScraper. (1.47.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v1.47.0)
- Adds the time_range parameter to SearchScraper. (1.47.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v1.47.0)
- Adds the wait_ms parameter to SmartScraper, Scrape, and Markdownify endpoints. (1.47.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v1.47.0)
- Adds breadth; the notes do not specify where it is used. (1.46.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v1.46.0)
- Adds the webhook_url parameter to the crawler endpoint. (1.45.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v1.45.0)
- Integrates the Toonify library to provide token-efficient responses. (1.44.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v1.44.0)
- Rendering was added to the SDK. (1.43.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v1.43.0)
- Adds integration for the API and ScrapeGraphAI API. (1.0.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v1.0.0)
- Adds a crawling endpoint for developers to use. (1.0.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v1.0.0)
- Adds integration for environment variables and updates environment variable loading. (1.0.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v1.0.0)
- Adds localScraper functionality; the notes also say it was later merged into smartScraper and removed. (1.0.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v1.0.0)
- Adds markdownify functionality. (1.0.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v1.0.0)
- Requests can include optional headers. (1.0.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v1.0.0)
- Adds support for requests with a schema. (1.0.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v1.0.0)
- Implements search scraper functionality. (1.0.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v1.0.0)
- Adds SQL integration. (1.0.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v1.0.0)
- Adds time-varying timeout support and makes timeout optional. (1.0.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v1.0.0)

### Fixes and other changes

- Removes a trailing comma from the headers field in the ScrapeRequest model. (1.47.0) — [release notes](https://github.com/ScrapeGraphAI/scrapegraph-py/releases/tag/v1.47.0)
