Telegram bot
Telegram's Bot API from 2015, notoriously easy to get started with: talk to @BotFather, get a token, and one HTTP call is enough to send a message.
The whole API is ordinary HTTPS. The bot either polls for new messages with getUpdates or registers a webhook that Telegram calls. No persistent connection is required, which means a bot can be a shell script or a serverless function. That's why it's the standard route for alerts from home servers, build systems and monitoring — a notification on your phone after ten minutes of work. Inline keyboards add buttons beneath messages. Important limitation: a bot can never initiate contact, the user must write first, which closes the obvious spam route. Download file size is also capped.