# Feature catalog — sindresorhus/got

> Canonical page: https://codevetter.com/unpack/got/feature-catalog

# Feature catalog — sindresorhus/got

Scanned commit e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4 (2026-09-20). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

The public surface includes ordinary HTTP calls, buffered body shortcuts, Duplex streams, and asynchronous pagination. Reliability controls include redirects, retry rules, timeouts, abort signals, and structured errors. Custom instances and hooks let applications adapt the client to particular services. Transport, caching, and diagnostic APIs expose capabilities needed by Node applications beyond a basic request wrapper.
- Got installs get, post, put, patch, head, delete, and query shortcuts for both Promise and stream calls; arbitrary configured methods remain available through Options.method. — [source/create.ts#L30-L38](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/create.ts#L30-L38) [source/create.ts#L353-L363](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/create.ts#L353-L363) [source/core/options.ts#L3219-L3223](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/core/options.ts#L3219-L3223)
- Buffered requests expose .json(), .text(), and .buffer(); responseType selects parsing, resolveBodyOnly selects the return shape, and buffer results are Uint8Array rather than necessarily Node Buffer. — [source/as-promise/index.ts#L151-L160](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/as-promise/index.ts#L151-L160) [source/as-promise/index.ts#L288-L305](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/as-promise/index.ts#L288-L305) [source/core/response.ts#L178-L204](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/core/response.ts#L178-L204) [source/as-promise/types.ts#L13-L25](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/as-promise/types.ts#L13-L25)
- Uploads accept JSON, URL-encoded forms, native FormData, strings, byte views, Node streams, and iterable bodies; streams expose request, response, redirect, uploadProgress, and downloadProgress events. — [source/core/index.ts#L973-L1008](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/core/index.ts#L973-L1008) [source/core/index.ts#L1811-L1839](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/core/index.ts#L1811-L1839) [source/as-promise/index.ts#L30-L36](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/as-promise/index.ts#L30-L36)
- Reliability controls include two retries by default for configured methods/errors/statuses, exponential delay with noise and Retry-After handling, eight timeout settings, and AbortSignal cancellation. — [source/core/options.ts#L1299-L1336](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/core/options.ts#L1299-L1336) [source/core/calculate-retry-delay.ts#L16-L41](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/core/calculate-retry-delay.ts#L16-L41) [source/core/timed-out.ts#L14-L23](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/core/timed-out.ts#L14-L23) [source/core/index.ts#L910-L921](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/core/index.ts#L910-L921)
- Redirects follow by default with maxRedirects:10; method rewriting distinguishes 303, cross-origin POST 301/302, optional methodRewriting, and body-preserving 307/308. — [source/core/options.ts#L1282-L1283](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/core/options.ts#L1282-L1283) [source/core/index.ts#L1258-L1260](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/core/index.ts#L1258-L1260) [source/core/index.ts#L1301-L1318](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/core/index.ts#L1301-L1318)
- got.extend() composes defaults and handlers; lifecycle hooks include init, beforeRequest, beforeRedirect, beforeRetry, beforeCache, afterResponse, and beforeError. — [source/create.ts#L154-L181](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/create.ts#L154-L181) [source/core/options.ts#L1273-L1280](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/core/options.ts#L1273-L1280) [documentation/lets-make-a-plugin.md#L85-L115](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/documentation/lets-make-a-plugin.md#L85-L115)
- got.paginate()/each yield items asynchronously and paginate.all collects them; callbacks control transformation, filtering, continuation, and next-request options, with count/request limits and backoff. — [source/create.ts#L194-L204](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/create.ts#L194-L204) [source/create.ts#L224-L255](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/create.ts#L224-L255) [source/create.ts#L346-L351](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/create.ts#L346-L351)
- Advanced integrations include TLS configuration, custom agents and connections, DNS caching, opt-in Unix sockets, cookie jars, HTTP cache adapters, diagnostic channels, and RequestError metadata. — [source/core/options.ts#L3556-L3593](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/core/options.ts#L3556-L3593) [source/core/options.ts#L2187-L2208](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/core/options.ts#L2187-L2208) [source/core/options.ts#L2527-L2540](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/core/options.ts#L2527-L2540) [source/core/diagnostics-channel.ts#L6-L14](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/core/diagnostics-channel.ts#L6-L14) [source/core/errors.ts#L48-L84](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/core/errors.ts#L48-L84)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
