Send a push notification from Python
July 20, 2026 · 4 min read
Your script finished, your scraper found something, your training run crashed – and you're not at the desk. Here is the complete Python-to-phone pipeline: one POST request.
Setup (once, under a minute)
Install the Webhooky app (Android / iOS) – your endpoint URL is ready the moment it opens, no account needed. Copy it.
The one-liner
import requests
requests.post("https://api.webhooky.app/YOUR_KEY", json={
"title": "✅ Script finished",
"message": "Processed 14,302 rows in 3m 12s",
})
That's everything. title and message are optional – without them the notification uses the texts you configured for the endpoint.
The error-alert pattern
import requests
def notify(title, message, sound="notification_1"):
try:
requests.post("https://api.webhooky.app/YOUR_KEY",
json={"title": title, "message": message, "sound": sound},
timeout=5)
except requests.RequestException:
pass # never let the alert break the job
try:
run_pipeline()
notify("✅ Pipeline done", "All steps completed", sound="level_up_2")
except Exception as e:
notify("🚨 Pipeline FAILED", str(e)[:500], sound="error_1")
raise
The sound field picks one of 40 sounds per message – an alarm for failures, a level-up for success, a cash register for sales.
No dependencies? Standard library works too
from urllib import request
import json
request.urlopen(request.Request(
"https://api.webhooky.app/YOUR_KEY",
data=json.dumps({"title": "Hello from stdlib"}).encode(),
headers={"Content-Type": "application/json"},
))
Where this runs
Anywhere Python runs: servers, Raspberry Pis, Jupyter notebooks, GitHub Actions, cron jobs. The API docs list all fields; the same trick works in Node.js.
Get Webhooky
Free for your first 100 notifications – set up your endpoint in two minutes.