Call it every time.
Email them once.
Throttle and schedule transactional email with one field on the send you already make. No cache of who was told what, and no cron job to send it later.
- To
- ana@acme.com
- Template
- Usage warning
- Throttle
- 24h, per organisation
Today
148 calls, 1 email
- 09:12Sent
- 09:13 to 23:58147 throttled
- Tomorrow 09:12Next allowed
What you get
Throttle, 24h
Usage warning to ana@acme.com
- Mon 09:12Sent
- Mon 09:40Throttled
- Mon 16:05Throttled
- Tue 09:15Sent
At most once per window
Send from every request that hits the limit. The recipient gets the warning once a day, and the window runs from the email they actually received.
Sends Mon 1 Nov at 09:00
Your trial ends in 3 days
Later, in the same call
Add a time and the email waits, up to 30 days ahead. Move it or cancel it until it goes out, from the API or the dashboard.
- status
- "throttled"
- null
- nextAllowedAt
- "Tue 09:12"
Nothing to store on your side
A throttled send is a normal response that says so. No email is created, the contact is left alone, nothing is billed, and you keep no table of who was told what.
Also included
Per organisation
Add a key so each organisation gets its own warning.
Once per billing period
Put the period in the key and drop the window.
Team-wide alerts
Hold an alert once for the whole project.
Safe under load
Concurrent sends of one notification send it once.
In workflows too
Let a workflow start at most once a day per contact.
From your agent
The MCP server can schedule, move and cancel too.
One field on the send
Add delivery to the request you already make. Everything else about sending stays the same.
// Called on every request that counts towards the plan
await fetch('https://next-api.useplunk.com/v1/send', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${process.env.PLUNK_API_KEY}`,
},
body: JSON.stringify({
to: user.email,
template: 'USAGE_WARNING_TEMPLATE_ID',
data: {used, limit},
delivery: {
throttle: {window: '24h', key: org.id}, // at most once a day per organisation
},
}),
});
// Or send it later instead of now
delivery: {at: '2026-11-01T09:00:00Z'}Whatever your rule is
Most limits fit on one line. A few common ones:
- A usage warning at most once a day
- throttle: '24h'
- Once a day, per organisation
- throttle: {window: '24h', key: org.id}
- Once per billing period
- throttle: {key: `${org.id}:${period}`}
- A one-time email
- throttle: {}
- A team alert, at most hourly
- throttle: {window: '1h', scope: 'project'}
- A reminder in three days
- at: '2026-11-01T09:00:00Z'
Plunk or a typical email API
Most email APIs can schedule. Limiting how often someone gets a notification is left to you.
| Feature | Plunk | Typical email API |
|---|---|---|
| Schedule an email for later | Up to 30 days | |
| Move or cancel a scheduled email | ||
| Send a notification at most once per period | Build it yourself | |
| Limit per organisation or billing period | Build it yourself | |
| Throttled attempts billed | Never | Not applicable |
Frequently asked questions
Stop building notification throttles.
Start on the free plan with 1,000 emails a month, no credit card needed. When you need more, every email is $0.001, with unlimited contacts and every feature included.