# TypeScript HTTP Client Libraries

> AI-ranked search results for `best typescript http client libraries` on awesome-repositories.com — ordered by an LLM for relevance, best match first. 115 total matches; showing the top 12.

Explore on the web: https://awesome-repositories.com/q/best-typescript-http-client-libraries

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [this search on awesome-repositories.com](https://awesome-repositories.com/q/best-typescript-http-client-libraries).**

## Results

- [unjs/ofetch](https://awesome-repositories.com/repository/unjs-ofetch.md) (5,316 ⭐) — ofetch is an HTTP client built on the native fetch API that adds automatic JSON serialization, request/response interceptors, configurable retry, and timeout handling. It provides descriptive error objects for non-OK responses and automatically parses response bodies based on their content type.

The client supports creating pre-configured instances with preset base URLs, headers, and default options, enabling consistent configuration across a project. It offers full TypeScript type inference for response data and request payloads, and allows extending request options with custom properties wh
- [elbywan/wretch](https://awesome-repositories.com/repository/elbywan-wretch.md) (5,174 ⭐) — Wretch is a chainable HTTP client library and Fetch API wrapper designed to simplify network request configuration, response parsing, and error handling. It functions as a network request manager and middleware framework for managing the end-to-end lifecycle of HTTP calls.

The project is distinguished by a fluent interface for request configuration and a modular extension system. It utilizes a programmable response resolver to automate parsing and a plugin-based architecture to add new capabilities to request and response objects.

The library covers a broad range of operational capabilities,
- [sindresorhus/ky](https://awesome-repositories.com/repository/sindresorhus-ky.md) (16,943 ⭐) — 🌳 Tiny & elegant JavaScript HTTP client based on the Fetch API
- [bitinn/node-fetch](https://awesome-repositories.com/repository/bitinn-node-fetch.md) (8,861 ⭐) — node-fetch is a lightweight HTTP client library that implements the browser-standard Fetch API for Node.js. It provides a promise-based interface for making asynchronous network requests to retrieve or send data from server-side environments.

The project specializes in memory-efficient data handling by utilizing request and response streaming. This allows for the incremental processing of large network payloads through native system streams to prevent memory exhaustion.

The library covers a broad range of networking capabilities, including the use of custom HTTP agents for DNS and SSL config
- [mzabriskie/axios](https://awesome-repositories.com/repository/mzabriskie-axios.md) (109,096 ⭐) — Axios is a promise-based HTTP client used to make asynchronous network requests in both browser and Node.js environments. It functions as a multi-environment network adapter that abstracts the transport layer to ensure consistent behavior across different runtimes.

The project distinguishes itself through a request lifecycle management system that allows for the cancellation of active requests, the setting of timeouts, and the monitoring of upload and download transfer progress. It includes a mechanism for intercepting network traffic, enabling the transformation of outgoing requests and inco
- [node-fetch/node-fetch](https://awesome-repositories.com/repository/node-fetch-node-fetch.md) (8,857 ⭐) — node-fetch is a promise-based HTTP client library that provides a lightweight implementation of the Fetch API for the Node.js runtime. It serves as a network interface for performing asynchronous HTTP requests, handling server communication, and managing headers.

The library utilizes a promise-based request lifecycle to wrap network calls, ensuring asynchronous behavior. It incorporates stream-based handling for both requests and responses to process large payloads efficiently without overloading system memory.

Its capabilities cover a broad range of network communication tasks, including th
- [sindresorhus/got](https://awesome-repositories.com/repository/sindresorhus-got.md) (14,915 ⭐) — Got is a promise-based HTTP request library for Node.js that supports HTTP/2 and streaming. It provides a system for making network requests with a focus on asynchronous control flow and type-safe API client development.

The library is distinguished by its middleware-based request lifecycle, which uses interceptors and plugins to modify request options and response data. It includes a configurable automatic retry mechanism with backoff strategies, a built-in HTTP response cache, and a cookie-jar system for maintaining persistent sessions.

Broad capabilities cover data handling through duplex
- [axios/axios](https://awesome-repositories.com/repository/axios-axios.md) (109,077 ⭐) — Axios is an isomorphic, promise-based HTTP client designed for making asynchronous network requests across different JavaScript execution environments, including the browser and Node.js. It functions as a JSON API client that serializes JavaScript objects into JSON and parses server responses into structured data.

The project features a system for managing reusable client instances with shared configurations, such as base URLs and default settings. It includes a mechanism for intercepting outgoing requests and incoming responses globally, allowing data to be transformed before it reaches the
- [mikeal/r2](https://awesome-repositories.com/repository/mikeal-r2.md) (4,404 ⭐) — r2 is a JavaScript HTTP client library and asynchronous request library used for executing network calls. It provides a runtime-agnostic network layer that abstracts underlying HTTP implementations to ensure consistent behavior across different JavaScript execution environments.

The library functions as a JSON API client, automatically parsing response bodies and formatting outgoing payloads. It utilizes a promise-based interface to manage the lifecycle of HTTP requests and responses.

The project covers REST API integration and HTTP header management, allowing users to attach custom key-valu
- [visionmedia/superagent](https://awesome-repositories.com/repository/visionmedia-superagent.md) (16,650 ⭐) — Superagent is a cross-platform JavaScript HTTP client and Ajax library used for exchanging data between clients and servers. It provides a consistent API for making network requests that works identically across both Node.js and web browser environments.

The library features a request pipeline that allows for the addition of custom behaviors to outgoing network calls. This system supports the implementation of specialized functions such as request throttling, caching, and the automatic signing of outgoing data.
- [nodejs/undici](https://awesome-repositories.com/repository/nodejs-undici.md) (7,437 ⭐) — Undici is a high-performance HTTP client for Node.js designed to execute network requests while minimizing resource overhead and latency.

The project provides specialized capabilities for HTTP request pipelining to increase throughput and memory-based response caching to reduce redundant network calls. It also supports HTTP tunneling and proxying through the establishment of secure two-way communication channels via the connect method.

Additionally, the client includes tools for web API polyfilling to provide standard browser network interfaces within Node.js environments. Its functional sur
- [hapijs/wreck](https://awesome-repositories.com/repository/hapijs-wreck.md) (0 ⭐) — wreck is part of the hapi ecosystem and was designed to work seamlessly with the hapi web framework and its other components (but works great on its own or with other frameworks). If you are using a different web framework and find this module useful, check out hapi – they work even better together.
