Free · No sign-up · No tokens

Disposable Email API
for Developers

Create temporary mailboxes with a single HTTP call. Get a unique API key per mailbox. No accounts, no setup, no complexity.

terminal
$ curl -X POST https://tempy.email/api/v1/mailbox

{
  "email":      "quick.pixel.f3k9@tempy.email",
  "webUrl":    "https://tempy.email/?mailbox=quick.pixel.f3k9",
  "expiresAt": "2026-02-12T14:30:00Z",
  "secondsRemaining": 600
}

$ curl https://tempy.email/api/v1/mailbox/quick.pixel.f3k9@tempy.email/messages

Built for developers

Everything you need to handle disposable email in your testing and automation workflows.

Instant Mailboxes

Create disposable addresses with a single POST request. 10-minute lifetime, auto-cleanup, zero config. Each mailbox gets a web viewer URL too.

Webhook Delivery

Forward incoming emails to your server in real-time as JSON or XML. No polling loops — get notified the instant mail arrives.

Receive-Only by Design

We deliberately don't offer outbound sending. Zero spam potential — this API is purpose-built for catching inbound mail, not sending it.

API Reference

Base URL: https://tempy.email/api/v1

Creating mailboxes works without auth (throttled) or with an X-Api-Key for higher limits. All other endpoints are fully public.

✨ Developer-friendly: Content-Type defaults to application/json — no need to specify it!

POST /api/v1/mailbox Auth optional

Create a new disposable mailbox. Optionally pick a domain or configure a webhook URL.

Two tiers: Without X-Api-Key — free, throttled to 1 req/sec per IP. With X-Api-Key — uses 1 credit, higher rate limits.
// Optional request body
{ "domain": "tempy.email", "webhookUrl": "https://...", "webhookFormat": "json" }
GET /api/v1/mailbox/{address}

Check mailbox status and remaining lifetime.

GET /api/v1/mailbox/{address}/messages

Retrieve all emails for this mailbox.

DELETE /api/v1/mailbox/{address}

Immediately deactivate a mailbox.

Webhooks

Pass webhookUrl and webhookFormat when creating a mailbox. We'll POST each incoming email to your endpoint immediately. Targets must resolve to public IPs (SSRF-protected).

// Webhook payload (JSON)
{ "id": "msg_abc123", "from": "noreply@example.com",
  "to": "quick.pixel.f3k9@tempy.email",
  "subject": "Verify your account",
  "body_text": "Your code is 123456",
  "received_at": "2026-02-12T14:25:30Z",
  "direction": "inbound" }

Try it now

Create a real disposable mailbox — right here, right now. It expires in 10 minutes.

Creates a real disposable mailbox on our servers.

Quick start

Copy-paste examples for your language of choice.

curl
# 1. Create a disposable mailbox
RESPONSE=$(curl -s -X POST https://tempy.email/api/v1/mailbox)
EMAIL=$(echo $RESPONSE | jq -r '.email')
echo "Mailbox: $EMAIL"

# 2. Poll for incoming emails
curl -s https://tempy.email/api/v1/mailbox/$EMAIL/messages | jq

# 3. Check mailbox status
curl -s https://tempy.email/api/v1/mailbox/$EMAIL | jq

# 4. Create a mailbox with webhook
curl -s -X POST https://tempy.email/api/v1/mailbox \
  -H "Content-Type: application/json" \
  -d '{"webhookUrl": "https://your-server.com/hook", "webhookFormat": "json"}'

# 5. Cleanup when done
curl -s -X DELETE https://tempy.email/api/v1/mailbox/$EMAIL

Limits

Rule Limit
Mailbox lifetime 10 minutes
Create mailbox 30 / minute per IP
Poll / status requests 120 / minute per IP
Delete mailbox 30 / minute per IP
Outbound sending Not available
Webhook targets Public IPs only (SSRF protected)