npm / superagent
superagent
What changed in superagent 4 to 10, from its official release notes, upgrade guides and advisories. Also covers @types/superagent. Sources checked 2026-10-27.
9 breaking3 new APIs and options1 behavior and defaults8 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initsuperagent 101 changes
New APIs and options 1
Adds support for the Brotli compression format.
superagent 92 changes
Fixes and other changes 2
Fixed Formidable v3 multipart form contents being mapped to the expected format.
Fixed an issue with numeric identifiers.
superagent 82 changes
Breaking changes 1
IE support using ActiveXObject was dropped.
Fixes and other changes 1
Fixed XMLHttpRequest in Electron.
superagent 71 changes
Fixes and other changes 1
Fixed abort logic for all Node versions.
superagent 61 changes
Fixes and other changes 1
Fixed case-sensitivity handling for content-type.
superagent 52 changes
New APIs and options 1
Adds an upload timeout so developers can limit how long an upload takes.
Fixes and other changes 1
Fixes handling of FormData errors.
superagent 412 changes
Breaking changes 8
In Node, responses with unknown MIME types are buffered by default; use buffer(false) on requests or set superagent.buffer[yourMimeType] = false to retain old behavior with custom unbuffered parsers.
end() returns undefined instead of the request; save the request in a variable if needed, or migrate to promises with then().
Calling abort().end() now throws.
The promise returned by end() is rejected on all error events.
Browser code now uses ES6; Browserify or Webpack bundles targeting Internet Explorer also need Babel. The pre-built node_modules/superagent.js remains ES5-compatible.
Node.js v4 is no longer supported; Node.js v6 or later is required, with Node.js 10 recommended.
Invalid uses of pipe() now throw.
Unsupported combinations of send and field now throw.
New APIs and options 1
Default buffer settings can now be based on response-type.
Behavior and default changes 1
Backticks are left unencoded in query strings where possible.
Fixes and other changes 2
In Node, https.servername is set from the Host header.
response.buffered now reports buffering more accurately.