beta

Document

Get temporary email addresses and read inbox programmatically. No API key required — free to use.

Base URL: https://temp.tf/api

Rate limit: 60 requests per minute per IP. Responses include Retry-After when limited.

GET/account

Returns a random temporary email address. Enable dot (Gmail) and/or plus (Gmail, Outlook, Hotmail) to get a valid alias.

Query parameters

  • dot1 or true — Gmail dot variants (e.g. u.s.e.r@gmail.com)
  • plus1 or true — Plus alias (e.g. user+abc123@gmail.com)
  • providers — optional — Comma-separated: gmail, outlook, hotmail. Omit for all.

At least one of dot or plus is required. Dot-only requires providers=gmail.

Response (200)

{ "email": "user+xyz123@gmail.com" }

Example

curl "https://temp.tf/api/account?dot=1&plus=1"
POST/check

Returns the inbox for a temporary address (only addresses returned by GET /account are allowed).

Body (JSON)

{ "email": "user+xyz123@gmail.com" }

Response (200)

{
  "data": [
    {
      "subject": "Verify your email",
      "from": "noreply@example.com",
      "date": "2025-02-17T12:00:00.000Z",
      "body": "<p>Click here to verify...</p>",
      "bodyContentType": "html",
      "id": "42",
      "attachments": [
        { "id": "AAMk...", "name": "file.pdf", "contentType": "application/pdf", "size": 1024 }
      ],
      "inlineCids": { "cid123": "attachmentId" }
    }
  ],
  "totalReceived": 1000
}

bodyContentType is html or text. inlineCids maps cid: references to attachment ids for inline images.

Example

curl -X POST "https://temp.tf/api/check" \
  -H "Content-Type: application/json" \
  -d '{"email":"user+xyz123@gmail.com"}'
GET/attachment

Download an attachment. Use messageId and attachmentId from the message object returned by POST /check.

Query parameters

  • email — temporary address
  • messageId — message id from inbox
  • attachmentId — attachment id from message

Returns the file binary with appropriate Content-Type and Content-Disposition.

Example

curl "https://temp.tf/api/attachment?email=user%2Bxyz@gmail.com&messageId=42&attachmentId=AAMk..." -o file.pdf
GET/stats

Returns total available addresses (by dot/plus and providers) and total messages received. Same query params as GET /account.

Query parameters

Same as GET /account: dot, plus, providers.

Response (200)

{
  "totalAddresses": 365615409626112,
  "totalFormatted": "365.6 trillion",
  "totalReceived": 12345,
  "breakdown": { "gmail": 365615409626112, "outlook": 0, "hotmail": 0 },
  "breakdownFormatted": { "gmail": "365.6 trillion", "outlook": "0", "hotmail": "0" }
}

Example

curl "https://temp.tf/api/stats?dot=1&plus=1"

Errors

All errors return JSON with an error field. Common status codes:

  • 400 — Bad request (missing/invalid params or body)
  • 403 — Forbidden (e.g. non–temp address for /check or /attachment)
  • 404 — Not found (address or message not found)
  • 429 — Too many requests (60/min per IP); retry after the number of seconds in Retry-After header
  • 500 — Server error