Temp Email API
Programmatically create disposable email inboxes, receive messages, and read email content.
https://temp-mail.api.axel.lotto/v2/
Free API Key
This is a shared API key. The limit is 5000 shared requests daily.
FREE_PUBLIC_KEY
temp-api [a-t] catboy [d.o.t] email
Authentication
Pass your API key as a key query parameter. Each key has a daily request limit that resets automatically.
curl "https://temp-mail.api.axel.lotto/v2/?key=YOUR_API_KEY&inbox=test@hottempmail.art"
{"error": "Key limit reached"}
Claiming Inboxes
Before accessing emails, you must claim an inbox by querying it once. Claimed inboxes are private to your API key.
curl "https://temp-mail.api.axel.lotto/v2/?key=YOUR_KEY&inbox=myaddress@hottempmail.art"
Inbox reserved, banned, or assigned to a different API key
/v2/
List Inbox
Returns all emails for a claimed inbox, sorted newest first.
Parameters
Response
{
"status": "success",
"count": 2,
"emails": [
{
"id": 123,
"from": "sender@example.com",
"subject": "Hello!",
"date": "Sat, 28 Dec 2025 12:00:00 +0000",
"size": 1024
}
]
}
/v2/
View Email
Retrieves the full body of a specific email. Returns plain text or HTML content.
Parameters
Response
{
"status": "success",
"inbox": "user@hottempmail.art",
"body": "Hello! This is the email content..."
}
/v2/info/
Key Info
Returns usage statistics and claimed inboxes for your API key. Optionally includes access logs.
Parameters
Response
{
"key": "your_api_key",
"limit": 1000,
"used": 123,
"last_reset": "2025-12-01T00:00:00Z",
"claimed_emails": {
"user@hottempmail.art": {
"email": "user@hottempmail.art",
"created_at": "2025-12-27T00:00:00Z",
"key": "your_api_key"
}
}
}
With logs=true
{
"key": "your_api_key",
"limit": 1000,
"used": 123,
"last_reset": "2025-12-01T00:00:00Z",
"claimed_emails": { ... },
"logs": [
{
"date": "2025-12-27",
"time": "14:23:11",
"email": "user@hottempmail.art",
"action": "received",
"status": "success",
"ip": "1.2.3.4",
"country": "US",
"city": "Los Angeles"
}
]
}
/v2/domains/
List Domains
Returns metadata about all available domains including lifecycle status. This endpoint is public and does not require authentication.
Response
{
"domains": [
{
"name": "hottempmail.art",
"description": "Temporary email domain",
"creation_date": "2025-12-07",
"retirement_date": "2026-11-07",
"expiration_date": "2026-12-07",
"email_count": 8,
"days_until_retirement": 314,
"days_until_expiration": 344,
"is_retiring_soon": false,
"status": "active",
"warning_level": "low",
"recommendation": "Domain is safe to use.",
"action_items": [
"Continue normal usage",
"Monitor retirement date"
]
}
],
"overall": {
"total_messages": 4,
"total_domains": 2,
"total_active_domains": 2,
"overall_warning_level": "low",
"overall_recommendation": "All domains are healthy.",
"generated_at": "2025-12-27T22:05:17+00:00"
}
}
Domain Status
Example Usage
const res = await fetch(
"https://temp-mail.api.axel.lotto/v2/domains/"
);
const data = await res.json();
const domain = data.domains.find(d => d.name === "hottempmail.art");
if (domain.status === "active") {
console.log("Domain is safe to use");
}
Parameters Reference
| Parameter | Type | Description |
|---|---|---|
| key | string | API key required |
| inbox | string | Target email address |
| action | string | inbox (default) or view |
| id | integer | Message ID for view action |
| logs | boolean | Include logs in info response |
Errors
| Error | Description |
|---|---|
| Invalid API Key | Key not found |
| Key limit reached | Daily quota exceeded |
| Invalid inbox | Missing or invalid email |
| Inbox reserved, banned, or assigned... | Inbox claimed by another key |
| Message ID required | Missing id for view action |
| Unauthorized | Message doesn't belong to inbox |
| Invalid action | Action is not inbox or view |
| IMAP connection failed | Mail server error |