Integrate HookTap in Minutes
Send HTTP POST requests to your personal URL and receive them as real-time push notifications on your iPhone.
What is HookTap?
HookTap turns your iPhone into a real-time webhook receiver. Every HTTP POST request sent to your personal URL is instantly delivered as a push notification to your device – no server, no polling, no extra setup.
Create your webhook
Install the app
Download HookTap from the App Store. On first launch, an anonymous account is created automatically – no email or password needed.
→ App StoreCopy your URL
Your personal webhook URL is shown immediately inside the app. Copy it and use it anywhere that can send HTTP requests.
Your personal webhook URL
https://hooks.hooktap.me/webhook/YOUR_IDNo registration. No password. Ready instantly.
Send your first event
POST a JSON payload to your webhook URL. The event arrives on your iPhone within seconds.
curl -X POST https://hooks.hooktap.me/webhook/YOUR_ID \
-H "Content-Type: application/json" \
-d '{
"type": "build",
"title": "CI succeeded",
"body": "Staging deploy is live"
}'Payload fields
typeEvent label – any string, e.g. "build", "deploy", "alert"titleNotification title displayed on the lock screenbodyNotification body textConnect any service directly
Services like GitHub, Stripe, or Grafana send their own fixed JSON format. Field mapping lets you point HookTap at any path inside that payload – no wrapper script or middleware needed.
Plain dot-notation
Extract a value from a nested JSON path using dot-notation.
// Incoming JSON (sent by GitHub)
{
"repository": { "full_name": "acme/backend" },
"workflow_run": {
"name": "Deploy to production",
"conclusion": "success",
"head_branch": "main"
}
}
// fieldMapping – set on the webhook document in Firestore
{
"title": "workflow_run.name",
"nody": "workflow_run.conclusion",
"type": "push"
}
// → Notification
// Title: "Deploy to production"
// Body: "success"Template syntax
Wrap paths in {curly braces} to combine static text, emojis, and multiple fields in one string.
// fieldMapping with template syntax
// Anything inside {…} is resolved as a dot-notation path.
// Everything outside is treated as a literal.
{
"title": "🚀 {repository.full_name}",
"body": "{workflow_run.conclusion} on {workflow_run.head_branch}",
"type": "push"
}
// Same GitHub payload as above
// → Notification
// Title: "🚀 acme/backend"
// Body: "success on main"Deep paths
Any depth of nesting is supported – useful for Stripe, Grafana, or custom webhook payloads.
// Incoming JSON (sent by Stripe)
{
"type": "payment_intent.succeeded",
"data": {
"object": {
"amount": 4900,
"currency": "eur",
"receipt_email": "user@example.com"
}
}
}
// fieldMapping
{
"title": "{type}",
"body": "€{data.object.amount} · {data.object.receipt_email}",
"type": "feed"
}
// → Notification
// Title: "payment_intent.succeeded"
// Body: "€4900 · user@example.com"Deep Link (optional)
The optional Deep Link field accepts a dot-notation path to a URL within your payload. Tapping the notification or event will open this URL directly. Example: pull_request.html_url.
// Incoming JSON (sent by GitHub)
{
"action": "opened",
"pull_request": {
"title": "Fix memory leak",
"html_url": "https://github.com/acme/repo/pull/42"
}
}
// fieldMapping
{
"title": "PR {action}: {pull_request.title}",
"deepLink": "pull_request.html_url"
}
// → Action
// Tapping the notification opens:
// "https://github.com/acme/repo/pull/42"How events are delivered
Every incoming webhook is processed through all three channels simultaneously.
pushPush Notification
Appears instantly on the lock screen and as a banner. Works even when the app is in the background or closed.
feedEvent Log
Stored chronologically in the in-app feed with full payload, timestamp, and read status.
widgetWidget Update
The latest event updates your Home Screen and Lock Screen widget (Pro).
Automatic Status Detection
HookTap automatically detects the status of your events based on keywords in the body or title and adjusts the color of the Live Activities accordingly.
Live Activity Design (Keywords)
success · passed · completed · deployed · ok · healthy · 200 · erfolgreich · abgeschlossen · bestanden · fertig · bereit · gesund
error · failed · failure · critical · down · crash · 500 · urgent · dringend · exception · alert · fehler · fehlgeschlagen · kritisch · absturz · ausgefallen
warning · pending · timeout · slow · degraded · 401 · 403 · important · wichtig · warnung · ausstehend · zeitüberschreitung · langsam · beeinträchtigt
started · running · triggered · queued · info · gestartet · läuft · ausgelöst · warteschlange
Urgent Delivery (Time-Sensitive)
Events with the following keywords are marked as 'Time-Sensitive'. They break through Focus mode and are delivered with priority:
error · fehler · failure · failed · fehlgeschlagen · exception · critical · kritisch · down · crash · 500 · ausgefallen · absturz · urgent · dringend · alert · warning · warnung · timeout · zeitüberschreitung · degraded · beeinträchtigt · 401 · 403 · important · wichtig
Available on all your devices
HookTap works on iPhone and extends to your desktop via native Mac and Windows apps.
iOS
The primary app. Receives webhook events, shows push notifications, manages your URLs, and displays the full event feed.
iPhone · iOS 16+
macOS
Native Mac app that connects to your iPhone via a 6-digit pairing code. Displays events in real time with macOS system notifications.
macOS 13 Ventura+ · .dmg download
Windows
Native Windows app with the same real-time event display and system notifications. Pairs with your iPhone app in seconds.
Windows 10 / 11 · .exe download