HTTPie—aitch-tee-tee-pie—is a user-friendly command-line HTTP client for the API era. It comes with JSON support, syntax highlighting, persistent sessions, wget-like downloads, plugins, and more.

Demonstration of HTTPie use

Install Try online Read docs

Stay in the loop 🌪 Join the occasional HTTPie newsletter for tips and news.

The same command side-by-side with cURL
Comparison of the same request sent with HTTPie and cURL.

HTTPie is designed for painless debugging and interaction with APIs, HTTP servers, and web services, which it accomplishes by:

  • Built-in JSON support
  • Colorized and formatted terminal output
  • Sensible defaults
  • Persistent sessions
  • Forms and file uploads
  • HTTPS, proxies, and authentication support
  • Support for arbitrary request data and headers
  • Wget-like downloads
  • Extensions API
  • Expressive and intuitive syntax
  • Linux, macOS, and Windows support
  • All that & more in 2 simple commands: http + https

See all features

Installation

HTTPie can be installed on any operating system.

$ <tool> brew apt-get pip port yum more… install httpie

Read more

Getting started

Hello World:

$ https httpie.io/hello

Custom HTTP method, HTTP headers and JSON data:

$ http PUT pie.dev/put X-API-Token:123 name=John

Submitting forms:

$ http -f POST pie.dev/post hello=World

See the request that is being sent using one of the output options:

$ http -v pie.dev/get

Build and print a request without sending it using offline mode:

$ http --offline pie.dev/post hello=offline

Use Github API to post a comment on an issue with authentication:

$ http -a USERNAME POST https://api.github.com/repos/httpie/httpie/issues/83/comments body='HTTPie is awesome! :heart:'

Upload a file using redirected input:

$ http pie.dev/post < files/data.json

Download a file and save it via redirected output:

$ http pie.dev/image/png > image.png

Download a file wget style:

$ http --download pie.dev/image/png

Use named sessions to make certain aspects of the communication persistent between requests to the same host:

$ http --session=logged-in -a username:password pie.dev/get API-Key:123
$ http --session=logged-in pie.dev/headers

Set a custom Host header to work around missing DNS records:

$ http localhost:8000 Host:example.com

Learn more in the docs

What people are saying

More #love on Twitter, GitHub

Who uses HTTPie

Developers all around the world rely on HTTPie for API testing. Here is a few of the companies where engineers use it, and/or that use HTTPie in their API docs.

Amazon Apple Facebook GitHub Google LinkedIn Microsoft Monzo RedHat Spotify Strava Stripe Twitter Akamai