Unfetch is a tiny fetch polyfill/ponyfill that provides a minimal `fetch()`-compatible API (around 500 bytes gzipped) for environments where `fetch` is not available, including IE8+ assuming `Promise` is polyfilled. It supports request options like `method`, `headers`, `credentials`, and `body`, and provides basic response helpers like `ok`, `status`, `statusText`, `clone()`, and `text()`/`json()`/`blob()`. Use `unfetch/polyfill` to install it as `window.fetch`, or import `unfetch` to use it without changing globals.
Project status
- Maintenance status: The GitHub activity is very old, with the last upstream push on 2023-07-23, and the provided
unfetch-related update history for consumers appears to be largely pre-2024. This strongly suggests the project is quiet/dormant or in maintenance mode, not actively maintained today (2026-08-12). - Update cadence: Based on the evidence, updates are infrequent and widely spaced (notably major work in 2018 to 2023, then none evident from the upstream push date). There is no sign of a regular modern cadence.
AI summary generated
Recent updates
isomorphic-4.0.2
The release notes only mention a fix for missing files in earlier isomorphic-unfetch releases. The provided diff shows multiple non-release-note changes, including major dependency upgrades and packaging/build configuration tweaks that could affect consumers.
5.0.0
unfetch 5.0.0 adds TypeScript definition exports and updates package metadata to include a Node-style Package Exports map. This can change how bundlers and Node resolve the package entry points, especially for consumers using subpath or deep imports.
BreakingFeaturesisomorphic-4.0.1
This release updates the isomorphic fetch implementation to use node-fetch 3.x and includes TypeScript typing updates for the unfetch core. The runtime selection logic for server-side fetching also changes to accommodate node-fetch 3's ESM nature.
Features4.2.0
unfetch 4.2.0 updates runtime behavior for error handling and improves TypeScript declarations. It also adds support for passing URL objects, fixes operation in Web Workers via isomorphic-unfetch, and includes a node-fetch security fix guidance through isomorphic-unfetch.
SecurityFeatures4.1.0
Release 4.1.0 claims two changes: a fix to TypeScript definitions and a small size reduction (dropping another 20 bytes). The code diff also shows a larger dependency toolchain bump (microbundle) and a refactor of the runtime response object construction in src/index.mjs.
Breaking4.0.1
Release 4.0.1 is described as a quick publishing fix, and the code diff shows minimal functional changes to unfetch itself. However, the diff also updates documentation and repository package metadata (notably isomorphic-unfetch) and performs a large lockfile cleanup, which could impact consumers indirectly.
Breaking3.1.2
Release 3.1.2 is described as a fix for an IE11 bug. The code diff, however, includes changes beyond the release notes, including a modification to the TypeScript declaration export style and a behavioral tweak to how request bodies are sent.
Breaking4.0.0
unfetch 4.0.0 makes a breaking behavioral change: `require('unfetch')` is now a pure ponyfill and will not return `window.fetch` even when it exists. The new entry `unfetch/polyfill` is intended to overwrite `fetch` only when it is missing, and the release also mentions a small IE11 fix.
BreakingFeatures3.1.1
Release 3.1.1 is a small update focused on TypeScript typings for `unfetch` and `isomorphic-unfetch`. The release notes say it fixes a TypeScript definition issue present in the previous 3.1.0/2.1.0 versions.
3.1.0
Unfetch 3.1.0 adds TypeScript type definitions and several fixes to its XHR-based fetch polyfill, including correct parsing of response status and empty header values. It also updates distribution metadata so the UMD bundle is served via unpkg. The companion package isomorphic-unfetch is also updated to use node-fetch 2.x and includes its own TypeScript types and a readme.
Features