background-hooknotifierbackground-hooknotifier
Last update: Jul 05, 20261 minutes read

How to send a push notification from curl

guide

Send a native push notification to your phone from a single curl command. Point curl at your Hook.Notifier URL. No app, no Firebase, no dev account. Free.

To send a push notification from curl, call your Hook.Notifier URL with a title and body. One command, and a native notification appears on your phone. No SDK, no API keys, no app to build.

curl is on every server and every laptop. That makes it the simplest possible way to notify yourself: if a machine can run curl, it can push to your phone.

The one-liner

curl -s "https://hooknotifier.com/{IDENTIFIER}/{KEY}?object=Hello&body=From%20curl"

object is the title, body is the message. That is the minimum. Run it and check your phone.

hook notifier notification

First get your URL

Your Hook.Notifier URL is https://hooknotifier.com/{IDENTIFIER}/{KEY}. Create a free account to get yours, then use it in any curl command.

Add priority, color and tags

Everything is a query parameter, so you can shape the notification inline:

curl -s "https://hooknotifier.com/{IDENTIFIER}/{KEY}?object=Deploy%20failed&body=Build%20%23431%20did%20not%20pass&priority=high&color=%23EE6767&tags=ci"
  • priority=high or critical cuts through your quiet hours.
  • color=%23EE6767 (url-encoded #EE6767) shows the notification in red.
  • tags=ci routes it into a tag folder in your inbox.

POST with a JSON body

If you would rather send JSON, POST it:

curl -s -X POST "https://hooknotifier.com/{IDENTIFIER}/{KEY}" \
  -H "Content-Type: application/json" \
  -d '{"object": "Hello", "body": "From curl via POST", "priority": "normal"}'

Both forms do the same thing; use whichever fits the tool you are calling from.

Escape spaces and special characters

In a URL, spaces become %20 and # becomes %23. If your body is built from a variable, let curl encode it for you with --data-urlencode:

curl -s -G "https://hooknotifier.com/{IDENTIFIER}/{KEY}" \
  --data-urlencode "object=Backup done" \
  --data-urlencode "body=Finished in ${elapsed}s"

This is the safe way to send dynamic text without worrying about encoding.

Why it matters

Every other way to push to a phone wants an SDK, a project, API keys, and a mobile app. curl against one URL needs none of that. It drops into a cron job, a CI step, a deploy script, or a one-off command in seconds, and it is free.

Next: chain it to notify you when a long command finishes, or use it in a full shell script.