A unified interface for WebPush, Telegram, Discord, and Webhook notifications.
{
"success": true,
"message": "ok",
"data": {...}
}
{
"success": false,
"error": "Description of error"
}
Used to reserve a topic name with a password. Public topics are created automatically upon subscription.
| Field | Required | Type | Description |
|---|---|---|---|
topic | Yes | String | Unique name (max 100 chars). |
password | Yes | String | Password required for future POST requests. |
curl -X POST https://pushrouter.com/create-topic \
-H "Content-Type: application/json" \
-d '{"topic":"secure-alerts","password":"supersecret"}'
Broadcast a message to all connected browsers, bots, and webhooks.
| Parameter | Required | Default | Description |
|---|---|---|---|
topic | Yes | - | Path can be topic or topic:password. |
password | No | null | Required for protected topics (header X-Topic-Password allowed). |
title | No | "Notification" | The headline of the alert. |
message | Yes | "..." | Main body content. |
image | No | null | URL for large banner image (Android/Desktop). |
url | No | null | Action to trigger on click. |
color | No | #2196f3 | Hex color for embeds/webhooks. |
urgency | No | normal | very-low | low | normal | high |
ttl | No | null | Time-to-live (seconds). |
silent | No | false | Set to 1/true to silence alert sound. |
action1Title | No | null | First action button title. |
action1Url | No | null | First action button URL. |
action2Title | No | null | Second action button title. |
action2Url | No | null | Second action button URL. |
# Send with actions
curl -X POST https://pushrouter.com/send \
-d "topic=deploy" -d "title=Deploy Success" -d "message=Version 1.2 is live" \
-d "action1Title=View Status" -d "action1Url=https://example.com"
# Protected topic (password in path)
curl -X POST https://pushrouter.com/secure-alerts:supersecret -d "message=CPU 99%"
# GET style style
curl "https://pushrouter.com/alerts?title=Ping&message=Hello"
Rate limit: 60 sends per IP per minute.
Fetch recent logs for a topic. Limit defaults to 20 (max 100).
| Path Param | Type | Description |
|---|---|---|
topic | Required | Topic name. |
limit | Optional | 1–100, default 20. |
curl "https://pushrouter.com/history/alerts/20"
{
"success": true,
"message": "History loaded.",
"data": [
{
"title": "Deploy complete",
"message": "Version 1.2 live",
"image": "https://example.com/banner.png",
"click_url": "https://status.example.com",
"action1_title": "Open",
"action1_url": "https://status.example.com",
"action2_title": null,
"action2_url": null,
"success_count": 10,
"failure_count": 0,
"created_at": "2026-01-10 12:00:00"
}
]
}
Unified command interface for Telegram and Discord.
Use Slash commands natively. Simply type / in your chat bar and the Discord UI will guide you through all available parameters.
Provide Required arguments first in order, then append Optional ones at the end using the key=value format.
/subscribe— Subscribe to a topic| Option | Required | Description |
|---|---|---|
topic |
Yes | Topic name |
/unsubscribe— Unsubscribe from a topic| Option | Required | Description |
|---|---|---|
topic |
Yes | Topic name |
/subscriptions— List your topics/push— Send a notification to a topic| Option | Required | Description |
|---|---|---|
topic |
Yes | Topic name |
message |
Yes | Message body |
title |
No | Optional title |
url |
No | Click URL |
image |
No | Image URL |
a1t |
No | Action1 title |
a1u |
No | Action1 URL |
a2t |
No | Action2 title |
a2u |
No | Action2 URL |
password |
No | Topic password if protected |
/history— Show recent notifications for a topic| Option | Required | Description |
|---|---|---|
topic |
Yes | Topic name |
/add_webhook— Add a Discord webhook for a topic| Option | Required | Description |
|---|---|---|
webhook_url |
Yes | Discord webhook URL |
topic |
Yes | Topic name |
/webhooks— List your webhooks/delete_webhook— Delete a webhook by index| Option | Required | Description |
|---|---|---|
index |
Yes | Index from /webhooks |
/create_topic— Create a topic (password required)| Option | Required | Description |
|---|---|---|
topic |
Yes | Topic name |
password |
Yes | Password (required) |
/topics— List topics you createdFull fan-out data sent to your registered endpoints:
{
"topic": "deploy",
"title": "Deploy complete",
"description": "Version 1.2 live",
"timestamp": "2026-01-10T12:00:00Z",
"color": "#2196f3",
"image": "https://example.com/banner.png",
"url": "https://status.example.com",
"action1_title": "Open",
"action1_url": "https://status.example.com",
"action2_title": null,
"action2_url": null,
"webhook_owner": "123456",
"webhook_owner_platform": "discord"
}