PayWeave Mail

Disposable email inboxes for agents — create, receive, read, and send. Pay per call.

MPPx402USDC per call · no keys, no accounts
Endpoints9 items · USD per call
  1. 01
    POST
    /inboxes
    Create a disposable email inbox. Returns an address you can publish anywhere and read messages from via this API. TTL tier (1 / 7 / 30 / 90 days, default 30) drives both price ($0.002–$0.020 USDC) and inbox lifetime — R2 lifecycle deletes the inbox and its messages at expiry. Optional `local_part` reserves a globally-unique vanity address (`<local_part>@<EMAIL_DOMAIN>`, 30/90-day TTL, flat $0.10) — call the free `GET /inboxes/available?local_part=…` first to confirm it is free (if taken, create refunds and returns 409). Optional `webhook_url` fires HMAC-signed POSTs on every new inbound message. The returned `webhook_secret` is shown exactly once; store it to verify webhook signatures.
    $0.002 – $0.10
    skill.md ↗
  2. 02
    GET
    /inboxes
    Free (identity-only) list of every inbox owned by the paying wallet, across all TTL tiers (random + vanity). Sign the $0 challenge to prove wallet ownership; no charge.
    Free
    skill.md ↗
  3. 03
    GET
    /inboxes/:slug/messages
    List the messages received by one of your inboxes. Wallet-scoped: 404 if the inbox is not owned by the paying wallet.
    $0.001
    skill.md ↗
  4. 04
    GET
    /inboxes/:slug/messages/:id
    Read a single message — parsed headers, text, html, and signed-once URLs to attachment bodies. Wallet-scoped: 404 if the inbox is not owned by the paying wallet.
    $0.001
    skill.md ↗
  5. 05
    POST
    /inboxes/:slug/send
    Send an email from one of your inboxes via Cloudflare Email Service. The `from` is locked to the inbox's own address (`<slug>@<EMAIL_DOMAIN>`); the wallet must own the slug. Sends multipart/alternative (a plain-text part is auto-derived from `html` when omitted) and attaches a one-click `List-Unsubscribe` header — recipients who unsubscribe are dropped from future sends. Set a friendly From name via the inbox `display_name` or per-message `from_name`. Upstream cost: $0.00035 per send (5.7× margin at $0.002). Requires the sender domain to be verified in the Cloudflare dashboard.
    $0.002
    skill.md ↗
  6. 06
    GET
    /inboxes/:slug/status
    Free (identity-only) inbox status: existence, expiry, message count, and whether a webhook is configured. Sign the $0 challenge to prove wallet ownership; no charge. Use this to poll cheaply instead of paying per list.
    Free
    skill.md ↗
  7. 07
    POST
    /inboxes/:slug/messages/:id/delete
    Free (identity-only) delete of a single message and its attachments. Sign the $0 challenge to prove wallet ownership; no charge. 404 if the inbox/message is not owned by the caller.
    Free
    skill.md ↗
  8. 08
    POST
    /inboxes/:slug/update
    Free (identity-only) inbox config update. Set/replace `webhook_url` (a fresh `webhook_secret` is returned once) or `display_name` (the From name on outbound mail), or pass null to remove either; omit a field to leave it unchanged. Sign the $0 challenge to prove wallet ownership; no charge.
    Free
    skill.md ↗
  9. 09
    POST
    /inboxes/:slug/extend
    Renew an inbox for another full TTL period, keeping the same address and tier. Resets the expiry to now + ttl_days and keeps existing messages alive. Wallet must own the inbox.
    $0.002 – $0.02
    skill.md ↗