For agents

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

agent: weekly-digest · key level 3
Who it's for

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.

Autonomy levels

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.

1

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

2

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

3

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

Guardrails

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.
The toolkit

Everything an agent needs to send well.

Bulk contactsBatch upsert up to 10,000 contacts a call, with consent recorded per contact
Events in, email outTrigger sequences and transactional email from your own events
Dry runRecipients, cost, lint and a preview link, without sending
WebhooksSigned, retried for 24 hours, replayable: delivered, bounced, clicked, unsubscribed, guardrail stops
Event feedA cursor-paged feed for agents that poll instead of hosting a webhook
MCP serverRemote, OAuth, the same levels and guardrails as your keys
Agent-readable docsllms.txt, OpenAPI 3.1, a TypeScript SDK, a CLI and a Claude Skill
Dry run, then send (example)
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
Recipes

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."

Safety

Agents scale mistakes. We stop them.

These checks run on top of the safety layer every account already has.

What could go wrongWhat stops it
A looping agent sends the same broadcast every five minutesIdempotency keys, duplicate-send protection, per-key caps and the circuit breaker
Prompt injection: imported data tells the agent to email everyoneServer-side list scope, the new-audience rule, and contact data marked as untrusted in MCP results
A leaked key in a public repoSecret scanning on GitHub, expiry, an optional IP allowlist, instant revoke
A scraped list pushed through the APIConsent recorded per contact, import checks, risky lists held, slower first sends
Harmful content written by an agentLint and link scanning on every email; autonomous broadcasts are screened before release
A costly mistake, like 2 million emails by accidentKey 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.