got vs ky
got is downloaded 6.4× more often than ky (143,651,475 vs 22,536,796 per month), so it has the larger community and more answered questions online. ky ships 84% less gzipped JavaScript (7.0 kB vs 44.2 kB), which matters if bundle size is a priority. Both projects are actively maintained.
| Metric | got | ky |
|---|---|---|
| Weekly downloads | 33,119,616✓ | 5,603,302 |
| Monthly downloads | 143,651,475✓ | 22,536,796 |
| GitHub stars | 14,909 | 16,899✓ |
| Minified size | 144.7 kB | 20.1 kB✓ |
| Minified + gzipped | 44.2 kB | 7.0 kB✓ |
| Dependencies | 12 | 0✓ |
| Open issues | 0 | 0 |
| Last commit | 2026-05-07 | 2026-05-08✓ |
| Latest version | 15.0.5 | 2.0.2 |
| License | MIT | MIT |
When to choose which
got
Powerful HTTP client for Node.js.
Choose it when: Server-side Node where you need retries, streams, pagination and hooks. Not for the browser.
- + Retries, streams, hooks
- + Great for backend
- - Node only
- - Heavier
ky
A tiny, modern fetch wrapper.
Choose it when: Modern browsers/runtimes where you want a small client built on fetch with retries and hooks out of the box.
- + Tiny
- + Retries built-in
- + fetch-based, modern
- - Requires fetch (modern envs)
- - Fewer plugins than axios
Feature comparison
| Feature | got | ky |
|---|---|---|
| Runtime | Node only | Browser + Node 18+ |
| Built on | http | fetch |
| Interceptors / hooks | ✓ Yes | ✓ Yes |
| Automatic JSON | ✓ Yes | ✓ Yes |
| Built-in retries | ✓ Yes | ✓ Yes |
Related comparisons
Embed this comparison
A live badge for your README — it updates as the numbers change.
[](https://devcompare.dev/compare/got-vs-ky)Data from npm, Bundlephobia and GitHub. Last updated 2026-06-02.