Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

An expressive clean way to interact with RESTful APIs.

Project description

Latest PyPI version Latest Travis CI build status

An expressive clean way to interact with REsTful APIs. It was inspired by zmallen’s pygraylog.

Chain is a small enhancement to the popular requests package. By referencing the endpoints as attributes to the client, it effectively “chains” the endpoints together, building the target url.

Chain is an attempt to make REsTful API clients look more like python objects, by removing the hardcoded URL strings in the code.

Chain uses the requests package as its http client, keeping its parameters and response objects. If you already use requests as your http client, then adopting chain would be easy.


Lets take for example this API:

# create a new client for the API
>>> import chain
>>> blogs = chain.Client('')

# if you want the posts:
>>> response = blogs.get.posts()

# the response is the response object from the requests package
>>> print response.json()

Numbers and special characters are also supported using dictionary notation

# Get the first post
>>> response = blogs.get.posts[1]()
>>> print response.json()

chain parameters are requests.requests parameters:

# parameters are the same as requests.requests parameters
>>> response = blogs.get.comments(params={'postId': '1'})
>>> print response.json()

>>> comment = {'postId': 1, 'id':501, 'name':'chain', 'email':'', 'body':'meh.'}
>>> response =


pip install chain_py


python test




Works with Python version 2.7, 3.3, 3.4, 3.5 and 3.6


MIT licensed. Requests is licensed by the Apache License. See full LICENSE


chain was written by Anfernee Jervis.

Project details

Download files

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

Files for chain-py, version 0.1.7
Filename, size File type Python version Upload date Hashes
Filename, size chain-py-0.1.7.tar.gz (3.6 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page