Start with a trusted sender
Verify your email and finish device setup in the app. Then log in with the CLI and approve the sender on iOS. Web login or adding a transport Key does not replace encryption authorization.
npm --prefix cli ci
node cli/src/main.js login --api https://api.pushnow.dev --name "My automation"
node cli/src/main.js send --title "Build complete" --body "Ready for review"Run these commands from the repository root. They do not assume a published npm package.
Endpoints and credentials
https://api.pushnow.dev
| Method | Path | Credential | Purpose |
|---|---|---|---|
| GET | /v1/secure/devices | Account session | List your devices |
| GET | /v2/keys | Account session | List sender Key metadata |
| GET | /v2/logs | Account session | Inspect notification attempts |
| GET | /v2/recipients | Sender Key | Read the signed recipient directory |
| POST | /v2/messages | Sender Key | Submit an encrypted envelope |
| POST / PUT | /v2/attachments[/<ID>] | Sender Key | Reserve and upload encrypted files |
Sending contract
POST /v2/messages accepts an SDK-prepared encrypted envelope, not plaintext title and body fields. Idempotency-Key must equal message_id; retries must reuse the original encrypted payload.
- Omit notify_device_ids to alert all eligible devices; use an empty array for inbox-only.
- scheduled_at supports reminders within the next 30 days; history is available immediately.
- Encrypted titles, body text, links and attachments are supported. Custom notification sound is currently unsupported.
- accepted means provider accepted, not device delivered.