Receive your first webhook
Hook gives each workspace one private URL. Add it to a service, send an event, and the complete request appears on your iPhone or iPad with a push notification.
This guide takes about five minutes and assumes you have installed Hook and created a workspace.
Copy your endpoint
Open the Workspace tab in Hook. The Endpoint card shows the URL and the workspace key, each with a Copy button.
https://gethook.app/workspace/{workspace_key}Anyone who has this URL can send requests into your workspace. Keep it out of screenshots, public repositories, and client-side source code.
Send a test webhook
Replace {workspace_key} with the key shown in Hook, then run the following command:
curl -X POST "https://gethook.app/workspace/{workspace_key}?identifier=test" \
-H "Content-Type: application/json" \
-d '{"title":"Hello from curl","message":"Your endpoint works."}'curl -X POST "https://gethook.app/workspace/{workspace_key}?identifier=alert" \
-d "Server deployment completed successfully."await fetch("https://gethook.app/workspace/{workspace_key}?identifier=test", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ title: "Hello from fetch", message: "Your endpoint works." }),
});import requests
requests.post(
"https://gethook.app/workspace/{workspace_key}?identifier=test",
json={"title": "Hello from Python", "message": "Your endpoint works."},
)Hook accepts both structured JSON and simple plain text messages. You can post directly from scripts, cron jobs, or CI/CD pipelines without crafting complex JSON payloads.
The event appears in Inbox within a few seconds. Open it to inspect the headers, query parameters, and body exactly as Hook received them.
Any HTTP client works in place of curl. Postman, Hoppscotch, and Hook's own request composer can send the same POST request.
Identifiers and tags
Hook accepts any request body. When you control the JSON, include titleand message to get a readable notification without further setup:
{
"title": "New order",
"message": "Order #1048 was paid",
"amount": 29.99
}Identifiers
An identifier names an event type. Templates use it to decide how a provider's payload is turned into notification text.
https://gethook.app/workspace/{workspace_key}?identifier=order_paidTags
Tags group and filter events. Pass them comma-separated, alone or together with an identifier:
https://gethook.app/workspace/{workspace_key}?identifier=order_paid&tags=sales,urgentHook can build this URL for you. In Workspace, create the tags you need, then use Create Webhook URL.
Notifications
Requests reach Inbox whether or not notifications are enabled. To also receive alerts, open Hook's Settings and turn on Notifications.
If you previously tapped Don't Allow, iOS will not show the permission prompt again. Open the iOS Settings app, go toApps → Hook → Notifications, and turn on Allow Notifications.
Connect a service
In the service you want to monitor, find the Webhooks,Callbacks, or Notifications settings. Create an outgoing webhook, choose POST if asked, and paste your Hook endpoint.
Hook recognises and labels these senders automatically:
- GitHub
- Stripe
- Slack
- Shopify
- GitLab
- Linear
- Vercel
- Sentry
- Discord
- App Store Server
Any other HTTP sender works too, including Zapier, IFTTT, Home Assistant, CI pipelines, and your own scripts. Requests from unknown providers arrive with the complete request intact; they are simply not labelled.
Troubleshooting
The event is in Inbox, but no notification arrived
The endpoint works. Check the notification switch in Hook's Settings and the iOS permission described under Notifications. Focus modes and Scheduled Summary can also hold notifications back.
The service reports 404, or the event never appears
Copy the endpoint again from Workspace. Confirm the whole workspace key is present and that the service has not added spaces, punctuation, or a trailing slash.
The notification text is not useful
The request is stored in full regardless. Add an identifier to the endpoint and create a matching Template that selects the fields you want to see.
The provider needs a response, or must reach another server
Configure a Proxy Destination in Workspace. Hook forwards the incoming request to your server and keeps a copy for inspection.
Still stuck? Email office@swiftapps.us with the provider name and what you expected to happen. Do not include your full workspace endpoint.