Developer API is Ready in Free Beta

The public API currently supports the core REST workflow: create a temporary inbox, then retrieve messages for that inbox. No SDK is required. Use standard HTTP requests from any language.

TempMail AU REST APIDeveloper Documentation

Build temporary email into testing, QA, signup validation, and privacy workflows with API key authentication and simple JSON responses.

API Keys

API keys are created from the authenticated developer tab. Keep the key server-side and pass it as a bearer token.

No SDK Required

Use curl, fetch, requests, Postman, Playwright, Cypress, or any HTTP client. Official SDKs are not part of the public API yet.

Domain Rule

Public URLs use tempmail.com.au. Generated temporary inboxes use the mail domain @tempmail.au.

How to Get an API Key

This is the complete public flow for developers. The full API key is shown once, so copy it before leaving the page.

  1. 1Create or sign in to a free TempMail AU account.
  2. 2Open the developer tab at /inbox?tab=developers.
  3. 3Enter a key name such as Cypress Tests or QA Automation.
  4. 4Generate the key and copy it immediately. The full key is shown only once.
  5. 5Send it as Authorization: Bearer YOUR_API_KEY on every API request.
Open developer tab

Quick Start

curl -X POST "https://tempmail.com.au/api/v1/inboxes" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

When retrieving messages, encode the full email address in the URL. For example, abc123@tempmail.au becomes abc123%40tempmail.au.

API Reference

POST/api/v1/inboxes

Create a new temporary inbox.

Auth: Required. 201 Created with the generated @tempmail.au address and expiry.

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

Retrieve messages for a temporary inbox.

Auth: Required. 200 OK with an array of messages. URL-encode the address before calling this endpoint.

Request Examples

JavaScript Fetch

const API_KEY = process.env.TEMPMAIL_API_KEY;
const BASE_URL = "https://tempmail.com.au/api/v1";

async function createInbox() {
  const response = await fetch(`${BASE_URL}/inboxes`, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${API_KEY}`,
      "Content-Type": "application/json",
    },
  });

  if (!response.ok) {
    throw new Error(`Create inbox failed: ${response.status}`);
  }

  return response.json();
}

async function getMessages(address) {
  const encodedAddress = encodeURIComponent(address);
  const response = await fetch(
    `${BASE_URL}/inboxes/${encodedAddress}/messages`,
    {
      headers: {
        Authorization: `Bearer ${API_KEY}`,
      },
    }
  );

  if (!response.ok) {
    throw new Error(`Get messages failed: ${response.status}`);
  }

  return response.json();
}

Python Requests

import requests
from urllib.parse import quote

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://tempmail.com.au/api/v1"

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json",
}

def create_inbox():
    response = requests.post(f"{BASE_URL}/inboxes", headers=headers)
    response.raise_for_status()
    return response.json()

def get_messages(address):
    encoded_address = quote(address, safe="")
    response = requests.get(
        f"{BASE_URL}/inboxes/{encoded_address}/messages",
        headers=headers,
    )
    response.raise_for_status()
    return response.json()

Response Examples

Create inbox response

HTTP/1.1 201 Created
{
  "success": true,
  "data": {
    "address": "abc123xy@tempmail.au",
    "expiresAt": "2026-05-29T02:10:00.000Z"
  }
}

Messages response

HTTP/1.1 200 OK
{
  "success": true,
  "data": [
    {
      "$id": "msg_456",
      "tempEmailAddress": "abc123xy@tempmail.au",
      "from": "noreply@example.com",
      "to": "abc123xy@tempmail.au",
      "subject": "Your verification code",
      "textContent": "Your code is 123456",
      "htmlContent": "<p>Your code is <strong>123456</strong></p>",
      "receivedAt": "2026-05-28T02:15:00.000Z",
      "isRead": false,
      "isArchived": false,
      "hasAttachments": false
    }
  ]
}

Authentication error

HTTP/1.1 401 Unauthorized
{
  "success": false,
  "error": "Unauthorized. Invalid or missing API Key."
}

Rate Limits

Free beta100 requests/hour
Developer tier1,000 requests/hour
Pro tier10,000 requests/hour
EnterpriseCustom limits

Current API Status

  • Create inbox and retrieve messages endpoints are public beta.
  • Official SDKs are not required and are not published yet.
  • Webhooks are not public yet. Poll the messages endpoint for now.

AI and Tool Integration Contract

Use this compact contract when building an AI skill, CLI helper, QA automation, or internal developer tool against TempMail AU.

Base URL: https://tempmail.com.au/api/v1
Auth: Authorization: Bearer YOUR_API_KEY

Create inbox:
POST /inboxes
Response: { success: true, data: { address, expiresAt } }

List messages:
GET /inboxes/{url_encoded_address}/messages
Address example: abc123xy@tempmail.au -> abc123xy%40tempmail.au
Response: { success: true, data: [messages] }

Generated inbox addresses use @tempmail.au.
Marketing, docs, and API URLs use tempmail.com.au.
Allowed use: testing, QA, temporary verification, and privacy workflows.
Prohibited use: spam, fraud, phishing, harassment, impersonation, or abuse.

Support & Resources

FAQ

Review API limits, temporary inbox behaviour, and delivery troubleshooting.

View FAQ

Developer Support

Get help with integration, report bugs, or request new developer features.

Contact support

Ready to Start Building?

Generate a key, create a test inbox, and retrieve incoming messages using direct REST calls.

Get API key