Product Updates
Introducing Osir Push: Send Push Notifications With a Single API Call
2026-04-01 · Osir Team
What Is Osir Push?
Osir Push is a free push notification service that delivers real-time alerts to your phone, tablet, or desktop browser. You send a single HTTP POST request with an API key, and every subscribed device receives the notification instantly — with encryption, no third-party message relay, and no SDK required.
Osir Push is live at push.osir.com. Create an account and start receiving notifications in under two minutes.
Why Use Osir Push Instead of Firebase, Telegram, or ntfy?
The existing push notification services all require trade-offs that many developers and teams are uncomfortable with:
| Service | Problem |
|---|---|
| Firebase Cloud Messaging | Google reads every notification payload. Requires a Google account and Firebase project setup. |
| Telegram bots | Telegram sees all message content. Requires users to install Telegram. |
| ntfy (public instance) | Notification content passes through a public relay server in plaintext. |
| Email alerts | Too slow (minutes to hours), too noisy, easily buried in inbox. |
Osir Push solves these problems:
- Encrypted delivery — Notifications are encrypted with VAPID/ECDH P-256 before leaving the server. Browser vendors (Google, Apple, Mozilla) only see ciphertext.
- No third-party relay — Your notification content is never readable by an intermediary. The only external systems are the browser vendors' standard Web Push endpoints.
- No app required — Works as a Progressive Web App (PWA) in any modern browser. No App Store download needed.
- One HTTP request — No SDK, no client library, no OAuth token management. Any language that can POST JSON can send notifications.
- Free — No usage fees, no premium tiers, no credit card required.
How Do I Send a Push Notification?
Three steps:
- Create an account at push.osir.com and subscribe your devices
- Generate an API key from the dashboard (starts with
pk_, shown once) - Send a POST request to
https://push.osir.com/api/push/notify
curl -X POST https://push.osir.com/api/push/notify \
-H "X-API-Key: pk_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"title": "Deploy complete",
"body": "v2.1.0 is live on production",
"url": "/deployments/latest",
"tag": "deploy"
}'
The API returns 202 Accepted and delivers the notification to all subscribed devices within seconds.
API Reference
Endpoint: POST https://push.osir.com/api/push/notify
Authentication: X-API-Key header with your API key.
| Field | Type | Required | Description |
|---|---|---|---|
title |
string | yes | Notification title (displayed in bold) |
body |
string | yes | Notification body text |
url |
string | no | URL to open when the notification is tapped |
tag |
string | no | Deduplication tag — same tag replaces the previous notification |
Rate limit: 60 requests per minute per user. Returns 429 Too Many Requests if exceeded.
Response: 202 Accepted with the notification queued for delivery.
Code Examples in Every Major Language
Python
import requests
requests.post("https://push.osir.com/api/push/notify",
headers={"X-API-Key": "pk_your_key_here"},
json={
"title": "Backup complete",
"body": "Database backup finished (2.3 GB)",
"tag": "backup"
})
JavaScript / Node.js
await fetch("https://push.osir.com/api/push/notify", {
method: "POST",
headers: {
"X-API-Key": "pk_your_key_here",
"Content-Type": "application/json"
},
body: JSON.stringify({
title: "New signup",
body: "alice@example.com just registered",
tag: "signup-alice"
})
});
Go
body := `{"title":"Build passed","body":"main branch green","tag":"ci"}`
req, _ := http.NewRequest("POST",
"https://push.osir.com/api/push/notify",
strings.NewReader(body))
req.Header.Set("X-API-Key", "pk_your_key_here")
req.Header.Set("Content-Type", "application/json")
http.DefaultClient.Do(req)
PHP
$ch = curl_init("https://push.osir.com/api/push/notify");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
"X-API-Key: pk_your_key_here",
"Content-Type: application/json"
],
CURLOPT_POSTFIELDS => json_encode([
"title" => "Order received",
"body" => "Order #4821 — EUR 49.90",
"tag" => "order-4821"
])
]);
curl_exec($ch);
Bash (cron job / shell script)
#!/bin/bash
# Add to crontab: 0 3 * * * /opt/scripts/backup-notify.sh
pg_dump mydb > /backups/mydb-$(date +%F).sql && \
curl -s -X POST https://push.osir.com/api/push/notify \
-H "X-API-Key: $PUSH_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"title\":\"Backup complete\",\"body\":\"$(date +%F) — mydb\",\"tag\":\"backup\"}"
How Does Notification Deduplication Work?
The tag field lets you replace notifications instead of stacking them. When two notifications share the same tag, only the latest one shows on the device:
# User sees "Build running..."
curl -X POST https://push.osir.com/api/push/notify \
-H "X-API-Key: pk_your_key_here" \
-d '{"title":"Build running","body":"commit abc123","tag":"build-main"}'
# 2 minutes later — replaces the previous notification
curl -X POST https://push.osir.com/api/push/notify \
-H "X-API-Key: pk_your_key_here" \
-d '{"title":"Build passed","body":"commit abc123 — all tests green","tag":"build-main"}'
The device only shows "Build passed". No notification spam.
What Can I Monitor With Osir Push?
Osir Push is useful anywhere you need instant alerts from a remote system:
- CI/CD pipelines — Build succeeded, deployment failed, tests passed
- Server monitoring — CPU above threshold, disk 90% full, service crashed, SSL certificate expiring
- Background jobs — Data processing complete, ML training finished, report generated
- Cron job results — Backup completed, log rotation done, certificate renewed
- User events — New signup, purchase received, form submission, failed login attempt
- Domain operations — Domain registered, transfer approved, expiry approaching
- IoT and home automation — Motion detected, doorbell rang, temperature exceeded threshold
- Financial alerts — Payment received, invoice overdue, balance low
Can AI Agents and LLMs Use Osir Push?
Yes. Osir Push is designed to be easily integrated by AI agents, LLMs, and automated workflows. The API is a single HTTP endpoint with no authentication complexity — just an API key in the header.
Use Cases for AI Agents
- Autonomous monitoring — An AI agent running on a schedule can check system health and push alerts when thresholds are breached
- Pipeline notifications — LLM-powered CI/CD orchestrators can notify developers when code review, deployment, or testing stages complete
- Research assistants — An agent that monitors data sources (stock prices, weather, news feeds) can push summaries to your phone
- Smart home agents — AI assistants managing IoT devices can send push alerts for security events, energy usage, or maintenance reminders
- Domain management — Agents using the Osir MCP server can send push notifications after registering domains, updating DNS, or detecting expiring domains
Integration With MCP (Model Context Protocol)
If you are building AI tools with MCP, you can add Osir Push as a notification channel. Your MCP tool calls the Osir Push API to deliver results directly to the user's device instead of only displaying them in the chat interface:
# Inside an MCP tool handler
import requests
def notify_user(api_key: str, title: str, body: str, tag: str = "agent"):
requests.post("https://push.osir.com/api/push/notify",
headers={"X-API-Key": api_key},
json={"title": title, "body": body, "tag": tag})
# After completing a long-running task
notify_user(key, "DNS Updated", "A record for example.com now points to 203.0.113.1", "dns-update")
This lets AI agents reach users outside the chat window — on their phone's lock screen, even when the browser is closed.
Integration With LangChain, CrewAI, and Other Agent Frameworks
Any agent framework that can make HTTP requests can use Osir Push. Define it as a tool:
# LangChain tool example
from langchain.tools import tool
@tool
def send_push_notification(title: str, body: str, tag: str = "agent") -> str:
"""Send a push notification to the user's phone. Use this when a task
completes, an important event occurs, or the user needs to be alerted
about something even if they are not watching the chat."""
import requests
resp = requests.post("https://push.osir.com/api/push/notify",
headers={"X-API-Key": PUSH_API_KEY},
json={"title": title, "body": body, "tag": tag})
return f"Notification sent ({resp.status_code})"
Which Devices Are Supported?
Osir Push works as a Progressive Web App (PWA) on all major platforms:
| Platform | Browser | How to Set Up |
|---|---|---|
| iPhone / iPad (iOS 16.4+) | Safari | Add to Home Screen via Share menu, then open from Home Screen and tap Enable |
| Android | Chrome | Open push.osir.com, tap Enable, allow notifications. Optionally install as app. |
| Windows / macOS / Linux | Chrome, Edge, Firefox | Open push.osir.com, tap Enable, allow notifications when prompted |
Notifications are delivered even when the browser is closed or the app is in the background. On mobile, they appear on the lock screen with vibration — just like native app notifications.
How Is Osir Push Different From Other Notification Services?
| Feature | Osir Push | Firebase | Telegram Bot | ntfy (public) |
|---|---|---|---|---|
| Encrypted delivery | Yes (VAPID/ECDH) | No (Google reads payload) | No (Telegram reads messages) | No (plaintext relay) |
| Setup time | 2 minutes | 30+ minutes (Firebase project, service account, SDK) | 10 minutes (create bot, get chat ID) | 1 minute |
| SDK required | No (plain HTTP) | Yes (Firebase SDK) | No | No |
| App required | No (PWA) | Yes (for mobile) | Yes (Telegram app) | No (PWA) |
| Works on iOS | Yes | Yes | Yes | Yes |
| Free | Yes | Yes (with limits) | Yes | Yes |
| Rate limit | 60/min | Varies | 30/sec | 250 msgs/day (free) |
How Does Osir Push Handle Privacy?
- W3C Web Push standard — An open protocol, not a proprietary API
- VAPID encryption — Notification content is encrypted before leaving the server using ECDH P-256
- No message relay — Unlike Telegram or public ntfy, your notification content is never readable by a third party
- No tracking — No analytics scripts, no telemetry, no ad networks on the dashboard
- Minimal data storage — Subscriptions, API keys, and recent notification history. Nothing more.
- Keycloak SSO — Osir Push uses the same identity provider as all Osir services. One account, no password to remember.
Getting Started
- Go to push.osir.com
- Create a free account (or sign in if you already have an Osir account)
- Subscribe your devices (phone, tablet, desktop)
- Create an API key from the dashboard
- Send your first notification with
curlor any HTTP client
Full API documentation, code examples in five languages, and device setup guides are available on the push.osir.com landing page.
What Is Coming Next?
We are actively building:
- Notification channels — Subscribe to specific event types (deploys, alerts, billing) instead of receiving everything
- Team access — Invite colleagues to share a notification pipeline
- Email fallback — Automatic email delivery when all push subscriptions are inactive
- Webhook triggers — Receive push notifications from GitHub, GitLab, Stripe, and other services without writing code
Osir Push is part of the growing Osir platform, alongside our domain registrar, CLI tool, and MCP integration. One account gives you access to everything.
Start sending push notifications today at push.osir.com.