clj-http is a popular Clojure library for making HTTP requests, built as a wrapper around Apache’s HttpClient. It uses Ring-style request/response maps and middleware, fitting seamlessly into idiomatic Clojure applications. clj-http allows coercing the body of the request either before it is sent (input coercion), or after it’s received (output coercion) from the server. By default, JSON coercion is only applied when the response’s status is considered “unexceptional”. If the :unexceptional-status option is provided, then its value is a function that specifies what status codes are unexceptional. Rather than forcing all request headers to be lowercase strings, clj-http allows strings or keywords of any case. Keywords will be transformed into their canonical representation, so the :content-md5 header will be sent to the server as “Content-MD5”, for instance. String keys in request headers, however, will be sent to the server with their casing unchanged.

Features

  • Supports all major HTTP methods: GET, POST, PUT, DELETE, PATCH, etc.
  • Uses Ring-style maps for requests and responses, with middleware support
  • Convenience functions (get, post, etc.) as sugar for core request API
  • Integrates with standard HTTP clients via Apache HttpComponents
  • Easily configurable headers, timeouts, body parsing, etc.
  • Widely used and easily included via Maven, Leiningen, or Clojure CLI

Project Samples

Project Activity

See All Activity >

Categories

Libraries

License

MIT License

Follow clj-http

clj-http Web Site

Other Useful Business Software
$300 in Free Credit Towards Top Cloud Services Icon
$300 in Free Credit Towards Top Cloud Services

Build VMs, containers, AI, databases, storage—all in one place.

Start your project in minutes. After credits run out, 20+ products include free monthly usage. Only pay when you're ready to scale.
Get Started
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of clj-http!

Additional Project Details

Registered

2025-08-19