NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3791 most downloaded on npm
Tiny and elegant HTTP client based on the Fetch API
Last release 20 days ago
28 Aug 2026
Release timing varies
gaps range from 8 days to 5 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
100 releases · first in 2016
Make HTTPError and TimeoutError named exports 6ec7fd7
HTTPError and TimeoutError named exports 6ec7fd7HTTPError messages (#333) ca098f8searchParams in .create() and .extend() (#335) b3c9e88throwHttpErrors option is false (#334) eefcde5https://github.com/sindresorhus/ky/compare/v0.27.0...v0.28.0
Don't mangle user-provided searchParams string (#325) 5815518
searchParams string (#325) 5815518https://github.com/sindresorhus/ky/compare/v0.26.0...v0.27.0
One column per quarter.
Ky is now a pure ESM module (#313) d976029
request and options to HTTPError (#309) 519d17eonDownloadProgress throws an exception (#301) 87c94fdky.stop as return type in BeforeRetryHook TypeScript type (#307) b86ff0aBeforeRetryHook and NormalizedOptions TypeScript type definitions (#308) 5da3da0ky.stop (#314) 0ced1f1https://github.com/sindresorhus/ky/compare/v0.25.1...v0.26.0
Fix React Native compatibility (#304) bc646cd
https://github.com/sindresorhus/ky/compare/v0.25.0...v0.25.1
Fix Deno and React Native compatibility (#295) 2bff89a
dom library in your tsconfig, you need to do this now.TimeoutError#request (#299) 599a45bhttps://github.com/sindresorhus/ky/compare/v0.24.0...v0.25.0
Remove response property for the first argument passed to beforeRetry hooks (#276) 9876da1 You can access it on error.response instead. See https://gi
response property for the first argument passed to beforeRetry hooks (#276) 9876da1
You can access it on error.response instead. See https://github.com/sindresorhus/ky/pull/276 for details.beforeRetry hook (#276) 9876da1https://github.com/sindresorhus/ky/compare/v0.23.0...v0.24.0
Add option for custom fetch implementation (#273) ccda3b9
fetch implementation (#273) ccda3b9https://github.com/sindresorhus/ky/compare/v0.22.0...v0.23.0
Add support for relative URLs and searchParams even in non-browsers (#271) c9e5206
searchParams even in non-browsers (#271) c9e5206parseJson option (#272) 95e7fd7https://github.com/sindresorhus/ky/compare/v0.21.0...v0.22.0
Add Request to TimeoutError (#267) b9dbd19
Request to TimeoutError (#267) b9dbd19https://github.com/sindresorhus/ky/compare/v0.20.0...v0.21.0
Add ability to remove headers using ky.extend() (#235) 70826b2
ky.extend() (#235) 70826b2https://github.com/sindresorhus/ky/compare/v0.19.1...v0.20.0
Fix the NormalizedOptions.headers TypeScript type
NormalizedOptions.headers TypeScript type (#243)HTTPError always has a defined message (#249)Add TimeoutError and HTTPError to ky TypeScript namespace (#241) 9c9dfe9
Content-Type header for multipart requests (#211) d547e89https://github.com/sindresorhus/ky/compare/v0.18.0...v0.19.0
Fix request cancellation on timeout (#238) 041e935
response to beforeRetry hook and change its parameter to be a single object (#201) 3f3e14d
-(request, options, error, retryCount) => {
+({request, response, options, error, retryCount}) => {
https://github.com/sindresorhus/ky/compare/v0.17.0...v0.18.0
Require Node.js 10 if you use it in Node.js 7c1d371
HTTPError and TimeoutError are now properties on the default export ky instead of individual named exports..default property: const ky = require('ky/umd').default; → const ky = require('ky/umd');https://github.com/sindresorhus/ky/compare/v0.16.2...v0.17.0
Fix handling of falsy value with the json option (#223) b20779b
json option (#223) b20779bhttps://github.com/sindresorhus/ky/compare/v0.16.1...v0.16.2
Remove content-type header check for FormData body (#208) 2078a15
content-type header check for FormData body (#208) 2078a15https://github.com/sindresorhus/ky/compare/v0.16.0...v0.16.1
Hooks now always receive a `Request` instance as the first argument instead of the input URL, which could previously either be a string, Request, or U
Request instance as the first argument instead of the input URL, which could previously either be a string, Request, or URL (#180) c5821a7beforeRetry hooks (#198) 0bc6fb1beforeRequest hooks can now return a Request instance to replace the existing request (https://github.com/sindresorhus/ky/pull/180)prefixUrl reasonings (#175) 4e05289https://github.com/sindresorhus/ky/compare/v0.15.0...v0.16.0
Fix BeforeRequestHook TypeScript type (#181) 32a7007
BeforeRequestHook TypeScript type (#181) 32a7007input argument (#176) 68959c4https://github.com/sindresorhus/ky/compare/v0.14.0...v0.15.0
Add beforeRetry hook (#159) 4eb3677
beforeRetry hook (#159) 4eb3677Response from a beforeRequest hook (#172) 59d36achttps://github.com/sindresorhus/ky/compare/v0.13.0...v0.14.0
Pass input & options arguments to beforeRequest & afterResponse hooks (#163) 9181aa2 ```diff await ky('…', { hooks: { beforeRequest: [
input & options arguments to beforeRequest & afterResponse hooks (#163) 9181aa2 await ky('…', {
hooks: {
beforeRequest: [
- options => {}
+ (input, options) => {}
]
afterResponse: [
- response => {}
+ (input, options, response) => {}
]
}
});
retry option more powerful (#110) d4ddb7a
You can now control which HTTP methods and status codes that should cause a retry.Options TypeScript type (#165) bfdc9b5
This should make it easier to wrap Ky when using TypeScript.https://github.com/sindresorhus/ky/compare/v0.12.0...v0.13.0
Fix passing a Request instance as input (#147) 9c81d89
Request instance as input (#147) 9c81d89BeforeRequestHook TypeScript type (#161) 0a0427dhttps://github.com/sindresorhus/ky/compare/v0.11.2...v0.12.0
Fix timeout regression that caused Node.js to not terminate (#145) 30450d8
https://github.com/sindresorhus/ky/compare/v0.11.1...v0.11.2
Fix TypeScript 3.5 compatibility 93d2faf
https://github.com/sindresorhus/ky/compare/v0.11.0...v0.11.1
Simplify the TypeScript types (#133) 7793c53
Breaking (possibly):
Enhancements:
onDownloadProgress option (#34) f89d796Fixes:
ky.extend() not inheriting its parent and add ky.create() (#128) 0a6beb1https://github.com/sindresorhus/ky/compare/v0.10.0...v0.11.0
Breaking (for TypeScript users only):
Breaking (for TypeScript users only):
Ky TypeScript namespace 7114ba3Enhancements:
ky-universal) fcffa18Fixes:
AbortController, for example, React Native (#125) a012fd3https://github.com/sindresorhus/ky/compare/v0.9.1...v0.10.0
Fix problem with debugging timed-out requests (#122) ed17c9a
https://github.com/sindresorhus/ky/compare/v0.9.0...v0.9.1
Fix afterResponse hook & retry not being called (#95) cd33a63
afterResponse hook & retry not being called (#95) cd33a63https://github.com/sindresorhus/ky/compare/v0.8.0...v0.9.0
Make the .json() method generic (#98) ce12902
.json() method generic (#98) ce12902https://github.com/sindresorhus/ky/compare/v0.7.1...v0.8.0
Add ky/umd TypeScript definition (#89) 5fabe0c
ky/umd TypeScript definition (#89) 5fabe0chttps://github.com/sindresorhus/ky/compare/v0.7.0...v0.7.1
Potentially breaking for TypeScript users: Use more specific JSON types in TypeScript (#82) 8111684
https://github.com/sindresorhus/ky/compare/v0.6.0...v0.7.0
Require Node.js 10 when used in Node.js b205fe3
Breaking:
Other:
throwHttpErrors option for POST requests (#77) 7c7f5fehttps://github.com/sindresorhus/ky/compare/v0.5.2...v0.6.0
Normalize method option value casing (#63) 2bbc557
method option value casing (#63) 2bbc557https://github.com/sindresorhus/ky/compare/v0.5.1...v0.5.2
Fix relative URL resolution (#59) d6f8176
https://github.com/sindresorhus/ky/compare/v0.5.0...v0.5.1
Add `searchParams` option. a7c71b5
searchParams option. a7c71b5afterResponse hook. b714b8aglobalThis polyfill to make Ky work in React Native. f107e7bRetry-After header when calculating retry delay. af77f30https://github.com/sindresorhus/ky/compare/v0.4.1...v0.5.0
Fixes some issues with the TypeScript definition.
Fixes some issues with the TypeScript definition.
https://github.com/sindresorhus/ky/compare/v0.4.0...v0.4.1
Add `prefixUrl` option. (#11) 66fb6c3
prefixUrl option. (#11) 66fb6c3retry option default to what's actually documented, 2 instead of 3. 81bbf7bhttps://github.com/sindresorhus/ky/compare/v0.3.0...v0.4.0
Make Ky a ES2015 module. e40e3e7
beforeRequest hook. (#22) 9fe30fcthrowHttpErrors option. (#14) 27a826chttps://github.com/sindresorhus/ky/compare/v0.2.0...v0.3.0
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →