# 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 3.0 **Feature level 24** * The `!avatar()` and `!gravatar()` markdown syntax, which was never documented and rarely used, was removed. **Feature level 23** * `GET/PUT/POST /users/me/pointer`: Eliminated. We eliminated the whole concept of the "global" user pointer leading up to this commit. **Feature level 22** * `GET /attachments`: The date when a message using the attachment was sent is now correctly encoded as `date_sent`, replacing the confusingly named `name` field. The `date_sent` and `create_time` fields of attachment objects are now encoded as integers; (previously the implementation could send floats incorrectly suggesting that microsecond precision is relevant). * `GET /invites`: Now encodes the user ID of the person who created the invitation as `invited_by_user_id`, replacing the previous `ref` field (which had that user's Zulip display email address). **Feature level 21** * `PATCH /settings/display`: Replaced the `night_mode` boolean with `color_scheme` as part of supporting automatic night theme detection. **Feature level 20** * Added support for inviting users as organization owners to the invitation endpoints. **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 `