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.vibrate–true/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
| Status | Meaning |
|---|---|
200 | Webhook accepted. JSON body: {"success": true, "delivered": 1, "devices": 1, "message": "…"} |
400 | No key in the URL. |
402 | Free plan limit reached (100 notifications). Upgrade to Premium in the app. |
404 | Key not found – the endpoint was deleted or the URL is wrong. |
405 | Method 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.