sindresorhus/got

🌐 Human-friendly and powerful HTTP request library for Node.js

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 20 minutes ago
Added to GitGenius on July 3rd, 2026
Created on March 27th, 2014
Open Issues & Pull Requests: 0 (+0)
Number of forks: 992
Total Stargazers: 14,930 (+0)
Total Subscribers: 107 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 4.6 days
Mean response time: 245.9 days
90th percentile: 935.3 days
Tracked items: 181

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Work labelled "bug" is answered fastest, typically in about 4 hours, while "enhancement" waits about 6 days. Only 5% of issues opened in the past year have been closed. Three people close 95% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 0
New in 7 days: 0
Closed in 7 days: 0
Avg open age: N/A days
Stale 30+ days: 0
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • ✭ help wanted ✭ (24)
  • enhancement (21)
  • external (13)
  • bug (12)
  • future (5)
  • good for beginner (3)
  • nodejs bug (2)
  • question (2)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Got is a human-friendly and powerful HTTP request library for Node.js, written in TypeScript and designed as an alternative to other HTTP clients. The library is used by over 10,000 packages and 5 million repositories, making it one of the most widely adopted HTTP clients in the Node.js ecosystem.

The library provides both Promise-based and Stream APIs for making HTTP requests. The Promise API includes a dedicated JSON mode with a `.json<T>()` function that returns `Promise<T>`, along with advanced options like `parseJson` and `stringifyJson` for handling JSON payloads. The Stream API enables handling of large responses and streaming data. Got also offers a Pagination API for handling paginated endpoints, making it easier to work with APIs that return data in pages.

Got distinguishes itself through several advanced features not commonly found in competing libraries. It includes RFC-compliant caching, built-in cookie handling out-of-the-box, and advanced timeout handling with detailed timeout configuration options. The library implements automatic retries on failure by default, with configurable retry limits through the `options.retry.limit` setting. It supports HTTP/2 on Node.js 15.10.0 and above, provides Unix Domain Socket support, and includes comprehensive error handling with metadata-rich error objects.

The library supports hooks for request lifecycle customization, instance creation for managing multiple configurations, and a plugin system that has spawned ecosystem tools like got4aws for AWS API interactions, gh-got for GitHub API access, and got-scraping for web scraping purposes. Got also integrates with Node.js Diagnostics Channel for observability and provides full TypeScript support with type definitions.

The package is native ESM-only and no longer provides CommonJS exports, requiring projects to convert to ESM if they use CommonJS. Got v11 is no longer maintained. The README explicitly recommends Ky, also by the same author, as a smaller alternative that works in browsers and is built on the Fetch API, or fetch-extras for simpler use cases. Comparison tables in the documentation show Got's advantages over node-fetch, axios, and superagent, particularly in areas like pagination support, RFC-compliant caching, advanced timeouts, and composability. Migration guides are provided for users coming from the unmaintained Request library, Axios, or Node.js built-in HTTP modules.