← All articles
Developer API, MCP and webhooks·

Set up Getwello with ntfy

Open-source push notifications. Free on the public instance, self-hostable.

ntfy is open-source push notification service. Subscribe to a topic on your phone; anyone who knows the topic name can publish to it. Simple, free, self-hostable.

What you need

  • ntfy app on your phone (free, App Store or Play Store).
  • An ntfy instance: public ntfy.sh or self-hosted.
  • A Getwello Coordinator account with active subscription.

Step 1: Subscribe to a topic

  1. Open the ntfy app, tap +.
  2. Pick a hard-to-guess topic name like mum-checkins-a8f3z7.
  3. The phone now receives any POST to https://ntfy.sh/mum-checkins-a8f3z7.

Step 2: Test the topic

From a terminal:

curl -d "Hello from a test" ntfy.sh/mum-checkins-a8f3z7

The phone should buzz immediately.

Step 3: Build a relay

ntfy uses headers for title, priority, tags. Our event JSON needs translation:

export default {
  async fetch(req, env) {
    const evt = await req.json();
    const isMissed = evt.event === 'check_in.missed';
    await fetch(`https://ntfy.sh/${env.NTFY_TOPIC}`, {
      method: 'POST',
      headers: {
        'Title': isMissed
          ? 'Mum missed her check-in'
          : 'Mum has checked in',
        'Priority': isMissed ? '5' : '3',
        'Tags': isMissed ? 'warning,missed' : 'white_check_mark,check-in',
        'Click': 'https://getwello.co.uk/app',
      },
      body: `${evt.occurred_at} · Mood: ${evt.data.mood ?? 'n/a'}`,
    });
    return new Response('ok');
  }
};

Step 4: Create the Getwello webhook subscription

Settings → Developer API → Webhooks. URL is your relay (or directly to ntfy.sh/topic if you don't need fancy headers).

Self-host the ntfy server

One-line Docker:

docker run -p 80:80 -v /var/cache/ntfy:/var/cache/ntfy \
  binwiederhier/ntfy serve

Point your phone at https://your-ntfy.example.com and the relay too. All traffic stays on your infrastructure.

Troubleshooting

iOS push doesn't arrive: the iOS app uses Apple Push, which on self-hosted instances requires a relay through ntfy.sh. The ntfy docs explain the config.

Topic discovered: ntfy topics are public if anyone knows the name. Use a long random suffix or self-host with auth.

More on developer api, mcp and webhooks

Didn't answer your question?

Email hello@getwello.co.uk