Changelog

Notable changes, fixes, and new features on the AgenticBoxes platform — newest first.

May 19, 2026

NewSigned webhooks — verify every delivery

Every webhook POST now carries an X-Boxes-Signature header — t=<unix>,v1=<hmac>, an HMAC-SHA256 over the timestamp and the exact body, keyed by a per-account secret. Your receiver can confirm a delivery genuinely came from us and reject replays. Fetch your signing secret and the scheme from the new GET /account/webhook, and rotate it any time with POST /account/webhook/secret/rotate. Callback webhook URLs must now be https://. Existing receivers that ignore the header keep working unchanged — verifying is opt-in.

May 19, 2026

NewRemove the trailer · per-box signatures

Two things. Custom signaturesPUT /boxes/{id}/signature sets a per-box signature, appended to every message sent from that box. And you can now remove the "Sent by agenticboxes.email by an agent" trailer: POST /account/trailer opts out — you then pay a small per-send surcharge until it's paid off, or POST /account/trailer/buyout prepays the rest in one go. Your custom signature stays either way; opting out only drops our line. GET /account/credit/balance reports your trailer status.

May 19, 2026

Newplatform.updated — know when the API changes

When AgenticBoxes ships new or changed endpoints, a platform.updated event now goes out to every account — in the /events feed and pushed to your callback webhook. It carries the new OpenAPI version and the skill / spec URLs, so your agent re-pulls its skill and openapi.yaml instead of running on a stale copy. Just watch for it in your event stream.

May 19, 2026

NewSet your own low-balance alerts — two levels

You decide when to be warned. PUT /account/credit/alert-thresholds sets two thresholds — an early first alert and an urgent second alert — to whatever balances suit your burn rate. The low_balance event fires when a charge crosses your balance below either, tagged alert: first or alert: second. GET /account/credit/balance now also reports a balance_state of ok / low / critical.

May 19, 2026

NewSee your balance, usage, and a low-balance warning

Credit is now self-service. GET /account/credit/balance returns your prepaid balance, a low-balance flag, and an estimate of how many more emails it covers; GET /account/credit/usage returns a metered-usage breakdown by event type (windowable with since/before). And a new low_balance event fires — to your event feed and your callback webhook — the moment a charge drops your balance below its threshold, so an agent can top up before sends start failing.

May 19, 2026

NewGET /events — one feed for everything that happens

Every event the platform emits for your account — mail.received, support.answered, domain.ready, reputation changes and more — is now appended to one ordered per-account stream. Drain it by polling GET /events?since=<cursor>. An agent that can't host a callback webhook no longer misses anything: webhooks become an optional push layer over the very same stream.

May 19, 2026

NewBring your own domain — delegated DNS

A new domain mode, byo_delegated: you own the domain, but rather than editing DNS records yourself you delegate its nameservers to a Route 53 zone we create and run. Sign up with domain_intent.mode = "byo_delegated"; we hand you the nameservers (a domain.delegation_required event), you point your registrar at them once, and DKIM/SPF/DMARC stay managed for you — $1/month name service, same as a registered domain. The existing byo_manual mode, where you keep hosting your own DNS, is unchanged.

May 19, 2026

NewOpaque context pass-through on replies

Attach an opaque context object to a send (POST /messages/send) — anything you need to route the conversation later, such as a chat thread id. When a reply to that message arrives, the platform echoes the original context onto the inbound message, correlated by the In-Reply-To header. Route a reply back to its origin with no mapping table of your own.

May 19, 2026

NewSupport questions are a threaded conversation

A support question is no longer one-shot. Post follow-ups with POST /support/questions/{id}/replies, and GET /support/questions/{id} returns the full back-and-forth. The support.answered event still fires when we reply.

May 19, 2026

Fixbyo_manual domains can find their DNS records

For a bring-your-own domain where you host your own DNS, the MX/SPF/DKIM/DMARC records to add at your registrar arrive as a domain.dns_required event — fetch them any time with GET /events?type=domain.dns_required. GET /domain/dns serves only managed zones, and its 409 response now points you to the event feed instead of leaving you stuck.

May 18, 2026

NewDedicated API domain + service discovery

The agent API now answers on api.agenticboxes.email — one branded domain for everything an agent touches. Point a runtime at it and it self-bootstraps: GET /.well-known/agentic.json returns a discovery manifest (drop-in skills, the OpenAPI spec, free signup, pricing), and unauthenticated calls return a getting_started pointer to it. The skills, docs, and manifest all use the new base URL. An OpenClaw skill is live too — openclaw skills install agenticboxes-email.

May 18, 2026

NewAgent skill now documents the full API

The agenticboxes-email agent skill (v1.2.0) now lists every endpoint — including support questions (POST /support/questions) and feature requests (POST /feature-requests) — with guidance on when an agent should reach for them. Earlier versions of the skill didn't cover those endpoints, so an agent couldn't discover them from the skill alone. The skill is also explicit now that support and feature requests go through the API only — never email.

May 18, 2026

FixInbound mail bodies read correctly

Received messages fetched via GET /messages?include=body and GET /messages/{id} now return the full decrypted body, parsed headers, and an accurate size_bytes. Previously an inbound message could come back with an empty body and unreadable headers.