sindresorhus/got is one of the server-side repositories TopGit tracks, currently at 14.9k stars, written primarily in TypeScript. π Human-friendly and powerful HTTP request library for Node.js
Snapshot summary built from the project's own GitHub metadata β there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then β see the READ ME tab for the original README in full.
Sindre's open source work is supported by the community. Special thanks to:
Fast remote container builds and GitHub Actions runners.
Human-friendly and powerful HTTP request library for Node.js
See how Got compares to other HTTP libraries
You probably want Ky instead, by the same people. It's smaller, works in the browser too, and is more stable since it's built on Fetch. Or fetch-extras for simple needs.
Support questions should be asked here.
Install
npm install got
Warning: This package is native ESM and no longer provides a CommonJS export. If your project uses CommonJS, you will have to convert to ESM. Please don't open issues for questions regarding CommonJS / ESM.
Got v11 is no longer maintained and we will not accept any backport requests.
Take a peek
A quick start guide is available.
JSON mode
Got has a dedicated option for handling JSON payload.
Furthermore, the promise exposes a .json<T>() function that returns Promise<T>.
For advanced JSON usage, check out the parseJson and stringifyJson options.
For more useful tips like this, visit the Tips page.
Highlights
Used by 10K+ packages and 5M+ repos
Actively maintained
Trusted by many companies
Documentation
By default, Got will retry on failure. To disable this option, set options.retry.limit to 0.
Main API
Promise API
Options
Stream API
Pagination API
Advanced HTTPS API
HTTP/2 support
Response class
Timeouts and retries
Advanced timeout handling
Retries on failure
Errors with metadata
Advanced creation
Hooks
Instances
Progress events & other events
Plugins
Compose
Cache, Proxy and UNIX sockets
RFC 7234 compliant caching
Proxy support
Unix Domain Sockets
Integration
Diagnostics Channel
TypeScript support
AWS
Testing
Migration guides
Request migration guide
(Note that Request is unmaintained)
Axios
Node.js
Got plugins
got4aws - Got convenience wrapper to interact with AWS v4 signed APIs
gh-got - Got convenience wrapper to interact with the GitHub API
gl-got - Got convenience wrapper to interact with the GitLab API
gotql - Got convenience wrapper to interact with GraphQL using JSON-parsed queries instead of strings
got-fetch - Got with a fetch interface
got-scraping - Got wrapper specifically designed for web scraping purposes
got-ssrf - Got wrapper to protect server-side requests against SSRF attacks
Comparison
got
node-fetch
ky
axios
superagent
HTTP/2 support
:heavy_check_mark:
:x:
:heavy_check_mark:
:x:
:heavy_check_mark:**
Browser support
:x:
:heavy_check_mark:*
:heavy_check_mark:
:heavy_check_mark:
:heavy_check_mark:
Promise API
:heavy_check_mark:
:heavy_check_mark:
:heavy_check_mark:
:heavy_check_mark:
:heavy_check_mark:
Stream API
:heavy_check_mark:
Node.js only
:x:
:x:
:heavy_check_mark:
Pagination API
:heavy_check_mark:
:x:
:x:
:x:
:x:
Request aborting
:heavy_check_mark:
:heavy_check_mark:
:heavy_check_mark:
:heavy_check_mark:
:heavy_check_mark:
RFC 7234 caching
:heavy_check_mark:
:x:
:x:
:x:
:x:
Cookies (out-of-the-box)
:heavy_check_mark:
:x:
:x:
:x:
:x:
Follows redirects
:heavy_check_mark:
:heavy_check_mark:
:heavy_check_mark:
:heavy_check_mark:
:heavy_check_mark:
Retries on failure
:heavy_check_mark:
:x:
:heavy_check_mark:
:x:
:heavy_check_mark:
Progress events
:heavy_check_mark:
:x:
:heavy_check_mark:
Browser only
:heavy_check_mark:
Handles gzip/deflate
:heavy_check_mark:
:heavy_check_mark:
:heavy_check_mark:
:heavy_check_mark:
:heavy_check_mark:
Advanced timeouts
:heavy_check_mark:
:x:
:x:
:x:
:x:
Timings
:heavy_check_mark:
:x:
:x:
:x:
:x:
Errors with metadata
:heavy_check_mark:
:x:
:heavy_check_mark:
:heavy_check_mark:
:x:
JSON mode
:heavy_check_mark:
:heavy_check_mark:
:heavy_check_mark:
:heavy_check_mark:
:heavy_check_mark:
Custom defaults
:heavy_check_mark:
:x:
:heavy_check_mark:
:heavy_check_mark:
:x:
Composable
:heavy_check_mark:
:x:
:x:
:x:
:heavy_check_mark:
Hooks
:heavy_check_mark:
:x:
:heavy_check_mark:
:heavy_check_mark:
:x:
Issues open
Issues closed
Downloads
Coverage
TBD
Build
Bugs
Dependents
Install size
GitHub stars
TypeScript support
Last commit
* It's almost API compatible with the browser fetch API.
** Need to switch the protocol manually. Doesn't accept PUSH streams and doesn't reuse HTTP/2 sessions.
:sparkle: Almost-stable feature, but the API may change. Don't hesitate to try it out!
:grey_question: Feature in early stage of development. Very experimental.
Click here to see the install size of the Got dependencies.
Maintainers
Sindre Sorhus
Szymon Marczak
These amazing companies are using Got
Segment is a happy user of Got! Got powers the main backend API that our app talks to. It's used by our in-house RPC client that we use to communicate with all microservices.
β Vadim Demedes
Antora, a static site generator for creating documentation sites, uses Got to download the UI bundle. In Antora, the UI bundle (aka theme) is maintained as a separate project. That project exports the UI as a zip file we call the UI bundle. The main site generator downloads that UI from a URL using Got and streams it to vinyl-zip to extract the files. Those files go on to be used to create the HTML pages and supporting assets.
β Dan Allen
GetVoIP is happily using Got in production. One of the unique capabilities of Got is the ability to handle Unix sockets which enables us to build a full control interfaces for our docker stack.
β Daniel Kalen
We're using Got inside of Exoframe to handle all the communication between CLI and server. Exoframe is a self-hosted tool that allows simple one-command deployments using Docker.
β Tim Ermilov
Karaoke Mugen uses Got to fetch content updates from its online server.
β Axel Terizaki
Renovate uses Got, gh-got and gl-got to send millions of queries per day to GitHub, GitLab, npmjs, PyPi, Packagist, Docker Hub, Terraform, CircleCI, and more.
β Rhys Arkins
Resistbot uses Got to communicate from the API frontend where all correspondence ingresses to the officials lookup database in back.
β Chris Erickson
Natural Cycles is using Got to communicate with all kinds of 3rd-party REST APIs (over 9000!).
β Kirill Groshkov
Microlink is a cloud browser as an API service that uses Got widely as the main HTTP client, serving ~22M requests a month, every time a network call needs to be performed.
β Kiko Beats
Weβre using Got at Radity. Thanks for such an amazing work!
How does sindresorhus/got compare to other Backend projects?
sindresorhus/got is tracked by TopGit in the Backend category, with 14.9k GitHub stars and written in TypeScript. Browse the Backend topic page on TopGit to compare it against similar projects by stars and activity.
Is sindresorhus/got open source?
Yes β sindresorhus/got ships under the MIT license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/sindresorhus/got.
What else is in the Backend space?
sindresorhus/got is tracked by TopGit under the Backend category, alongside 6 GitHub-tagged topics. Trending and Topics pages list peer repositories of comparable stars and language.
What is sindresorhus/got?
sindresorhus/got (sindresorhus/got) is a TypeScript project on GitHub. From the project's own README: π Human-friendly and powerful HTTP request library for Node.js
Where do I read more about sindresorhus/got?
This TopGit page is a snapshot β the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/sindresorhus/got is the definitive source.
Why is sindresorhus/got categorized under Backend?
TopGit places sindresorhus/got in the Backend category based on its GitHub topics and description (tagged: "http", "http-client", "http-request"). Categories are assigned from real repository metadata, not editorial guesswork.
Read full README in the tab above.
Is got worth your time?
ChatGPT, Claude and Perplexity can all read this page. Ask one of them what it makes of got.