Sendook turns one Cloudflare account into a fleet of self-contained email agents. Each agent has its own address, its own mailbox, and its own webhook subscriptions, all backed by a single Worker + Durable Object + D1 stack. There is no signup, no SDK install, no daemon to keep running — just a master API key and curl.
Traditional email infrastructure for agents is heavy:
Sendook offloads everything to Cloudflare:
You operate it with a MASTER_KEY secret. Each agent gets a per-agent API key that scopes access to that agent's own mailbox.
POST /agents returns an id, an email, and a per-agent api_key.In-Reply-To and References headers automatically join replies to the parent thread.x-sendook-signature: sha256=<hex> so you can authenticate the call./agents/:id/webhooks/:webhookId/attempts.DELETE /agents/:id tombstones the agent and purges its DO storage atomically.You need:
wrangler deploy).MASTER_KEY secret value (set via wrangler secret put MASTER_KEY).https://api.sendook.com or your *.workers.dev host).Create an agent with the master key:
curl -sX POST "$SENDOOK_HOST/agents" \
-H "Authorization: Bearer $SENDOOK_MASTER_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Support Bot"}'
Response:
{
"id": "abc123def456",
"email": "abc123def456@yourdomain.com",
"name": "Support Bot",
"api_key": "rA9...long-base64url",
"created_at": 1730000000
}
Save the api_key — it is shown only once. From there, the agent can send mail with its own key:
curl -sX POST "$SENDOOK_HOST/agents/abc123def456/messages/send" \
-H "Authorization: Bearer $AGENT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "alice@example.com",
"subject": "Hello from my agent",
"text": "This message was sent through Sendook."
}'
Inbound mail addressed to abc123def456@yourdomain.com lands in the agent's mailbox, which you can read with GET /agents/abc123def456/messages.