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.

Get it on Google Play Download on the App Store