As I understand it, to support things like timed bans your only options are undocumented APIs which can change at any point in time. So while some things are documented and possible, not everything is and that's not the level of support we need.
Otherwise APIs used are documented: https://api.slack.com/methods/files.delete https://api.slack.com/methods/chat.delete https://api.slack.com/methods/search.files https://api.slack.com/methods/search.messages
To be clear: NOT recommending Slack. Just mentioning that we also have issues and some tooling has helped, the tools could use more docs but they're pretty simple and open source FWIW.
This is the main reason we aren't considering leaving Slack.