Changelog

Version history and recent changes to Robotomail.

April 9, 2026

Inbound attachments

  • Inbound message attachments are now extracted automatically and uploaded to R2. Each attachment is linked to the inbound Message row and surfaced via the REST API and the webhook/SSE event payloads.
  • REST API: GET /v1/mailboxes/:id/messages/:msgId returns inbound messages with new fields hasAttachments, attachmentsDropped, attachmentsDroppedReason, and an attachments[] array (call GET /v1/attachments/:id per attachment to get a presigned download URL). New contentId field on each attachment for inline image rewriting.
  • message.received webhook and SSE payloads now include the attachments array with a fresh presigned download_url per attachment, materialized at delivery time. Inline image parts include content_id matching the original Content-ID header.
  • Limits: 25 MB per attachment, 20 attachments per inbound message. Over-cap parts are dropped; the message body is still ingested with attachments_dropped: true and attachments_dropped_reason: "size", "count", or "both".
  • See Inbound attachments for the full schema, the inline-image rewrite examples, and the storage quota semantics.

Webhook delivery is at-least-once (action required)

  • Every webhook POST now includes a new X-Robotomail-Delivery-Id header containing a stable UUID for that delivery. The same delivery ID is sent on every retry; distinct deliveries always have distinct IDs.
  • Your endpoint MUST dedupe on this header. Webhook delivery is at-least-once — if a network blip happens between us receiving HTTP 200 and recording success, we will retry. The dedupe row and your business logic must commit atomically (in a single DB transaction) to avoid silently losing events on handler failures.
  • See Webhook delivery is at-least-once for the full code example using the verify→transactional-dedup→commit pattern.

April 2, 2026

Multi-tier pricing

  • New 4-tier pricing: Free ($0), Developer ($19/mo), Growth ($79/mo), Scale ($199/mo)
  • Free tier expanded — 3 platform mailboxes (was 1), 100 sends/day (was 50), 5,000/mo (was 1,000)
  • Custom domain limits per tier — Developer: 1, Growth: 5, Scale: unlimited
  • Unlimited monthly sending on Growth and Scale
  • Immediate plan switching via Stripe Customer Portal with automatic proration

CLI

  • CLI v0.1.7 — robotomail upgrade now accepts --plan developer|growth|scale

March 30, 2026

Claude Code channel plugin

  • Robotomail channel plugin for Claude Code — receive and reply to emails directly in your Claude Code session
  • Connects to SSE endpoint, pushes inbound emails as notifications, Claude replies using reply_email and send_email tools
  • Install with Bun, free tier compatible

March 29, 2026

Dashboard

  • Support contact form — reach us directly from the dashboard

Misc

  • Custom 404 and 500 error pages
  • 29 additional reserved slugs to prevent squatting on common terms

March 26, 2026

Send accounting

  • Daily and monthly send quotas now count per recipient, not per message
  • Recipient caps: 50 per to field, 50 per cc field

March 24, 2026

Abuse prevention

  • Account and mailbox suspension on bounce/complaint threshold breaches (3% bounce, 0.05% complaint over 7-day window)
  • Send velocity limiting — 30 messages/min per mailbox, 60/min per account
  • Suspended accounts receive structured 403 responses with reason and support contact
  • GET /v1/account now returns suspension status

CLI

  • CLI v0.1.6 — suspension and rate-limit detection with actionable error messages on all write commands

March 22, 2026

Content

  • Blog with developer guides on agent email architecture, infrastructure, and integration
  • 20 use case pages covering agent email scenarios (customer support, sales outreach, recruiting, and more)
  • Comparison pages: Robotomail vs SendGrid, Mailgun, and Gmail API
  • About page

March 20, 2026

Dashboard

  • DNS records modal — view and copy DNS records for custom domains, trigger verification inline
  • Relative hostnames displayed for registrar compatibility (Namecheap, Cloudflare, GoDaddy)

March 19, 2026

OpenClaw skill

  • Published Robotomail as an OpenClaw skill on ClawHub — AI agents can now discover and use Robotomail across 30+ agent platforms (Claude Code, Cursor, Gemini CLI, and more)
  • Skill includes full API reference, decision trees for common workflows, and webhook verification examples
  • Install with clawhub install robotomail

March 18, 2026

Real-time event streaming (SSE)

  • New GET /v1/events endpoint — real-time Server-Sent Events stream for receiving events without webhooks
  • Supports all 5 event types: message.received, message.sent, message.delivered, message.bounced, message.complaint
  • Automatic replay on reconnect via Last-Event-ID header (buffer: last 100 events, 1-hour TTL)
  • Scoped API key filtering — scoped keys only receive events for their permitted mailboxes
  • Connection limits: 5 concurrent per user, 4.5-minute lifetime with graceful reconnect signal

CLI listen command

  • New robotomail listen command — stream events in your terminal (like stripe listen)
  • --forward-to <url> — forward events to a local HTTP endpoint with HMAC-SHA256 signatures
  • --json — output NDJSON for piping to jq and other tools
  • --mailbox and --events filters
  • Auto-reconnect with exponential backoff; exits immediately on auth/validation errors

Documentation

  • New Events (SSE) API docs page with connection guide, payload schemas for all 5 event types, and reconnection reference
  • Webhook payload schema reference added to Webhooks API page
  • CLI docs updated with listen command

March 13, 2026

Email delivery

  • Migrated outbound email to Resend for improved deliverability
  • Delivery status tracking via webhooks (bounces, complaints, delivery confirmations)
  • Total message size limit increased from 10 MB to 40 MB
  • Automatic retry with backoff on rate limits
  • Platform email addresses are now slug@robotomail.co — simpler, no DNS setup needed per account
  • Default mailbox auto-created at signup
  • Display name support — set via PATCH /v1/mailboxes/:id so emails show "Name" <slug@robotomail.co>
  • Auto-quoting in replies — original message included as quoted block when inReplyTo is set

Account management

  • Added DELETE /v1/account endpoint for permanent account deletion
  • Account deletion available in dashboard settings

Documentation

  • All docs pages available as markdown at /docs/*.md (e.g. /docs/quickstart.md)
  • Content negotiation: request docs with Accept: text/markdown header
  • Navigation links in markdown views for prev/next page browsing

March 11, 2026

Documentation

  • Launched API documentation at /docs — overview, concepts, API reference, guides, and CLI

Features

  • Health endpoint (GET /api/health) and public status page
  • New webhook events: message.delivered and message.complaint
  • Account status endpoint (GET /v1/account) — check plan, limits, and verification state

March 6, 2026

  • Resend outbound relay — all outbound email now sent via Resend for reliable delivery
  • Resend webhook processing for delivery confirmations, bounces, and complaints
  • Custom domain registration with Resend DKIM
  • Automatic suppression list management

March 1, 2026

  • Initial launch with full send/receive API
  • Stalwart-based mail server for inbound and outbound
  • Webhook system with signature verification
  • CLI package (@robotomail/cli)
  • Stripe billing integration
  • Agent skill page for self-service onboarding