HTTP REST client tool for emacs
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 149 commits behind pashky:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


This is a tool to manually explore and test HTTP REST webservices. Runs queries from a plain-text query sheet, displays results as a pretty-printed XML, JSON and even images.


Deploy restclient.el into your site-lisp as usual, (require 'restclient) and prepare a text file with queries.

restclient-mode is a major mode which does a bit of highlighting and supports a few additional keypresses:

  • C-c C-c: runs the query under the cursor, tries to pretty-print the response (if possible)
  • C-c C-r: same, but doesn't do anything with the response, just shows the buffer

Query file example:

# -*- restclient -*-
# Gets user timeline, formats JSON, shows response status and headers underneath
# XML is supported - highlight, pretty-print

# It can even show an image!
# A bit of json GET, you can pass headers too
User-Agent: Emacs24
Accept-Encoding: application/xml

# Post works too, entity just goes after an empty line. Same is for PUT.
Content-Type: application/json

	"jql": "project = HSP",
	"startAt": 0,
	"maxResults": 15,
	"fields": [
# And delete, will return not-found error...

Lines starting with # are considered comments AND also act as separators.

HTTPS and image display requires additional dll's on windows (libtls, libpng, libjpeg etc), which are not in the emacs distribution.

Known issues

  • Comment lines # act as end of enitity. Yes, that means you can't post shell script or anything with hashes as PUT/POST entity. I'm fine with this right now, but may use more unique separator in future.
  • I'm not sure if it handles different encodings, I suspect it won't play well with anything non-ascii. I'm yet to figure it out.


Public domain, do whatever you want (apart from json-reformat.el thing, which is not mine)


Pavel Kurnosov