Skip to content

got vs superagent

Which should you use? A side-by-side look at what each one does, who it suits, what it costs, how hard it is to set up, and where each falls short.

got

Open source · MIT

A Node.js library for making HTTP requests, with retries, timeouts, and JSON support.

superagent

Open source · MIT

A small JavaScript library for making HTTP requests in Node.js and browsers.

The short answer

Choose got if you need…

  • Node.js developers who call web APIs from server-side code
  • Projects that need built-in retries, advanced timeouts, or pagination helpers
  • Developers who want HTTP/2, caching, or Unix socket support in one library
  • Teams already using Got who want its plugins such as got-scraping or gh-got

Choose superagent if you need…

  • JavaScript developers who want one HTTP client API that works in both Node.js and browsers
  • Projects that need to call web APIs with JSON request bodies and custom headers
  • Developers who want to extend request behavior with plugins
  • Teams that prefer callback, then/catch, or async/await styles

Side-by-side

gotsuperagent
TypeLibraryLibrary
PriceFree and open sourceFree and open source
LicenceMITMIT
GitHub stars15k16.6k
Setup difficultyBeginnerBeginner
How you get itInstall with a package managerInstall with a package manager
Main languageTypeScriptJavaScript
Last code update7 days ago44 days ago

What each one is

got

Got is a JavaScript library that lets Node.js programs send HTTP requests to web servers and APIs. It handles common chores such as JSON bodies, retries on failure, timeouts, redirects, and progress events so you write less boilerplate. The README also points readers to Ky, a related library by the same author, for most users who need browser support or a smaller package.

superagent

Superagent is a JavaScript library that sends HTTP requests, such as fetching data from or posting data to a web server. It uses the same API in Node.js and in the browser, and it supports common client features like JSON bodies, headers, query strings, and promises or callbacks. The README describes it as small and extensible through plugins.

Best for

got

  • Node.js developers who call web APIs from server-side code
  • Projects that need built-in retries, advanced timeouts, or pagination helpers
  • Developers who want HTTP/2, caching, or Unix socket support in one library
  • Teams already using Got who want its plugins such as got-scraping or gh-got

superagent

  • JavaScript developers who want one HTTP client API that works in both Node.js and browsers
  • Projects that need to call web APIs with JSON request bodies and custom headers
  • Developers who want to extend request behavior with plugins
  • Teams that prefer callback, then/catch, or async/await styles

Strengths

got

  • Feature-rich, with retries, timeouts, hooks, instances, and caching listed in the README
  • Documented with a quick start, options reference, and migration guides from Axios and Request
  • Actively maintained according to the README, with a large dependent count it reports

superagent

  • Same API works in Node.js and browsers, as the README states
  • Extensible through a list of existing plugins such as superagent-cache and superagent-mock
  • Supports callback, promise, and async/await usage styles

Not ideal for

got

  • Browser-only projects, since the comparison table marks browser support as unsupported; the README suggests Ky instead
  • Projects that use CommonJS, since the package is native ESM with no CommonJS export and the README suggests converting to ESM
  • Anyone needing Got v11 support, since the README says v11 is no longer maintained

superagent

  • Projects that only need the built-in fetch API and want zero dependencies, since the README does not compare sizes or dependency counts beyond the browser bundle size
  • Users on older environments below Node v14.18.0 or the listed browser versions, because the README lists these as supported minimums

Trade-offs

got

  • Node.js only; the comparison table marks browser support as not available
  • Native ESM only, which may require converting older CommonJS projects
  • The README itself recommends Ky for many users, so Got may not be the first choice for simple needs

superagent

  • Browser support needs polyfills for some older browsers, such as WeakRef and BigInt on certain iOS Safari versions
  • Breaking changes in earlier major versions were tied to stricter error handling, so upgrades need reading the release notes

Getting started

got

Install the package from npm

npm install got
Step-by-step guide: how to use got

superagent

Install with npm

npm install superagent

Install with yarn

yarn add superagent
Step-by-step guide: how to use superagent

Frequently asked questions

What is the difference between got and superagent?

got: A Node.js library for making HTTP requests, with retries, timeouts, and JSON support. superagent: A small JavaScript library for making HTTP requests in Node.js and browsers. got suits node.js developers who call web apis from server-side code, while superagent suits javascript developers who want one http client api that works in both node.js and browsers.

Are got and superagent free?

got: Free and open source. superagent: Free and open source.

Is got or superagent more popular?

superagent has more GitHub stars (16.6k) than got (15k). Popularity isn't the same as fit — check which one matches your use case above.

What are other alternatives to got and superagent?

Other options people compare them with include ky, axios, cpp-httplib.

Keep comparing

Built from our catalogue entries for both products: open-source details come from each project's README (AI-assisted, refreshed weekly) and GitHub data; AI-tool details are editorial. Spotted something wrong? Let us know from either product's page.