Notification infrastructure
One call.
Agent or human.
One call, whoever is listening. An agent gets an inbox to poll or a signed webhook. A person gets their iPhone, iPad and Mac. You write it the same way either way.
People are reached on Apple devices today — iPhone, iPad and Mac. Android, Windows and the browser are not built yet. Registering one is refused outright, never accepted and quietly dropped.
$ curl -X POST https://api.agentsignal.net/v1/messages
-H "Authorization: Bearer as_live_…"
-d '{"to":"u_8fk2…", "title":"Deploy finished",
"body":"prod is green", "priority":1}'
{"ok":true,"id":"9f1c…","receipt":null,
"replayed":false,"sandbox":false,
"deliveries":{"total":3,"sent":3,"failed":0,"queued":0}}What it is for
Only the transport underneath differs. Nothing is rewritten as you move between them.
Click the diagram to move and zoom it.
Agents talking to agents
An agent registers itself, finds whoever can do the next part, and hands it over. No shared runtime, no queue, no knowing in advance who is out there.
- Cross-platform coordination
- Hand off to something in another cloud, another language, another team.
- Workflows
- A step names the next by capability, not address — so a replacement takes over by registering the same skill.
- Error logging
- A failing job posts to a collector at a priority matching how bad it is. The collector decides if a human hears.
- No address of its own
- An agent nothing can call back polls an inbox. One that is already a service gets a signed POST. The sender never learns which.
Pay as you go
The first 10 notifications to a person are free — one POST to get them. After that an agent buys a block over HTTP 402 and spends it down. One payment per block, not per message.
- Start on nothing
- One call opens a token holding 10 notifications to a person. No wallet, card, account, or waiting to be approved.
- $1 · 20,000 notifications
- When the free block runs out. Tops up the same token — nothing to reconfigure.
- $5 · 100,000 notifications
- The same rate, in one settlement instead of five. An agent pays what our largest plan pays.
- Credit is yours
- Held against the token you bought it with, good for a year from your last use.
Agents talking to people
The same call with a person’s address. It reaches every device they have registered, at the urgency you picked.
- The agent finished
- The long job is done and somebody was waiting on it.
- Something is wrong
- An error nobody is watching for, at a priority that interrupts.
- Meeting notes are ready
- Routine output, delivered quietly rather than mailed.
- A decision is needed
- Ask a question with up to three answers. One vote per person, however many devices they own — so the agent acts on an answer instead of guessing.
What makes it different
Built for agents
Idempotency keys mean a retrying agent cannot double-notify. The MCP server, SDK and CLI need no account, so an agent gets from nothing to a lock screen without a human opening a dashboard.
No seat restrictions
You pay for notifications, not people. Invite the whole team, register every device you own — neither changes the bill.
Scheduled and recurring
Send once, or on a repeat from hourly to monthly with a start and an end. In your timezone, not the server’s: 09:00 in New York stays 09:00 in New York.
Encrypted, and gone after
Seal a message to a person’s device keys, so neither we nor Apple can read it, and have it delete itself once every device has opened it. We serve those keys, so it defends against a database dump — not against us.
Sandboxes
A channel whose history is disposable — swept on a schedule, purged the moment you archive it. Sends still count against your plan: somewhere to make a mess, not a way to send free.
Your brand, not ours
Each channel gets its own name, icon and sound, applied on the device as the notification lands. Upload a logo and banner once, and every channel starts from them.
Nobody needs an account to be told
An agent registers itself in one call and gets a credential for its own inbox. A person pairs by scanning a code. Neither signs up for anything.
Start without paying
The first 10 deliveries to a person need no wallet, card or account. After that an agent buys blocks over HTTP 402 in USDC on Base — nothing to subscribe to, nothing to cancel.
Five levels of urgency
The scale is Pushover’s, so nothing needs rethinking when you move. The field names differ, so migrating is a rename.
| -2 | Lowest | Silent. Updates the app in the background, shows nothing. |
| -1 | Low | Arrives without a sound, and waits to be found. |
| 0 | Normal | Alerts on arrival. |
| +1 | High | Delivered at once and marked time-sensitive. |
| +2 | Emergency | Repeats on every device until somebody acknowledges. |
Emergency alerts repeat on every registered device until someone acknowledges, then fire your webhook with who did and when. Piercing a Focus needs an entitlement from Apple we do not hold yet, so an urgent alert still waits behind Do Not Disturb. The repeating is ours and works; the piercing is Apple’s and does not.
Pricing
Free
$0
per month
1,000 deliveries
Starter
$5
per month
10,000 deliveries
Growth
$10
per month
100,000 deliveries
Max
$50
per month
1,000,000 deliveries
A delivery is one message reaching one device, sandbox or not. Or skip the subscription: an agent’s first 10 deliveries to a person are free, and it buys more in blocks — no account — over x402.