> This page is for SDKs, version Legacy.
> For other versions, use one of these documentation indexes:
> - Current (default): https://buildwithfern.com/learn/sdks/current/llms.txt
> - Legacy: https://buildwithfern.com/learn/sdks/legacy/llms.txt

> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt.

## 2.0.0

**`(feat):`** Introduce PSR-7/17/18 HTTP interfaces for framework-agnostic HTTP client support.

This restores the PSR-7/17/18 agnostic approach that was temporarily reverted in v1.30.0.
The SDK now supports any PSR-18 compliant HTTP client (Guzzle, Symfony HttpClient, etc.)
and uses php-http/discovery to automatically find an installed client at runtime.

Breaking changes are minimal, but do exist:

* Guzzle is no longer a hard dependency (moved to suggest/require-dev)
* Per-request timeout behavior may differ between HTTP client implementations (currently supported for Guzzle and Symfony)
* Code that directly catches GuzzleHttp\Exception\RequestException will require a refactor

Migration: Existing Guzzle users should be largely unaffected as Guzzle implements PSR-18.
For custom HTTP clients, ensure they implement PSR-18 interfaces.

## 1.30.0

**`(fix):`** Temporarily revert PSR-7/17/18 HTTP interfaces back to hard Guzzle dependency.
This restores the pre-1.27.0 behavior where the SDK requires Guzzle as a hard dependency.
Users should expect this to be re-introduced as a breaking change in v2.0.0.

This change reverts the framework-agnostic HTTP client support introduced in v1.27.0,
restoring Guzzle middleware-based retry logic and direct Guzzle dependency.