Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

JSON API reference implementation for Django Rest Framework

Project Description


JSON API reference implementation for Django Rest Framework

This is an extremely thorough implementation of the JSON API 1.0 specification for the Django Rest Framework. It has strict error handling of non-compliant clients & follows all of the MUST’s of the spec (or will soon where missing).

Known incomplete JSON API spec features/guidelines are:

  • “Relationship Links”

Relationship links are the “self” member of the links object for relationships. Currently, ember doesn’t support relationship modificiation for that endpoint so I have no incentive yet to write it. Having said that, some abstractions have already been written in this library to make the transition easy in the future.

Aside from those known limitations this library is REALLY complete. A TON of focus & attention was spent on meaningful errors & good exception handling. Much more to come on that front as I’m aware needs to be more thorough but those enhancements will come without needing to worry about the JSON API spec.

A breakdown of notable features currently implemented that you’d want in any JSON API server implementation are:

  • filter query params (spanning relationships)
  • include query params (spanning relationships)
  • page query params
  • sort query params
  • related resource links
  • ridiculously easy to follow code
  • comprehensive error handling (parsers, serializers, views, etc)
  • error coalescing
  • hooks for almost every part of the JSON API processing pipeline
  • good quality code comments


  • Python (2.7, 3.3, 3.4)
  • Django (1.6, 1.7, 1.8)
  • Django REST Framework (2.4, 3.0, 3.1)


Install using pip

$ pip install drfjsonapi


TODO: Write example.


Install testing requirements.

$ pip install -r requirements.txt

Run with runtests.

$ ./

You can also use the excellent tox testing tool to run the tests against all supported versions of Python and Django. Install tox globally, and then simply run:

$ tox


To build the documentation, you’ll need to install mkdocs.

$ pip install mkdocs

To preview the documentation:

$ mkdocs serve
Running at:

To build the documentation:

$ mkdocs build

Release History

History Node


History Node


This version
History Node


History Node


Download Files

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

File Name & Hash SHA256 Hash Help Version File Type Upload Date
(25.4 kB) Copy SHA256 Hash SHA256
2.7 Wheel Mar 18, 2016
(21.5 kB) Copy SHA256 Hash SHA256
Source Mar 18, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting