node-fetch vs got
node-fetch is an implementation of the Fetch API for Node.js, built on Node's http module, and got is an HTTP request library for Node.js with streams, retries, hooks and pagination.
Implementation of the Fetch API for Node.js, built on Node's http module.
$ npm install node-fetchHTTP request library for Node.js with streams, retries, hooks and pagination.
$ npm install got| Metric | node-fetch | got | Difference |
|---|---|---|---|
| Weekly downloads | 141,855,676 | 30,398,057 | node-fetch 4.7x higher |
| 12-month download growth | +109% | +28% | node-fetch +82 pts |
| Gzip size | - | - | - |
| Minified size | - | - | - |
| Dependencies | 3 | 10 | got 7 more |
| Unpacked size | 105 kB | 438 kB | node-fetch 4.2x smaller |
| Latest release | 3.3.2, 25 Jul 2023 | 16.0.0, 30 Aug 2026 | got 3.1 years more recent |
| Releases, last 12 months | 0 | 18 | got 18 more |
| First published | 27 Jan 2015 | 27 Mar 2014 | got 10 months earlier |
| GitHub stars | 8,855 | 14,946 | got 1.7x higher |
| Open issues | 190 | 1 | node-fetch 189 more |
| Open pull requests | 59 | 0 | node-fetch 59 more |
| Contributors | 116 | 205 | got 1.8x higher |
| Commits, last 52 weeks | 0 | 203 | got higher |
| TypeScript types | Bundled | Bundled | Same |
| Module format | ESM only | ESM only | Same |
| Runtimes | Node.js | Node.js | Same |
| License | MIT | MIT | Same |
Green marks the smaller size or the more recent release. Bold marks the higher count, with no judgement implied. Sizes are for the whole package per Bundlephobia. Growth compares the average of the last 4 weeks with the first 4 weeks of the 52-week series.
node-fetch
- 0.1.027 Jan 2015
- 1.0.027 Jan 2015
- 2.0.03 Feb 2018
- 3.0.031 Aug 2021
- 2.7.023 Aug 2023
- 2.6.1318 Aug 2023
- 3.3.225 Jul 2023
- 2.6.1229 Jun 2023
- 2.6.119 May 2023
got
- 0.1.027 Mar 2014
- 1.0.05 Aug 2014
- 2.0.023 Nov 2014
- 3.0.06 May 2015
- 4.0.025 Jul 2015
- 5.0.018 Oct 2015
- 6.0.07 Jan 2016
- 7.0.029 May 2017
- 8.0.016 Nov 2017
- 9.0.04 Aug 2018
- 10.0.01 Dec 2019
- 11.0.020 Apr 2020
- 12.0.010 Dec 2021
- 13.0.027 May 2023
- 14.0.029 Nov 2023
- 15.0.01 Apr 2026
- 16.0.030 Aug 2026
- 16.0.030 Aug 2026
- 15.1.02 Jul 2026
- 15.0.728 Jun 2026
- 15.0.621 Jun 2026
- 15.0.56 May 2026
Fetch API (window.fetch-compatible)
Promise-based and stream-based, extendable instances with hooks
- v3 is ESM-only and cannot be loaded with require(). v2 remains CommonJS and still receives critical bug fixes.
- Response bodies are Node.js Readable streams, not WHATWG ReadableStreams as the Fetch standard specifies.
- Node.js has a built-in global fetch, powered by undici, from v18.
- Node.js only. Its own comparison table lists no browser support.
- Native ESM with no CommonJS export since v12.
- The README recommends ky, by the same maintainers, for most users, as it is smaller, works in the browser and is built on Fetch.
- Module formatBoth ESM only
- Need TypeScript types in the package itselfBoth
- Only targeting Node.jsBoth run in Node.js (Both are Node.js only)
- Node.js version requirementnode-fetch: ^12.20.0 || ^14.13.1 || >=16.0.0; got: >=22 (engines field in package.json)
- Need the more recent releasegot (16.0.0 on 30 Aug 2026 vs 3.3.2 on 25 Jul 2023)
- Higher weekly npm downloadsnode-fetch (141.9m vs 30.4m)
Each line is generated from the data above.
- node-fetch vs axios30 searches/mo
- axios vs got20 searches/mo
- got vs superagentNo search data
Indexability: Indexed: 20 US searches/month across both orderings ("node-fetch vs got", "got vs node-fetch").