Changelog

Version history and recent changes to Robotomail.

August 24, 2026

Machine-readable API surface

  • Published an OpenAPI 3.1 specification at /openapi.json: every endpoint with a unique operation ID, typed request/response schemas, the real error variants each route can emit, and the auth model (full-access vs mailbox-scoped keys). Kept in lockstep with the code by route-parity tests.
  • llms.txt expanded: when to use Robotomail, developer resources, and a markdown URL for every public page.
  • Versioning and deprecation policy: the API is URL-versioned (/v1); breaking changes ship as a new version path, and retirements get at least 30 days of notice here plus Deprecation/Sunset headers. Now also part of the Terms of Service.

Structured errors for agents

  • Unknown /v1 and /api paths return a JSON 404 with code: NOT_FOUND and resolution links instead of an HTML page.
  • Unknown site paths requested with Accept: text/markdown return a markdown 404 with recovery links (llms.txt, docs, sitemap, OpenAPI spec).
  • Every rate-limit 429 now carries a Retry-After header: the velocity window, the seconds until the daily reset at UTC midnight, or until the monthly reset.
  • Markdown-negotiated responses carry Vary: Accept; GET /v1/signup/check-slug now validates the full slug format (so available: true means signup will accept it) and is rate limited.

Trust and discovery

  • New /contact page (with a markdown twin) and /.well-known/security.txt for vulnerability reports.
  • Organization metadata: legal entity (Tiny Bot Labs Limited, UK) and official profiles (npm, GitHub, YouTube) published in the site's structured data. openapi.json and llms.txt are now served with CORS enabled and proper caching.

August 19, 2026

Legacy free plan retired

  • The legacy free plan has been retired, following notice to affected accounts in July and reminder and final notices in August. The card-free trial and the paid tiers are the supported path for new and existing accounts.

August 12, 2026

Reply threading

  • Provider-agnostic reply threading: replies now thread correctly in recipients' mail clients even when intermediate providers rewrite Message-IDs, via a References-based threading token.

June 16, 2026

Card-free trial onboarding

  • Verifying your signup email now starts a 3-day card-free trial automatically — no card required to try the full loop.
  • Trial scope: 10 sends and 10 receives, with sends locked to your own verified address. Product routes answer 402 PAYMENT_REQUIRED before verification and again once the trial is spent or expired, until checkout completes.
  • New onboarding sandbox: your agent sends its first email, you reply, and it reads the answer over the API — under a minute, end to end.

June 1, 2026

On-site checkout

  • Checkout now runs on robotomail.com with a redesigned order summary, instead of redirecting straight to a hosted page.
  • Trial lifecycle emails: reminders and recovery for started-but-unfinished checkouts.

May 15, 2026

Dashboard

  • Mailbox management UI — create, pause, and edit mailboxes from the dashboard.
  • Domain management UI on settings — add domains, view DNS records, trigger verification.
  • Suppressions page — view and manage the suppression list.
  • Audit Feed — a read-only oversight timeline of your agents' email activity.

April 27, 2026

Resend verification

  • New POST /v1/auth/resend-verification endpoint and a /resend-verification page, so a lost verification email no longer blocks activation. Rate limited per IP and per address; responses are identical for unknown and already-verified emails.

April 21, 2026

Monthly inbound limits

  • Per-tier monthly inbound caps: Free 100, Developer 2,000, Growth 20,000, Scale unlimited.
  • Soft enforcement: over-cap inbound messages are safely persisted but withheld — reads return 402 INBOUND_LIMIT_EXCEEDED with an upgrade hint and a resetAt; upgrading or the monthly reset makes them visible in place.
  • Every authenticated response now carries X-Robotomail-Inbound-Quota and, near the cap, X-Robotomail-Inbound-Warning headers.
  • Warning emails at 80% and 90% of the cap, with a 24-hour follow-up.

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 account upgrade [plan] accepts developer, growth, or 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 25 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