API documentation

The Webhooky API is deliberately tiny: one endpoint URL per notification channel, one POST request per notification. No API keys, no SDK, no OAuth dance – the secret is in the URL.

Your endpoint

Each endpoint you create in the app has a unique URL:

https://api.webhooky.app/YOUR_KEY

Treat the key like a password – anyone who has the URL can send you notifications. You can delete an endpoint (and create a new one) in the app at any time.

Send a notification

Send an HTTP POST to your endpoint. The simplest possible call:

curl -X POST "https://api.webhooky.app/YOUR_KEY"

This delivers a push notification using the title, message, sound and vibration you configured for the endpoint in the app.

Override title, message, sound & vibration

Include any of these fields in a JSON body to control the notification – per request:

curl -X POST "https://api.webhooky.app/YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "New order 🎉",
    "message": "Order #1042 · €49.99",
    "sound": "cash_register",
    "vibrate": true
  }'
  • title – replaces the endpoint name as the notification title (max 100 characters).
  • message – replaces the configured text (max 500 characters).
  • sound – plays a different sound for this notification. Accepts any sound id from the app (e.g. cash_register, error_1, doorbell_1, level_up_1); unknown ids are ignored.
  • vibratetrue/false, overrides the endpoint's vibration setting for this notification.
  • All fields are optional and independent; omitted fields fall back to the endpoint's configuration in the app.
  • Longer values are truncated, whitespace is normalized. All other JSON fields are ignored for display but stored with the event if store payload is enabled.

Per-endpoint, the app additionally offers Silent (no sound or vibration, appears quietly) and Important (heads-up banner on Android) settings that apply to all notifications of that endpoint.

Test page

Opening your endpoint URL in a browser (HTTP GET) shows a test page with input fields for title, message and a JSON payload, plus a send button. Handy for checking your setup without any tooling.

Responses

StatusMeaning
200Webhook accepted. JSON body: {"success": true, "delivered": 1, "devices": 1, "message": "…"}
400No key in the URL.
402Free plan limit reached (100 notifications). Upgrade to Premium in the app.
404Key not found – the endpoint was deleted or the URL is wrong.
405Method not allowed – only GET and POST are supported.

Delivery & limits

  • Notifications are delivered via FCM/APNs to all devices signed in to your account, usually in under a second.
  • The free plan includes 100 notifications in total; Premium removes the limit.
  • Events are stored in your in-app history. The request payload is only stored if you enable store payload for the endpoint.
  • There is no fixed rate limit, but bursts may be throttled by the push providers. One event = one notification (deduplicated per device).

Content types

JSON (application/json) is recommended. Form posts (application/x-www-form-urlencoded) and raw text bodies are accepted too – if a JSON object with title/message can be found, it is used.