Hi Yasser,
We don't have proper documentation for our different APIs yet, but we do plan to create that documentation as well as some API drivers to make it easier for software to interact with Mattermost. The documentation that do we have is available here.
Of the things you mentioned, there are currently APIs for chatting and searching posts and depending on what events you want to watch, you could possibly use outgoing webhooks for those. Some of those other features like a DND mode and reactions aren't supported yet by Mattermost.
If there's any specific APIs that you're looking, let us know and we can try to help you find them. You could also take a look at the Javascript API driver which is used by our web client.