Skip to main content

A library that makes consuming a REST API easier and more convenient

Project description

Slumber Build status Test coverage percentage Documentation

Slumber is a Python library that provides a convenient yet powerful object-oriented interface to ReSTful APIs. It acts as a wrapper around the excellent requests library and abstracts away the handling of URLs, serialization, and request processing.

Getting Help

Visit IRC channel (#slumber on to get help, bounce ideas or generally shoot the breeze.


  1. Install Slumber:

    $ pip install slumber
  2. Install Optional Requirement:

    pip install pyyaml
  3. Use Slumber!


Slumber requires the following modules.

  • Python 2.6+

  • requests

  • pyyaml (If you are using the optional YAML serialization)


development version


  • Further Python 3 compatibility fixes, many thanks to Alexander Shchepetilnikov (irqed)


  • Remove simplejson dependency.

  • Support range now Python 2.6 - Python 3.4


  • All HTTP methods support multipart/form-data. The new files parameter is directly passed to requests. Thanks to Philip Neustrom and Diego Gaustein.


  • Now compatible with requests 1.0 thanks to Matias Saguir.

  • Fix bug when using default serializer. Thanks to Andy McKay


  • Support decoded unicode url fragments - Thanks @collinwat


  • Added a session kwarg to slumber.API allowing passing a requests session that will be used instead of the slumber created one


  • (Backwards Incompatible) Switched from httplib2 to requests

  • (Backwards Incompatible) Removed the Meta class Magic

  • (Backwards Incompatible) Removed the ability to subclass slumber.API to specify defaults

  • (Backwards Incompatible) New Syntax for Specifying Authentication


  • Fix regression where pre 0.3 urls were assumed to end in slash, and 0.3.0 presumed to end in not slash. Urls are now assumed to end in a slash, and if you don’t want this behavior you can disable it by the append_slash kwarg/Meta option (set to False to disable it).

  • Fix regression caused by a mistyped variable name.


  • Allowed nesting resources infinitely to allow more complex api usage.

  • Cleaned up the Meta class and allow subclassing slumber.API

  • (Backwards Incompatible) Cleaned up the exception names.

  • (Backwards Incompatible) Renamed the slumber.API serialization kwarg from default_format to format to be more consistent

  • Improved the documentation

  • Added Some Tests (This could still be better)


  • Fixed https urls and the accidental force to port 80

  • Fixed the assumption that all urls end in a trailing slash


  • Fixed Including of Changelog.rst


  • Updated the docs to include a section about url parameters


  • (Backwards Incompatible) Move specifying a non default serializer from api.resource.get(format="yaml") to api.resource(format="yaml").get()

  • Reworked the internal Resource api to not clobber any kwargs passed to it. This fixes a bug where you couldn’t use format or url as the name for one of the url parameters.


  • Fix for not passing kwargs to Resource.get()


  • Initial public release of Slumber

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

slumber-0.6.2.tar.gz (10.3 kB view hashes)

Uploaded Source

Built Distribution

slumber-0.6.2-py2-none-any.whl (9.2 kB view hashes)

Uploaded Python 2

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page