Alerts

Email and Telegram messages when a proxy or node needs you: proxy offline / back online, node offline / back online, failed IP rotation, SIM recharge due, SMS send limit reached, bandwidth 80% used / limit reached. Each login has its own settings (the panel page is Account → Alerts). Dongle alerts go to the account owner and to the reseller sub-user the proxy is assigned to; node and SIM-recharge alerts go to the owner only. The same alert for the same proxy is sent at most once per 15 minutes (online/offline), 6 hours (limits) or once a day (SIM recharge).

All times in the API are UTC (ISO 8601). Your timezone only changes how the panel and the alert texts show times, and when SIM reminders go out (about 09:00 your time).

Get alert settings

GET /alerts/settings

Ability: read

curl
Python
Node.js
PHP
curl 'https://proxykite.com/api/v1/alerts/settings' \
  -H "Authorization: Bearer $HYP_TOKEN" \
  -H 'Accept: application/json'

Response 200

{"data": {
  "timezone": "Asia/Kolkata",
  "email": {"enabled": true, "address": "ops@example.com", "verified": false, "sending_to": "you@example.com"},
  "telegram": {"available": true, "enabled": true, "chat_id": "123456789"},
  "events": {"dongle_offline": true, "dongle_online": true, "node_offline": true, "node_online": true,
             "rotation_failed": false, "recharge_due": true, "sms_limit_reached": true,
             "bandwidth_warning": true, "bandwidth_limit_reached": true,
             "uplink_backup": true, "uplink_primary": true, "uplink_none": true},
  "offline_after_minutes": 5
}}
  • email.address — where you asked alerts to go; sending_to — where they go now (your login email until a new address is confirmed with the link we mail to it).
  • telegram.available — false while the panel has no Telegram bot configured.

Change alert settings

PATCH /alerts/settings

Ability: manage · Send only what you change. Answers with the full settings object (as above).

Field
timezoneIANA name, e.g. Europe/London
email.enabledbool
email.addressemail, or null / "" = your login email. A new address gets a confirmation link and is used once confirmed
telegram.enabledbool (needs a chat_id)
telegram.chat_idyour chat id (digits; groups start with -100) or @channelname; null clears it
eventsobject of event type → bool; types not sent keep their value
offline_after_minutes1–1440: how long a proxy/node must be offline before the alert
curl
Python
Node.js
PHP
curl -X PATCH 'https://proxykite.com/api/v1/alerts/settings' \
  -H "Authorization: Bearer $HYP_TOKEN" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{"telegram":{"enabled":true,"chat_id":"123456789"},"events":{"rotation_failed":false}}'

Finding your Telegram chat id: open a chat with our bot and send /start (the bot replies with your id when the panel's bot webhook is on; otherwise message @userinfobot, which replies with your id). You must /start our bot once or it is not allowed to write to you. For a group, add the bot to the group and use the group's id.

Alert history

GET /alerts

Ability: read · Your last alerts, newest first (kept 90 days).

Query
limit1–100, default 50
curl
Python
Node.js
PHP
curl 'https://proxykite.com/api/v1/alerts?limit=20' \
  -H "Authorization: Bearer $HYP_TOKEN" \
  -H 'Accept: application/json'

Response 200

{"data": [
  {"id": 812, "type": "recharge_due", "title": "SIM recharge due in 3 days – Shop A",
   "body": "Shop A (port 30000, node rack-1): next recharge date Tue 13 Oct 2026.\n…",
   "status": "sent", "channels": {"email": "sent", "telegram": "sent"},
   "proxy_id": 7, "node_id": 1, "created_at": "2026-10-10T03:31:02+00:00", "sent_at": "2026-10-10T03:31:04+00:00"}
]}

status: queued, sent, partial (one channel failed), failed, or no_channel (every channel is switched off — logged only). type is one of the event types above, or test.

  • SIM number and recharge date of a proxy: sim in Proxies.
  • Webhooks — the machine-to-machine way to react to the same changes.