A microframework created to help write JSON:API compliant services, in async Python, on top of starlette and marshmallow-jsonapi.

starlette-jsonapi does not come with a data layer implementation, so you should be able to pick any available ORM (sync or async). This also means that you are going to get a simple interface for writing JSON:API compliant resources, with some helpers to make it easier.

Data access is on you, the default implementation will otherwise return 405 errors.


  • 100% tests coverage

  • basic JSON:API serialization and deserialization

  • compound documents

  • starlette friendly route generation

  • exception handlers to serialize as JSON:API errors

  • relationship resources

  • related resources

  • sparse fields

  • support for client generated IDs

  • support top level meta objects

  • pagination helpers

  • OpenAPI 3.x (f.k.a Swagger) integration