API Fire Mail
Integre e-mails temporários em suas aplicações de forma simples e rápida
Introdução
A API do Fire Mail permite que você crie e gerencie e-mails temporários programaticamente. Perfeito para testes automatizados, verificações de e-mail e proteção de privacidade.
Características:
- Sem autenticação: API aberta e fácil de usar
- Rate limiting: 300 requisições por hora por IP
- Respostas JSON: Formato padronizado e fácil de parsear
- CORS habilitado: Use diretamente do navegador
- E-mails automáticos: Deletados após 7 dias de inatividade
URL Base:
Rate Limiting
Para garantir a qualidade do serviço, a API possui as seguintes limitações:
- 300 requisições por hora por endereço IP
- IPs que excederem o limite serão bloqueados por 1 hora
- O contador é resetado a cada hora
Headers de resposta: Todas as respostas incluem informações sobre o limite
no campo rate_limit
do JSON.
Endpoints
POST Criar E-mail Temporário
Cria um novo endereço de e-mail temporário.
Parâmetros (opcional):
Campo | Tipo | Descrição |
---|---|---|
email |
string | Nome do e-mail desejado (sem @dominio). Se não informado, será gerado aleatoriamente. |
Exemplo de requisição:
// Criar e-mail aleatório
const response = await fetch('https://firemail.com.br/api/email/create', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
}
});
const data = await response.json();
console.log(data);
// Criar e-mail específico
const responseCustom = await fetch('https://firemail.com.br/api/email/create', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
email: 'meuemail123'
})
});
const dataCustom = await responseCustom.json();
console.log(dataCustom);
// Criar e-mail aleatório
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://firemail.com.br/api/email/create');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
print_r($data);
// Criar e-mail específico
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://firemail.com.br/api/email/create');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['email' => 'meuemail123']));
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
print_r($data);
Resposta de sucesso:
{
"status": "success",
"message": "E-mail criado com sucesso",
"data": {
"email": "[email protected]",
"created_at": "2025-06-05 10:30:00",
"expires_in": "7 dias"
}
}
GET Verificar Mensagens
Lista todas as mensagens recebidas em um endereço de e-mail.
Parâmetros de URL:
Parâmetro | Tipo | Descrição |
---|---|---|
{email} |
string | Nome do e-mail (sem @dominio) |
Exemplo de requisição:
const email = 'meuemail123';
const response = await fetch(`https://firemail.com.br/api/email/check/${email}`);
const data = await response.json();
console.log(`Total de mensagens: ${data.data.message_count}`);
data.data.messages.forEach(msg => {
console.log(`De: ${msg.from.email} - Assunto: ${msg.subject}`);
});
$email = 'meuemail123';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://firemail.com.br/api/email/check/' . $email);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
echo "Total de mensagens: " . $data['data']['message_count'] . "\n";
foreach($data['data']['messages'] as $msg) {
echo "De: {$msg['from']['email']} - Assunto: {$msg['subject']}\n";
}
Resposta de sucesso:
{
"status": "success",
"data": {
"email": "[email protected]",
"message_count": 2,
"messages": [
{
"id": 1,
"from": {
"name": "João Silva",
"email": "[email protected]"
},
"subject": "Teste de e-mail",
"date": "2025-06-05 10:35:00",
"timestamp": 1717590900
},
{
"id": 2,
"from": {
"name": null,
"email": "[email protected]"
},
"subject": "Confirmação de cadastro",
"date": "2025-06-05 10:40:00",
"timestamp": 1717591200
}
]
}
}
GET Obter Mensagem Específica
Obtém o conteúdo completo de uma mensagem específica.
Parâmetros de URL:
Parâmetro | Tipo | Descrição |
---|---|---|
{email} |
string | Nome do e-mail (sem @dominio) |
{id} |
integer | ID da mensagem |
Exemplo de requisição:
const email = 'meuemail123';
const messageId = 1;
const response = await fetch(`https://firemail.com.br/api/email/message/${email}/${messageId}`);
const data = await response.json();
console.log(`Assunto: ${data.data.subject}`);
console.log(`De: ${data.data.from.email}`);
console.log(`Conteúdo: ${data.data.body}`);
Resposta de sucesso:
{
"status": "success",
"data": {
"id": 1,
"from": {
"name": "João Silva",
"email": "[email protected]"
},
"subject": "Teste de e-mail",
"body": "Olá! Este é um teste de e-mail temporário.",
"date": "2025-06-05 10:35:00",
"timestamp": 1717590900
}
}
GET Status da API
Verifica o status da API e informações sobre rate limit.
Exemplo de requisição:
const response = await fetch('https://firemail.com.br/api/status');
const data = await response.json();
console.log(`Limite por hora: ${data.data.rate_limit.limit_per_hour}`);
console.log(`Uso atual: ${data.data.rate_limit.current_usage}`);
console.log(`Requisições restantes: ${data.data.rate_limit.remaining}`);
Resposta:
{
"status": "success",
"data": {
"api_version": "1.0",
"rate_limit": {
"limit_per_hour": 300,
"current_usage": 15,
"remaining": 45
},
"server_time": "2025-06-05 10:45:00"
}
}
Códigos de Erro
Código | Descrição | Exemplo de Resposta |
---|---|---|
400 | Requisição inválida | {"status": "error", "message": "E-mail inválido", "code": 400} |
404 | Recurso não encontrado | {"status": "error", "message": "E-mail não encontrado", "code": 404} |
429 | Limite de requisições excedido | {"status": "error", "message": "Limite de requisições excedido", "code": 429} |
500 | Erro interno do servidor | {"status": "error", "message": "Erro ao processar requisição", "code": 500} |
Exemplos Práticos
Monitorar e-mail em tempo real (JavaScript)
async function monitorEmail(emailName) {
console.log(`Monitorando e-mail: ${emailName}@firemail.com.br`);
setInterval(async () => {
try {
const response = await fetch(`https://firemail.com.br/api/email/check/${emailName}`);
const data = await response.json();
if (data.status === 'success' && data.data.message_count > 0) {
console.log(`Novas mensagens: ${data.data.message_count}`);
// Processar cada mensagem
for (const msg of data.data.messages) {
console.log(`Nova mensagem de ${msg.from.email}: ${msg.subject}`);
// Buscar conteúdo completo
const msgResponse = await fetch(`https://firemail.com.br/api/email/message/${emailName}/${msg.id}`);
const msgData = await msgResponse.json();
console.log('Conteúdo:', msgData.data.body);
}
}
} catch (error) {
console.error('Erro ao verificar e-mail:', error);
}
}, 5000); // Verificar a cada 5 segundos
}
// Criar e-mail e começar monitoramento
async function startMonitoring() {
const response = await fetch('https://firemail.com.br/api/email/create', {
method: 'POST'
});
const data = await response.json();
if (data.status === 'success') {
const email = data.data.email.split('@')[0];
monitorEmail(email);
}
}
startMonitoring();
Sistema de verificação de e-mail (PHP)
class FireMailVerification {
private $apiUrl = 'https://firemail.com.br/api';
public function createVerificationEmail($username = null) {
$data = $username ? ['email' => $username] : [];
$ch = curl_init($this->apiUrl . '/email/create');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
public function waitForVerification($email, $expectedSender, $timeout = 300) {
$emailName = explode('@', $email)[0];
$startTime = time();
while (time() - $startTime < $timeout) {
$ch = curl_init($this->apiUrl . '/email/check/' . $emailName);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
if ($data['status'] === 'success' && $data['data']['message_count'] > 0) {
foreach ($data['data']['messages'] as $msg) {
if (strpos($msg['from']['email'], $expectedSender) !== false) {
// Buscar conteúdo da mensagem
$ch = curl_init($this->apiUrl . '/email/message/' . $emailName . '/' . $msg['id']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$msgResponse = curl_exec($ch);
curl_close($ch);
return json_decode($msgResponse, true);
}
}
}
sleep(5); // Aguardar 5 segundos antes de verificar novamente
}
return null; // Timeout
}
}
// Exemplo de uso
$verifier = new FireMailVerification();
// Criar e-mail de verificação
$result = $verifier->createVerificationEmail('verificacao' . rand(1000, 9999));
if ($result['status'] === 'success') {
$email = $result['data']['email'];
echo "Use este e-mail para verificação: $email\n";
// Aguardar e-mail de verificação
echo "Aguardando e-mail de verificação...\n";
$verification = $verifier->waitForVerification($email, '[email protected]');
if ($verification) {
echo "E-mail de verificação recebido!\n";
echo "Assunto: " . $verification['data']['subject'] . "\n";
echo "Conteúdo: " . $verification['data']['body'] . "\n";
} else {
echo "Tempo limite excedido.\n";
}
}