# Changelog This page documents changes to the Zulip Server API over time. The recommended way for a client like the Zulip mobile or desktop apps that needs to support interaction with a wide range of different Zulip server versions is to check the `zulip_feature_level` parameter in the `/register` and `/server_settings` responses to determine which of the below features are supported. ## Changes in Zulip 2.2 **Feature level 19** * [`GET /events`](/api/get-events): `subscriptions` event with `op="peer_add"` and `op="peer_remove"` now identify the modified stream by a `stream_id` field, replacing the old `name` field. **Feature level 18** * [`POST /register`](/api/register-queue): Added `user_avatar_url_field_optional` to supported `client_capabilities`. **Feature level 17** * [`GET users/me/subscriptions`](/api/get-subscriptions), [`GET /streams`](/api/get-streams): Added `message_retention_days` to Stream objects. * [`POST users/me/subscriptions`](/api/subscribe), [`PATCH streams/{stream_id}`](/api/update-stream): Added `message_retention_days` parameter. **Feature level 16** * [`GET /users/me`]: Removed `pointer` from the response, as the "pointer" concept is being removed in Zulip. * Changed the rendered HTML markup for mentioning a time to use the `