Integrations
If it can make an HTTP request, it works with iotpush. Connect your favorite automation platforms in minutes.
n8n
Open-source workflow automation
Use the HTTP Request node in n8n to send push notifications from any workflow.
Get a push notification when a new row is added to Google Sheets
Monitor a website and get alerted when it goes down
HTTP Request Node Configuration
Method: POST
URL: https://www.iotpush.com/api/push/my-topic
Headers:
Authorization: Bearer {api_key}
Content-Type: application/json
Body (JSON):
{
"title": "New Row Added",
"message": "{{$json.column_name}} was added to the sheet",
"priority": "normal"
}💡 Tip: Use n8n expressions like {{$json.field}} to inject dynamic data from previous nodes.
Make (Integromat)
Visual automation platform
Add an HTTP > Make a request module to any Make scenario to send iotpush notifications.
Get push notifications for new Shopify orders
Alert when someone fills out a Typeform
HTTP Module Configuration
Module: HTTP > Make a request
URL: https://www.iotpush.com/api/push/my-topic
Method: POST
Headers:
Authorization: Bearer {api_key}
Content-Type: application/json
Request content:
{
"title": "New Shopify Order",
"message": "Order #{{order_number}} — {{total_price}}",
"priority": "high"
}💡 Tip: Map fields from previous modules using Make's variable picker to create dynamic notifications.
Zapier
Connect your apps and automate workflows
Use the Webhooks by Zapier action to send a POST request to iotpush from any Zap.
New email in Gmail → push notification
New Stripe payment → push alert
Webhooks by Zapier — POST Action
Action: Webhooks by Zapier > POST
URL: https://www.iotpush.com/api/push/my-topic
Headers:
Authorization: Bearer {api_key}
Content-Type: application/json
Data (JSON):
{
"title": "New Payment",
"message": "Received {{amount}} from {{customer_email}}",
"priority": "normal"
}
Payload Type: json💡 Tip: Use Zapier's field mapping to insert data from any trigger (Gmail, Stripe, Airtable, etc.).
Home Assistant
Open-source home automation
Define a REST command in your Home Assistant configuration, then call it from any automation. Perfect for motion sensors, door triggers, temperature alerts, and more.
Motion sensor triggers → push notification to your phone
Temperature sensor exceeds threshold → instant alert
configuration.yaml — REST Command
rest_command:
iotpush_notify:
url: "https://www.iotpush.com/api/push/my-topic"
method: POST
headers:
Authorization: "Bearer YOUR_API_KEY"
Content-Type: "application/json"
payload: >
{"title": "{{ title }}", "message": "{{ message }}", "priority": "{{ priority }}"}Automation Example — Motion Sensor
automation:
- alias: "Motion Alert — Front Door"
trigger:
- platform: state
entity_id: binary_sensor.front_door_motion
to: "on"
action:
- service: rest_command.iotpush_notify
data:
title: "Motion Detected"
message: "Movement at the front door at {{ now().strftime('%H:%M') }}"
priority: "high"💡 Tip: Use Home Assistant templates to include sensor values, timestamps, and device states in your notifications.
cURL / Any Platform
Works with anything that can make HTTP requests
iotpush uses a simple HTTP API. If your tool, script, or platform can send an HTTP POST request, it can send push notifications.
Quick Test
# Simplest possible push notification
curl -d "Hello World!" https://www.iotpush.com/api/push/my-topicWith Authentication
curl -X POST https://www.iotpush.com/api/push/my-topic \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Server Alert",
"message": "CPU usage at 95%",
"priority": "high"
}'Using Headers
curl -X POST https://www.iotpush.com/api/push/my-topic \
-H "Title: Disk Space Warning" \
-H "Priority: urgent" \
-H "Tags: server,disk" \
-d "Only 5% disk space remaining on /dev/sda1"wget Alternative
wget --post-data="Backup complete!" \
https://www.iotpush.com/api/push/my-topicWorks with: Shell scripts, cron jobs, CI/CD pipelines (GitHub Actions, GitLab CI, Jenkins), monitoring tools (Prometheus Alertmanager, Grafana), IoT devices (ESP32, Raspberry Pi), and literally anything else with HTTP.
Pushover-Compatible Integrations
These apps have built-in Pushover support. Just change the API URL to iotpush and use your topic API key.
Sonarr / Radarr / Lidarr
Media automation for TV, movies, and music
All *arr apps have native Pushover support. Configure iotpush as a custom Pushover server.
Setup Steps
- Go to Settings → Connect → Add → Pushover
- Click the wrench icon to access advanced settings
- Set Server to:
https://iotpush.com - Set API Key to your iotpush topic API key
- Set User Key to your topic name (e.g.,
sonarr-alerts) - Test and save!
Name: iotpush
Server: https://iotpush.com
API Key: your-topic-api-key-here
User Key: your-topic-name
Triggers: ✓ On Grab ✓ On Download ✓ On Upgrade ✓ On Health Issue💡 Works the same for Sonarr, Radarr, Lidarr, Readarr, and Prowlarr.
Prometheus Alertmanager
Metrics alerting for Kubernetes and beyond
Alertmanager supports Pushover natively. Configure iotpush as the receiver.
alertmanager.yml
receivers:
- name: 'iotpush'
pushover_configs:
- user_key: 'your-topic-name'
token: 'your-topic-api-key'
# Override Pushover URL to use iotpush
http_config:
proxy_url: ''
# Custom API URL (requires Alertmanager 0.25+)
api_url: 'https://iotpush.com/api/1/messages.json'
title: '{{ .Status | toUpper }}: {{ .CommonLabels.alertname }}'
message: '{{ .CommonAnnotations.summary }}'
priority: '{{ if eq .Status "firing" }}1{{ else }}0{{ end }}'
route:
receiver: 'iotpush'
group_by: ['alertname']
group_wait: 30sNote: If your Alertmanager version doesn't support api_url, use a webhook receiver instead pointing to https://iotpush.com/api/push/your-topic
UptimeRobot / Healthchecks.io
Uptime and cron job monitoring
UptimeRobot
- Go to My Settings → Alert Contacts
- Add new contact → Pushover
- API Token: your iotpush topic API key
- User Key: your topic name
- For the server URL, use webhook instead with:
https://iotpush.com/api/push/your-topic
Healthchecks.io
- Go to Integrations → Pushover
- Since healthchecks.io doesn't allow custom URLs, use Webhook instead
- URL:
https://iotpush.com/api/push/your-topic - Method: POST
- Add header:
Authorization: Bearer YOUR_API_KEY
POST https://iotpush.com/api/push/uptime-alerts
Headers:
Authorization: Bearer your-topic-api-key
Content-Type: application/json
Body:
{
"title": "$MONITORNAME is $ALERTTYPE",
"message": "$MONITORURL - $ALERTDETAIL",
"priority": "high"
}SABnzbd / qBittorrent / Transmission
Download managers and torrent clients
SABnzbd
- Go to Config → Notifications
- Enable Pushover notifications
- API Key: your iotpush topic API key
- User Key: your topic name
- SABnzbd doesn't allow custom URLs, so use the script method below
Post-Processing Script (Universal)
#!/bin/bash
# save as: iotpush-notify.sh
# Add to your download client's post-processing scripts
TOPIC="downloads"
API_KEY="your-topic-api-key"
TITLE="Download Complete"
MESSAGE="$1 has finished downloading"
curl -s -X POST "https://iotpush.com/api/push/$TOPIC" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d "{\"title\": \"$TITLE\", \"message\": \"$MESSAGE\"}"
💡 Works with any download client that supports post-processing scripts.
openHAB / Domoticz
Open-source home automation platforms
openHAB (pushover binding)
# In services/pushover.cfg, openHAB's Pushover binding
# doesn't support custom URLs. Use HTTP binding instead:
# things/http.things
Thing http:url:iotpush "iotpush" [
baseURL="https://iotpush.com/api/push/home-alerts",
authMode="BASIC",
username="",
password="your-topic-api-key"
]
# rules/notify.rules
rule "Motion Alert"
when
Item MotionSensor changed to ON
then
sendHttpPostRequest(
"https://iotpush.com/api/push/home-alerts",
"application/json",
'{"title":"Motion","message":"Motion detected!","priority":"high"}',
newHashMap("Authorization" -> "Bearer YOUR_API_KEY")
)
endDomoticz
# Setup → Settings → Notifications → Pushover
# Domoticz doesn't support custom Pushover URLs.
# Use Custom HTTP/Action instead:
# Setup → More Options → Events → Create dzVents script:
return {
on = { devices = { 'Motion Sensor' } },
execute = function(domoticz, device)
if device.state == 'On' then
domoticz.openURL({
url = 'https://iotpush.com/api/push/domoticz',
method = 'POST',
headers = {
['Authorization'] = 'Bearer YOUR_API_KEY',
['Content-Type'] = 'application/json'
},
postData = {
title = 'Motion Alert',
message = device.name .. ' triggered',
priority = 'high'
}
})
end
end
}🔄 Migrating from Pushover?
For any app with Pushover support, the migration is simple:
Change URL
api.pushover.netiotpush.com
Use Topic API Key
Your iotpush topic API key
goes in the token field
Topic Name
Your topic name goes in
the user field
# Before (Pushover)
curl -s --form-string "token=PUSHOVER_APP_TOKEN" \
--form-string "user=PUSHOVER_USER_KEY" \
--form-string "message=Hello" \
https://api.pushover.net/1/messages.json
# After (iotpush) — just change URL and credentials!
curl -s --form-string "token=YOUR_IOTPUSH_TOPIC_API_KEY" \
--form-string "user=your-topic-name" \
--form-string "message=Hello" \
https://iotpush.com/api/1/messages.jsonComing Soon: Native Integrations
We're building native nodes and apps for popular automation platforms. No more HTTP configuration — just drag, drop, and push.
Ready to automate?
Create a free account and start pushing in under a minute.