# JustPush — Push notifications, dead simple.

JustPush sends instant push notifications to your own phone from any script,
server or service. One HTTP POST, no backend to deploy, no APNs or FCM
certificates to manage. Native apps for iOS and Android.

This is the Markdown representation of <https://www.justpush.io/>. The full
product and API documentation lives at <https://docs.justpush.io/> — append
`.md` to any docs page URL to get it as Markdown.

## How it works

Three steps. No webhooks to wire up.

1. **Download & install** — get the native JustPush app from the
   [App Store](https://apps.apple.com/us/app/justpush-io/id6738397112) or
   [Google Play](https://play.google.com/store/apps/details?id=com.justpush).
   Sign in once and you're ready to receive pushes.
2. **Get your key** — open the app, go to Settings, and copy your personal API
   token. Tokens look like `m_7c4f9a2bd…`. It goes in the `user` field of every
   request, not in a header.
3. **POST and ship** — hit one endpoint with a JSON body, get a delivery
   receipt back, your phone buzzes.

```bash
curl -X POST https://api.justpush.io/messages \
  -H "Content-Type: application/json" \
  -d '{
    "user": "<< API TOKEN >>",
    "title": "Deploy succeeded",
    "message": "v2.4.1 shipped to production in 14s",
    "topic": "deploys",
    "sound": "COSMIC",
    "buttons": [{"cta": "View logs", "url": "https://ci.example.com/42"}]
  }'
```

## Features

Rich, interactive notifications from a single REST call.

| Feature | What it does |
| --- | --- |
| Title & body | Optional title plus a plain-text body — line breaks and emoji welcome. Leave the title out and the app name fills in. |
| Up to 10 images | Attach 1–10 images per message via URL or base64, each with its own caption. Up to 5 MB each. |
| 10 action buttons | Up to 10 buttons per message, each a CTA (≤25 chars) and a URL. Mark one as required so it can't be missed. |
| Button groups | Bundle related actions into up to 4 groups, each holding up to 10 buttons. |
| Acknowledgements + retry | Mark a message critical and JustPush keeps re-buzzing (up to 255 retries) until a human taps ack — with optional callbacks. |
| Priority levels | Dial a message's priority up or down. Higher priority changes how — and how loudly — it lands. |
| 22 built-in sounds | From `COSMIC` to `SIREN` to `CASHREGISTER`, or stay silent. |
| TTL & expiry | Set how long a message lives, in seconds. After that it disappears — no stale alerts. |
| Topics (channels) | Route to `deploys`, `oncall`, `sales` by title or token. Topics are created on the fly and get their own avatar. |

## Topics

One key, many channels. Tag every message with a topic and it lands in its own
conversation-style thread. Send to `deploys`, page `oncall`, keep `sales`
separate. Topics are addressed by `topic` (the slugified title) or by
`topic_token`, are created automatically if they don't exist, and fall back to
your default topic.

## Email gateway

Forward email to your personal `e_…@jpml.io` address and it arrives as a push.
Control the delivery with lines in the body: `topic=`, `sound=`, `priority=`
and `requires_acknowledgement=1`.

## SDKs & integrations

Official SDKs are tiny, typed and zero-dependency — the whole API is one
`send()` call. Or just hit the REST endpoint.

| Language | Install |
| --- | --- |
| PHP | `composer require justpush/sdk` |
| JavaScript | `npm i @justpush/sdk` |
| TypeScript | `npm i @justpush/sdk` |
| Go | `go get github.com/justpush/go` |
| Ruby | `gem install justpush` |
| Rust | `cargo add justpush` |
| Python | community SDK, in beta |
| cURL | zero install required |

## Tools

- **Playground** — prototype a message in the browser before you write code.
- **Webhook Studio** — turn incoming webhooks into pushes without a backend.
- **Claude (MCP)** — a hosted MCP server at `https://api.justpush.io/mcp/justpush`
  lets Claude send messages, list topics and create topics on your behalf.
  Authentication is a one-time email code; no API key needed. See the
  [setup guide](https://docs.justpush.io/introduction/dev-tools/mcp-server.md).

## Pricing

Both plans include every feature — there are no tiers.

| Plan | Price | Notes |
| --- | --- | --- |
| Free trial | $0 for 30 days | No credit card required. |
| Yearly | $19.99 / year | Billed once a year, auto-renews, cancel anytime from the App Store. |
| One-Off | $39.99 once | Pay a single time; no renewals. |

Purchased in-app via the Apple App Store or Google Play. Pricing may vary
slightly by region and currency.

## For agents

- [/llms.txt](https://www.justpush.io/llms.txt) — site overview in llmstxt.org format.
- [/auth.md](https://www.justpush.io/auth.md) — how to obtain credentials.
- [/.well-known/api-catalog](https://www.justpush.io/.well-known/api-catalog) — RFC 9727 linkset.
- [/.well-known/mcp/server-card.json](https://www.justpush.io/.well-known/mcp/server-card.json) — MCP server card.
- [/.well-known/agent-skills/index.json](https://www.justpush.io/.well-known/agent-skills/index.json) — publishable agent skills.

## Legal

- [Terms](https://www.justpush.io/#/terms)
- [Privacy](https://www.justpush.io/#/privacy)
