You definitely don't "need" it, it has upsides and downsides. It offers some nice implementations and 'third-party' for authentication, permissions ... The serialization is a nice standardized way to define serialization on your models, and the view structure it provides are also often clearly defined. It gives you an out-of-the-box web UI for working with you api (very useful in development), automatic doc generation (e.g. openapi spec). Disadvantages I found are that you often need to write complex serializers and/or view constructs as soon as you want anything out of the ordinary, it doesn't play well with your model clean methods... It also can use some automatic versioning based on url's but that requires a rather strict and complex structure of your routes.