HTTPie (pronounced aitch-tee-tee-pie) is a command-line HTTP client.
Its goal is to make CLI interaction with web services as human-friendly as possible.
HTTPie is designed for testing, debugging, and generally interacting with APIs & HTTP servers.
The http & https commands allow for creating and sending arbitrary HTTP requests.
They use simple and natural syntax and provide formatted and colorized output.
Main features
- Expressive and intuitive syntax
- Formatted and colorized terminal output
- Built-in JSON support
- Forms and file uploads
- HTTPS, proxies, and authentication
- Arbitrary request data
- Custom headers
- Persistent sessions
- Wget-like downloads
- Linux, macOS, Windows, and FreeBSD support
- Plugins
- Documentation
- Test coverage
Installation
Universal
PyPI
Please make sure you have Python 3.7 or newer (python --version).
# Install httpie
$ python -m pip install --upgrade pip wheel
$ python -m pip install httpie# Upgrade httpie
$ python -m pip install --upgrade pip wheel
$ python -m pip install --upgrade httpiemacOS
Homebrew
To install Homebrew, see its installation.
# Install httpie
$ brew update
$ brew install httpie# Upgrade httpie
$ brew update
$ brew upgrade httpieMacPorts
To install MacPorts, see its installation.
# Install httpie
$ port selfupdate
$ port install httpie# Upgrade httpie
$ port selfupdate
$ port upgrade httpieWindows
Chocolatey
To install Chocolatey, see its installation.
# Install httpie
$ choco install httpie# Upgrade httpie
$ choco upgrade httpieLinux
Debian and Ubuntu
Also works for other Debian-derived distributions like MX Linux, Linux Mint, deepin, Pop!_OS, KDE neon, Zorin OS, elementary OS, Kubuntu, Devuan, Linux Lite, Peppermint OS, Lubuntu, antiX, Xubuntu, etc.
# Install httpie
$ curl -SsL https://packages.httpie.io/deb/KEY.gpg | sudo gpg --dearmor -o /usr/share/keyrings/httpie.gpg
$ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/httpie.gpg] https://packages.httpie.io/deb ./" | sudo tee /etc/apt/sources.list.d/httpie.list > /dev/null
$ sudo apt update
$ sudo apt install httpie# Upgrade httpie
$ sudo apt update && sudo apt upgrade httpieFedora
# Install httpie
$ dnf install httpie# Upgrade httpie
$ dnf upgrade httpieCentOS and RHEL
Also works for other RHEL-derived distributions like ClearOS, Oracle Linux, etc.
# Install httpie
$ yum install epel-release
$ yum install httpie# Upgrade httpie
$ yum upgrade httpieSingle binary executables
Get the standalone HTTPie Linux executables when you don't want to go through the full installation process.
# Install httpie
$ https --download packages.httpie.io/binaries/linux/http-latest -o http
$ ln -ls ./http ./https
$ chmod +x ./http ./https# Upgrade httpie
$ https --download packages.httpie.io/binaries/linux/http-latest -o httpSnapcraft (Linux)
To install Snapcraft, see its installation.
# Install httpie
$ snap install httpie# Upgrade httpie
$ snap refresh httpieLinuxbrew
To install Linuxbrew, see its installation.
# Install httpie
$ brew update
$ brew install httpie# Upgrade httpie
$ brew update
$ brew upgrade httpieArch Linux
Also works for other Arch-derived distributions like ArcoLinux, EndeavourOS, Artix Linux, etc.
# Install httpie
$ pacman -Syu httpie# Upgrade httpie
$ pacman -SyuFreeBSD
FreshPorts
# Install httpie
$ pkg install www/py-httpie# Upgrade httpie
$ pkg upgrade www/py-httpieUnstable version
If you want to try out the latest version of HTTPie that hasn't been officially released yet, you can install the development or unstable version directly from the master branch on GitHub. However, keep in mind that the development version is a work in progress and may not be as reliable as the stable version.
You can use the following command to install the development version of HTTPie on Linux, macOS, Windows, or FreeBSD operating systems. With this command, the code present in the master branch is downloaded and installed using pip.
$ python -m pip install --upgrade https://github.com/httpie/cli/archive/master.tar.gzThere are other ways to install the development version of HTTPie on macOS and Linux.
You can install it using Homebrew by running the following commands:
$ brew uninstall --force httpie
$ brew install --HEAD httpieYou can install it using Snapcraft by running the following commands:
$ snap remove httpie
$ snap install httpie --edgeTo verify the installation, you can compare the version identifier on GitHub with the one available on your machine. You can check the version of HTTPie on your machine by using the command http --version.
$ http --version
# 3.X.X.dev0Note that on your machine, the version name will have the .dev0 suffix.
Usage
Hello World:
$ https httpie.io/helloSynopsis:
$ http [flags] [METHOD] URL [ITEM [ITEM]]See also http --help (and for systems where man pages are available, you can use man http).
Examples
Custom HTTP method, HTTP headers and JSON data:
$ http PUT pie.dev/put X-API-Token:123 name=JohnSubmitting forms:
$ http -f POST pie.dev/post hello=WorldSee the request that is being sent using one of the output options:
$ http -v pie.dev/getBuild and print a request without sending it using offline mode:
$ http --offline pie.dev/post hello=offlineUse GitHub API to post a comment on an issue with authentication:
$ http -a USERNAME POST https://api.github.com/repos/httpie/cli/issues/83/comments body='HTTPie is awesome! :heart:'Upload a file using redirected input:
$ http pie.dev/post < files/data.jsonDownload a file and save it via redirected output:
$ http pie.dev/image/png > image.pngDownload a file wget style:
$ http --download pie.dev/image/png