{"version":1,"name":"Mail","description":"Disposable email inboxes for agents — create, receive, read, and send email. Handy for signups, verification codes, and OTPs. Pay per call.","categories":["Email","Agent infrastructure","Verification"],"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"],"endpoints":[{"method":"GET","path":"/inboxes","description":"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.","payment":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"0","extra":{"name":"USD Coin","version":"2"}}},{"method":"GET","path":"/inboxes","description":"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.","payment":{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","currency":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"0"}},{"method":"POST","path":"/inboxes","description":"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.","payment":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","extra":{"name":"USD Coin","version":"2"}}},{"method":"POST","path":"/inboxes","description":"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.","payment":{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","currency":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"2000"}},{"method":"POST","path":"/inboxes/{slug}/extend","description":"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.","payment":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","extra":{"name":"USD Coin","version":"2"}}},{"method":"POST","path":"/inboxes/{slug}/extend","description":"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.","payment":{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","currency":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"2000"}},{"method":"GET","path":"/inboxes/{slug}/messages","description":"List the messages received by one of your inboxes. Wallet-scoped: 404 if the inbox is not owned by the paying wallet.","payment":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"1000","extra":{"name":"USD Coin","version":"2"}}},{"method":"GET","path":"/inboxes/{slug}/messages","description":"List the messages received by one of your inboxes. Wallet-scoped: 404 if the inbox is not owned by the paying wallet.","payment":{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","currency":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"1000"}},{"method":"GET","path":"/inboxes/{slug}/messages/{id}","description":"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.","payment":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"1000","extra":{"name":"USD Coin","version":"2"}}},{"method":"GET","path":"/inboxes/{slug}/messages/{id}","description":"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.","payment":{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","currency":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"1000"}},{"method":"POST","path":"/inboxes/{slug}/messages/{id}/delete","description":"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.","payment":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"0","extra":{"name":"USD Coin","version":"2"}}},{"method":"POST","path":"/inboxes/{slug}/messages/{id}/delete","description":"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.","payment":{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","currency":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"0"}},{"method":"POST","path":"/inboxes/{slug}/send","description":"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.","payment":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","extra":{"name":"USD Coin","version":"2"}}},{"method":"POST","path":"/inboxes/{slug}/send","description":"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.","payment":{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","currency":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"2000"}},{"method":"GET","path":"/inboxes/{slug}/status","description":"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.","payment":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"0","extra":{"name":"USD Coin","version":"2"}}},{"method":"GET","path":"/inboxes/{slug}/status","description":"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.","payment":{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","currency":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"0"}},{"method":"POST","path":"/inboxes/{slug}/update","description":"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.","payment":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"0","extra":{"name":"USD Coin","version":"2"}}},{"method":"POST","path":"/inboxes/{slug}/update","description":"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.","payment":{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","currency":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"0"}}],"docs":{"homepage":"https://mail.payweave.services","apiReference":"https://mail.payweave.services/openapi.json"}}