Developer API

Integrate Arora Mail into your applications. Create disposable emails, fetch messages, and extract OTPs programmatically.

Authentication

🔐 API Key

All API requests require authentication via an API key in the request header.

API access requires a Premium plan or higher. Generate your key via /apikey command in the Telegram bot or from the Dashboard Settings.
Header
X-API-Key: am_your_api_key_here

📍 Base URL

Base URL
https://aroramail.com/api/v1

Endpoints

Account

GET /account Get account info & balance

Returns your account information including plan, balance, and features.

Response
{
  "user_id": 123456789,
  "plan": "premium",
  "balance_emails": 500,
  "total_emails": 15,
  "features": {
    "custom_emails": true,
    "api_access": true,
    "unlimited_emails": false
  }
}

Emails

GET /emails List all your emails
Response
{
  "count": 3,
  "emails": [
    {
      "id": 42,
      "address": "abc123@aroramail.com",
      "created_at": "2024-01-15T10:30:00",
      "message_count": 5,
      "unread_count": 2
    }
  ]
}
POST /emails Create new email

Request Body (optional)

Parameter Type Description
domain string optional Domain name (e.g., aroramail.com)
username string optional Custom username (Premium only)
Response
{
  "success": true,
  "email": {
    "id": 43,
    "address": "newmail@aroramail.com",
    "created_at": "2024-01-15T11:00:00"
  },
  "balance_remaining": 499
}
DELETE /emails/{email_id} Delete an email

Inbox & Messages

GET /emails/{email_id}/inbox Get all messages
Response
{
  "email": "test@aroramail.com",
  "count": 2,
  "messages": [
    {
      "id": 101,
      "sender": "noreply@discord.com",
      "subject": "Verify your email",
      "body_text": "Your verification code is 847291",
      "received_at": "2024-01-15T10:45:00",
      "otp_code": "847291",
      "is_read": false
    }
  ]
}
The otp_code field automatically extracts OTP/verification codes from messages!
GET /emails/{email_id}/messages/{message_id} Get single message
DELETE /emails/{email_id}/messages/{message_id} Delete a message

API Keys

GET /apikeys List your API keys (masked)
POST /apikeys Generate new API key

Code Examples

🐍 Python

python
import requests

API_KEY = "am_your_api_key_here"
BASE_URL = "https://aroramail.com/api/v1"
headers = {"X-API-Key": API_KEY}

# Create a new email
response = requests.post(f"{BASE_URL}/emails", headers=headers)
email = response.json()["email"]
print(f"Created: {email['address']}")

# Wait for OTP and fetch it
import time
time.sleep(30)  # Wait for email to arrive

inbox = requests.get(
    f"{BASE_URL}/emails/{email['id']}/inbox", 
    headers=headers
).json()

for msg in inbox["messages"]:
    if msg["otp_code"]:
        print(f"OTP: {msg['otp_code']}")

🟨 JavaScript / Node.js

javascript
const API_KEY = "am_your_api_key_here";
const BASE_URL = "https://aroramail.com/api/v1";

async function createEmailAndGetOTP() {
    // Create email
    const emailRes = await fetch(`${BASE_URL}/emails`, {
        method: 'POST',
        headers: { 'X-API-Key': API_KEY }
    });
    const { email } = await emailRes.json();
    console.log('Created:', email.address);

    // Wait and check inbox
    await new Promise(r => setTimeout(r, 30000));
    
    const inboxRes = await fetch(
        `${BASE_URL}/emails/${email.id}/inbox`,
        { headers: { 'X-API-Key': API_KEY } }
    );
    const inbox = await inboxRes.json();
    
    const otp = inbox.messages.find(m => m.otp_code);
    if (otp) console.log('OTP:', otp.otp_code);
}

createEmailAndGetOTP();

🔧 cURL

bash
# Create email
curl -X POST https://aroramail.com/api/v1/emails \
  -H "X-API-Key: am_your_api_key_here"

# Get inbox
curl https://aroramail.com/api/v1/emails/42/inbox \
  -H "X-API-Key: am_your_api_key_here"

Rate Limits

Plan Requests/minute Emails/day
Premium 60 100
Business 300 500
Enterprise Unlimited Unlimited