I think I'm in love.. httpie @ http://t.co/MKKT0wCa - "http GET http://t.co/fFPnSRY4" in your console + pygments, etc!
— Ilya Grigorik (@igrigorik) March 5, 2012
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.
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
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/jakubroztocil/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
Testimonials
httpie is a command-line curl-like utility which is just a joy to use. Syntax coloring and wonderful UX for APIs
— Patrick McKenzie (@patio11) November 11, 2015
"Should I use curl or wget?" Neither. You should use httpie https://t.co/M3HZtZWltQ pic.twitter.com/PaPIEHpG09
— John Arundel (@bitfield) May 17, 2019<
blown away by httpie, great CLI for consuming/testing REST apis https://t.co/viwRVRgK6w pic.twitter.com/Xcpw8STgl0
— n1k0 (@n1k0) February 4, 2015
OMG httpie is love at first use. It'll be hard for me to give up curl (as I've been using it forever) but will happily ditch it for httpie.
— Cindy Sridharan (@copyconstruct) August 4, 2016
Holy crap, https://t.co/G3RO6QaS has changed my workflow almost as much as switching from notepad did.
— Luke (@girasquid) April 3, 2012
it's stuff like https://t.co/rYuioyokYn that makes me love #httpie so much. it just does The Right Thing. with no annoying surprises. 💙
— Igor Clark (@igorclark) September 10, 2014
I love httpie. That's all.
— Jeff Boshers (@boundbystars) January 22, 2015
Your regular reminder to try HTTPie as #HTTP CLI client instead of #curl https://t.co/zgAemj8tBs Python
— Henning Jacobs (@try_except_) October 27, 2017
I can't believe I haven't used HTTPie https://httpie.org sooner. Especially given how many APIs I have created / worked on.
— @webology November 11, 2015
Your regular reminder to try HTTPie as #HTTP CLI client instead of #curl https://httpie.org #Python
— Henning Jacobs (@try_except_) November 11, 2015
If you're in need of a great CLI tool to use with HTTP servers, RESTful APIs, and web services you're in luck. HTTPie from @jakubroztocil is the perfect solution 🤗 Part of December's #GHReleaseRadar https://httpie.org/ (@github) January 11, 2019
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.