Accepts Pushover’s exact field set so existing senders can migrate by changing one URL — point your Pushover client at https://api.reflecto.dev/v1/messages.json and the same body works.
Field mapping:
| Pushover | Reflecto |
|---|---|
token | Sender token (must be a rfk_live_…) |
user | Ignored (token already identifies the user) |
message | message |
title | title |
priority | -2→min, -1→low, 0→default, 1→high |
url | url |
url_title | url_title |
device | device (comma-separated allowed) |
ttl | ttl |
sound | Ignored in MVP (no custom sounds) |
timestamp | Ignored (server uses current time) |
Pushover priority=2 (Emergency) is rejected with 400 — Reflecto does not implement Pushover’s receipt-polling contract, so silently downgrading would break migrations that depend on it.
Documentation Index
Fetch the complete documentation index at: https://docs.reflecto.dev/llms.txt
Use this file to discover all available pages before exploring further.
Pushover-compatible send payload. Accepts the exact field set so existing Pushover clients can migrate by changing one URL. Unknown fields are ignored.
Reflecto sender token (rfk_live_… or rfk_test_…). Stands in for Pushover's app token.
^rfk_(live|test)_[A-Za-z0-9]{32}$"rfk_live_aB3xQ7mN9pK2vR5tY8uW4sZ1cE6dF0gH"
Notification body. Required by Pushover; same semantics as /v1/send.
"Backup done"
Accepted for Pushover-client compatibility; the value is ignored (the token already identifies the user).
"u_pushover_legacy"
Optional title. Same byte cap as /v1/send (100 bytes UTF-8).
"Backup"
Pushover priority. -2 → min, -1 → low, 0 → default, 1 → high. 2 (Emergency) is accepted by the wire schema but rejected server-side with 400 priority_emergency_unsupported — Reflecto does not implement Pushover's receipt-polling contract, so silently downgrading would break migrations that depend on it.
0, 1, 2, -2, -1 0
"https://example.com"
"View"
Optional target device(s); same semantics as /v1/send.
"phone"
Seconds the message stays in the per-device queue if not delivered live. Capped at 72 hours (259200 s) to match the Redis queue TTL. Same semantics as SendRequest.ttl — both endpoints feed through the shared processSend clamp. The string branch is only meaningful for form-encoded callers (Pushover senders post ttl=600); JSON callers should use the integer branch.
0 <= x <= 259200259200
Accepted for Pushover-client compatibility; ignored in MVP (no custom sounds).
"default"
Accepted for Pushover-client compatibility; ignored (server uses current time).