适用于临时邮箱地址生成、邮件查询与实时收件监听。本文档面向已经获得 API Key 的开发者与合作方。
推荐使用 HTTP Header 传递 API Key。所有 API 请求都应包含以下任一认证方式:
X-API-Key: YOUR_API_KEY
Authorization: Bearer YOUR_API_KEY
生成单个临时邮箱地址。
curl "https://quanxinhdd.xyz/api/generate" \
-H "X-API-Key: YOUR_API_KEY"
{
"email": "charlotte.rodriguez@k3n.quanxinhdd.xyz",
"expires_in_minutes": 15,
"domain": "quanxinhdd.xyz"
}
批量生成邮箱地址。适用于并发任务、批量注册、自动化流程。
curl -X POST "https://quanxinhdd.xyz/api/generate/batch?count=1000" \
-H "X-API-Key: YOUR_API_KEY"
查询单个邮箱的邮件列表。
curl "https://quanxinhdd.xyz/api/emails/charlotte.rodriguez@k3n.quanxinhdd.xyz?limit=50" \
-H "X-API-Key: YOUR_API_KEY"
增量查询新邮件。推荐用于持续轮询时减少无效数据传输。
| 参数 | 类型 | 说明 |
|---|---|---|
| limit | integer | 单次返回数量,默认 50,最大 200。 |
| after_id | integer | 仅返回 ID 大于该值的新邮件。 |
批量查询多个邮箱的邮件数据。适用于高并发、多邮箱并行任务。
curl -X POST "https://quanxinhdd.xyz/api/emails/bulk" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"items": [
{"email": "charlotte.rodriguez@k3n.quanxinhdd.xyz", "after_id": 120, "limit": 20},
{"email": "emma.scott@xra0.quanxin.edu.kg", "after_id": 88, "limit": 20}
]
}'
实时监听新邮件。连接成功后会先返回一条 connected 消息,后续新邮件到达时继续推送。
wss://quanxinhdd.xyz/ws/charlotte.rodriguez@k3n.quanxinhdd.xyz?api_key=YOUR_API_KEY
| 字段 | 类型 | 说明 |
|---|---|---|
| string | 生成的完整邮箱地址,请直接使用该值。 | |
| expires_in_minutes | integer | 邮箱邮件默认保留分钟数。 |
| domain | string | 本次生成所使用的域名池域名。 |
| id | integer | 邮件唯一 ID,可用于后续 after_id 增量查询。 |
| code | string|null | 从邮件正文中提取的验证码(若识别到)。 |
| 状态码 | 含义 | 说明 |
|---|---|---|
| 200 | 成功 | 请求处理成功。 |
| 400 | 请求参数错误 | 例如邮箱格式非法、域名不受支持、批量请求体不合法等。 |
| 401 | 鉴权失败 | 未传 API Key、API Key 无效或已被禁用。 |
| 503 | 服务暂不可用 | 例如当前没有可用域名池,或生成失败需稍后重试。 |
const API_KEY = 'YOUR_API_KEY';
async function createMailbox() {
const res = await fetch('https://quanxinhdd.xyz/api/generate', {
headers: { 'X-API-Key': API_KEY }
});
return await res.json();
}
async function createMailboxes(count) {
const res = await fetch(`https://quanxinhdd.xyz/api/generate/batch?count=${count}`, {
method: 'POST',
headers: { 'X-API-Key': API_KEY }
});
return await res.json();
}
async function getEmailsBulk(items) {
const res = await fetch('https://quanxinhdd.xyz/api/emails/bulk', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': API_KEY,
},
body: JSON.stringify({ items })
});
return await res.json();
}
function watchMailbox(email, onMail) {
const ws = new WebSocket(`wss://quanxinhdd.xyz/ws/${encodeURIComponent(email)}?api_key=${encodeURIComponent(API_KEY)}`);
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
if (data.type === 'connected') return;
if (data.type === 'heartbeat') return;
if (data.type === 'email') onMail(data);
};
return ws;
}
import json
import requests
import websocket
base = 'https://quanxinhdd.xyz'
api_key = 'YOUR_API_KEY'
headers = {'X-API-Key': api_key}
mailbox = requests.get(f'{base}/api/generate', headers=headers).json()
email = mailbox['email']
print('邮箱:', email)
mailboxes = requests.post(f'{base}/api/generate/batch?count=100', headers=headers).json()
print('批量数量:', len(mailboxes))
bulk = requests.post(
f'{base}/api/emails/bulk',
headers=headers,
json={
'items': [
{'email': email, 'after_id': 0, 'limit': 20},
]
},
).json()
print('批量结果:', bulk)
def on_message(ws, message):
data = json.loads(message)
if data.get('type') == 'connected':
return
if data.get('type') == 'heartbeat':
return
if data.get('type') == 'email':
print('新邮件:', data)
ws = websocket.WebSocketApp(
f'wss://quanxinhdd.xyz/ws/{email}?api_key={api_key}',
on_message=on_message,
)
ws.run_forever()