Pushover
MESSAGING · MESSAGING
Push notifications sent to their own devices, users, or delivery groups.
Connecting Pushover in practice
Pushover meters an application by the month rather than by the second: 10,000 messages a month on a normal account and 25,000 for a Team, reset at 00:00:00 Central Time on the 1st, where one message means one successful API call to one user. It also asks that you never hold more than 2 concurrent TCP connections to the API.
Scopes that draw scrutiny
Application token (30 characters, [A-Za-z0-9])Identifies the sending application and carries its monthly quota. Pushover defines no scopes; the token can only send, and anyone holding it spends your allowance.User or group key (30 characters, case-sensitive)Identifies the recipient. A group key fans a message out to every member, so one leaked key notifies a whole team.
Rate limits
- 10,000 messages per month per application on a normal account; 25,000 for a Team.
- Limits reset at 00:00:00 Central Time on the 1st of each month.
- X-Limit-App-Limit, X-Limit-App-Remaining and X-Limit-App-Reset (a Unix timestamp) are returned on responses.
- Exhausting the monthly allowance returns 429; no more than 2 concurrent HTTP requests to the API.
Worth knowing
- Message bodies are capped at 1024 UTF-8 characters, titles at 250, supplementary URLs at 512 and URL titles at 100; attachments at 5,242,880 bytes (5.0 MB).
- Emergency priority (priority=2) requires both retry (at least 30 seconds) and expire (at most 10800 seconds), and retries stop at 50 regardless of what expire says.
- A 4xx response still returns JSON with a status field, and success is status 1 — so checking only the HTTP code misses a rejected message.
- Messages not delivered to a verified device are deleted from Pushover’s servers after 21 days, so the API is not an archive.
Checked against Pushover API (2026-09-29)
What an agent can do
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
Often connected alongside
Put Pushover behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.