Built for agents. Safe for humans.
Run your marketing agents on your own infrastructure, with your own logic and your own schedules. No Bull Send is the layer they send through: delivery, bounces, unsubscribes and compliance, inside guardrails you set.
Not building agents? The same automations come ready-made in the app. See recipes
However you automate, one sending layer.
Agent builders
Your own code, the Claude Agent SDK, LangGraph or n8n. Your agent decides who gets what and when; the API and webhooks do the rest.
AI assistant users
Claude, ChatGPT, Cursor or any MCP-capable assistant. Ask it to draft, preview and schedule, then approve the send with one click.
Everyone else
Turn on a ready-made recipe, or describe what you want to Ask NoBS in one sentence. No code, no AI of your own needed.
You decide how much your agent can do alone.
Every API key and MCP connection carries one of three levels. Receipts and password resets go out at every level.
Draft
Creates and edits templates, contacts, segments and draft broadcasts. Runs dry runs and reads reports. Sends nothing to a list.
Granted by Owner or Admin
Approve
Everything in level 1, plus scheduling broadcasts and starting sequences. Every list send waits for a human click in No Bull Send. The default.
Granted by Owner or Admin
Autonomous
Everything in level 2, and list sends go out on their own, inside the key's guardrails. For agents you trust, on accounts with a clean sending record.
Owner only, confirmed with 2FA
Your agent can't go rogue. Not on our watch.
Guardrails are enforced on our side, not in the agent's prompt. So a confused, looping or hijacked agent still can't get past them.
- A spend cap and daily limit per key, inside your account's own cap. Hit it and sending pauses. No surprise bill.
- Allowed lists, segments, templates and senders. Anything else is refused.
- A sending window: the days and hours a key may send.
- The new-audience rule. Lists or imports less than 24 hours old need a human click, even at level 3.
- Duplicate-send protection. The same template to the same list within 24 hours needs a click. Idempotency keys stop retries from double-sending.
- A circuit breaker and a kill switch. Three guardrail stops in an hour pause the key. One button pauses every agent.
- Suppression is final. No agent can re-add someone who unsubscribed or bounced.
- A full audit trail, with every action logged by key and request. Plus a daily digest of autonomous sends.
Everything an agent needs to send well.
| Bulk contacts | Batch upsert up to 10,000 contacts a call, with consent recorded per contact |
| Events in, email out | Trigger sequences and transactional email from your own events |
| Dry run | Recipients, cost, lint and a preview link, without sending |
| Webhooks | Signed, retried for 24 hours, replayable: delivered, bounced, clicked, unsubscribed, guardrail stops |
| Event feed | A cursor-paged feed for agents that poll instead of hosting a webhook |
| MCP server | Remote, OAuth, the same levels and guardrails as your keys |
| Agent-readable docs | llms.txt, OpenAPI 3.1, a TypeScript SDK, a CLI and a Claude Skill |
curl -X POST https://api.nobullsend.com/v1/broadcasts \
-H "Authorization: Bearer $NOBS_AGENT_KEY" \
-H "Idempotency-Key: weekly-digest-2026-41" \
-d '{
"template": "weekly-digest",
"segment": "active-90-days",
"send_at": "2026-10-13T10:00:00Z",
"dry_run": true
}'
→ 200 {
"recipients": 4812,
"estimated_cost": "$0.00 (inside your 12,000)",
"lint": { "issues": 0 },
"guardrails": "pass",
"preview": "https://app.nobullsend.com/p/…"
}
# same call without dry_run → scheduled, level 3
Not building agents? Turn on a recipe.
Each recipe creates an ordinary sequence you can read and edit: a simple table of steps, no canvas. Or describe what you want to Ask NoBS in one sentence and it builds the sequence for you.
Welcome series
Three emails over a week for every new subscriber.
Re-engagement
A nudge for contacts who haven't clicked in 90 days.
Win-back
When a customer hasn't bought again, triggered by an event from your shop.
Post-purchase
Thanks, tips and a review ask after an order.
Paid-newsletter onboarding
A welcome for new paying subscribers.
Or just ask
"When someone joins, send three emails over a week."
Agents scale mistakes. We stop them.
These checks run on top of the safety layer every account already has.
| What could go wrong | What stops it |
|---|---|
| A looping agent sends the same broadcast every five minutes | Idempotency keys, duplicate-send protection, per-key caps and the circuit breaker |
| Prompt injection: imported data tells the agent to email everyone | Server-side list scope, the new-audience rule, and contact data marked as untrusted in MCP results |
| A leaked key in a public repo | Secret scanning on GitHub, expiry, an optional IP allowlist, instant revoke |
| A scraped list pushed through the API | Consent recorded per contact, import checks, risky lists held, slower first sends |
| Harmful content written by an agent | Lint and link scanning on every email; autonomous broadcasts are screened before release |
| A costly mistake, like 2 million emails by accident | Key and account spend caps: sending pauses, never a surprise bill |
Point your agents at No Bull Send.
Join the pilot as a design partner. You get the full API, MCP and guardrails, with the launch price locked for life.