Hook vsntfy

An ntfy alternative that reads any webhook.

ntfy is an open-source pub/sub service: you publish a message to a topic and subscribed devices get it. Hook gives you an endpoint any service can call as it is, and shows the whole request as well as the notification.

Hook and ntfy, side by side.

Hook compared with ntfy
Hook

Hook

Free, Pro from $5.99 a month

ntfy icon

ntfy

Free public server, paid plans, or self-host

Price
Price
Free: 10 requests a month. Pro: $1.99/week, $5.99/month or $39.99/year; Lifetime $59.99 (US App Store prices)
Free on ntfy.sh without an account; paid plans add reserved topics and higher limits
Volume
10,000 requests a month on Pro
Free-tier limits not listed on the pricing page
Receiving
Third-party webhooks
Yes: Any request from any service: point Stripe, GitHub or anything else straight at it
Partly: Accepts a raw POST, but turns JSON into a message only with templates (built in for GitHub, Grafana and Alertmanager)
Read the full request
Yes: Headers, query string and full body, formatted, with the raw request kept
No: Shows the message, not the request headers
Signed payloads
Yes: JWS/JWT bodies decoded, nested ones too (App Store notifications)
No: Not in the docs
Sender recognition
Yes: Stripe, GitHub, Slack, Shopify, GitLab, Linear, Vercel, Sentry, Discord and the App Store named on arrival
No: Not in the docs
Email in
Yes: A mail.gethook.app address per workspace
Yes: Email to ntfy-<topic>@ntfy.sh; the subject becomes the title
Forward to your service
Partly: Proxy to your own URL on Pro
No: Not in the docs
Notifications
AI-written notifications
Yes: Title and summary written from any payload, in your language; or your own template
No: Not in the docs; JSON needs a template
Push
Yes: iPhone push, and browser push on Pro
Partly: Android and iOS; a self-hosted server relays iOS push through ntfy.sh
Publish from scripts
Yes: Hook-Title, Hook-Priority, Hook-Tags, Hook-Click, actions, as headers or URL parameters
Yes: Title, priority, tags, click, actions, attachments as headers
Priority
Yes: Five levels, from silent (1) to urgent (5)
Yes: Five levels
Platform
Apps
Partly: iPhone and iPad app, plus a web app; no Android
Yes: Android, iOS and web apps
History
7 days on Free; full history on Pro
Messages cached for 12 hours by default
Self-hosting
No: Hosted only
Yes: Yes
Open source
No: Closed source
Yes: Apache 2.0 / GPLv2
  • Supported
  • Limited
  • Not available

ntfy details are from their public website and docs as of October 2026. Hook prices are US App Store prices.

Why people pick Hook over ntfy.

  • Point services at it unchanged

    Stripe, GitHub or the App Store cannot reshape their payload into a message. Hook takes the request as sent and still makes a readable notification.

  • The request, not just a line of text

    Open any notification to read headers, query string and body, with JWS payloads decoded.

  • Built for iPhone first

    A native iOS app with five priority levels and a web inbox for the laptop, with no relay server to run.

When ntfy is the better choice.

  • You want to self-host, or need an open-source tool.

  • You need Android: Hook is iPhone, iPad and web only.

  • You only send short messages from your own scripts and want it free.

  • You need attachments or phone-call alerts.

Questions about Hook and ntfy.

Can I keep my ntfy-style curl commands?

Almost: ntfy's X-Title and X-Priority become Hook-Title and Hook-Priority, and the body is the message. Hook does not accept ntfy's header names, by design.

Does Hook have topics?

Yes. Add a topic to the endpoint path (/workspace/<key>/<topic>); each one gets its own entry in the web app, and you can mute it or set a minimum priority.

Is Hook open source or self-hostable?

No. Hook is a hosted service with an iPhone and iPad app and a web app.

More in the docs: Get started · Publishing messages

How Hook compares with other tools.

Try Hook next to ntfy. Free to start.