ShieldMail API v3.0

Disposable / Temp Mail Tespit API'si

Engelli domain:

https://api.teknikzeka.net/tempmail/api/

🚀 Hizli Baslangic

1
Kayit Olun

Hesap olusturun ve API key alin.

2
Domain Ekleyin (ZORUNLU)

Panelden API'yi kullanacaginiz domain'i tanimlayin. Domain eklenmeden API calismaz.

3
API Cagrisi
curl -H "X-API-Key: sm_YOUR_API_KEY_HERE" \
  "https://api.teknikzeka.net/tempmail/api/?action=check&email=test@tempmail.com"
⬇ Yanit:
{
  "success": true,
  "data": {
    "domain": "tempmail.com",
    "blocked": true,
    "disposable": true,
    "cached": false
  },
  "usage": {
    "hourly": "1/50",
    "daily": "1/500"
  }
}

🔑 Kimlik Dogrulama

✅ Header (Onerilen)
X-API-Key: sm_YOUR_API_KEY_HERE
Query Parametresi
?key=sm_YOUR_API_KEY_HERE

⚠️ Onemli:

• Domain tanimlamak zorunludur. Yoksa NO_DOMAIN_DEFINED hatasi alirsiniz.

• Istekler sadece tanimli domainlerden kabul edilir. CLI/Postman referer'siz calisir.

📡 Endpoints

GET/api/?action=checkAPI KEY

Tek email veya domain kontrolu. Email verilirse domain otomatik ayristirilir.

↗️ ISTEK
GET /api/?action=check&email=test@tempmail.com
Header: X-API-Key: sm_YOUR_API_KEY_HERE
⬇️ YANIT (Engelli)
{
  "success": true,
  "data": {
    "domain": "tempmail.com",
    "blocked": true,
    "disposable": true,
    "cached": false
  },
  "usage": {
    "hourly": "5/50",
    "daily": "12/500",
    "weekly": "45/2000",
    "monthly": "180/5000"
  }
}
✅ YANIT (Temiz email)
{
  "success": true,
  "data": {
    "domain": "gmail.com",
    "blocked": false,
    "disposable": false,
    "cached": true
  },
  "usage": { "hourly": "6/50", "daily": "13/500", "weekly": "46/2000", "monthly": "181/5000" }
}
POST/api/?action=bulk_checkAPI KEY

Toplu email/domain kontrolu. JSON body ile gonderilir. Limit plana gore degisir.

↗️ ISTEK
POST /api/?action=bulk_check
Header: X-API-Key: sm_YOUR_API_KEY_HEREHeader: Content-Type: application/json

{
  "emails": [
    "user@tempmail.com",
    "contact@gmail.com",
    "info@guerrillamail.com"
  ]
}
⬇️ YANIT
{
  "success": true,
  "data": [
    {
      "email": "user@tempmail.com",
      "domain": "tempmail.com",
      "blocked": true,
      "disposable": true
    },
    {
      "email": "contact@gmail.com",
      "domain": "gmail.com",
      "blocked": false,
      "disposable": false
    },
    {
      "email": "info@guerrillamail.com",
      "domain": "guerrillamail.com",
      "blocked": true,
      "disposable": true
    }
  ],
  "total": 3,
  "blocked_count": 2,
  "usage": { "hourly": "8/50", "daily": "15/500" }
}
GET/api/?action=usageAPI KEY

Hesap bilgileri, plan limitleri ve mevcut kullanim istatistikleri.

↗️ ISTEK
GET /api/?action=usage
Header: X-API-Key: sm_YOUR_API_KEY_HERE
⬇️ YANIT
{
  "success": true,
  "user": {
    "username": "developer",
    "email": "dev@example.com",
    "plan": "Pro",
    "api_key": "sm_12a...b442"
  },
  "limits": {
    "hourly": 1000,
    "daily": 10000,
    "weekly": 50000,
    "monthly": 200000,
    "bulk_check": 100
  },
  "usage": {
    "hourly": 45,
    "daily": 320,
    "weekly": 1500,
    "monthly": 8200
  },
  "remaining": {
    "hourly": 955,
    "daily": 9680,
    "weekly": 48500,
    "monthly": 191800
  }
}
GET/api/?action=plansPUBLIC

Mevcut planlarin listesi, limitleri ve fiyatlari. API key gerekmez.

↗️ ISTEK
GET /api/?action=plans
⬇️ YANIT
{
  "success": true,
  "plans": [
    {
      "name": "Free",
      "slug": "free",
      "price_weekly": 0,
      "price_monthly": 0,
      "price_yearly": 0,
      "limits": {
        "hourly": 50,
        "daily": 500,
        "weekly": 2000,
        "monthly": 5000
      }
    },
    {
      "name": "Pro",
      "slug": "pro",
      "price_weekly": 9.99,
      "price_monthly": 29.99,
      "price_yearly": 299.99,
      "limits": { "..." : "..." }
    }
  ]
}
GET/api/?action=statsPUBLIC

Toplam engelli domain sayisi ve kaynak sayisi. API key gerekmez.

↗️ ISTEK
GET /api/?action=stats
⬇️ YANIT
{
  "success": true,
  "total_blocked_domains": 194480,
  "sources": 22
}

⚠️ Hata Kodlari

HTTPKodAciklama
401AUTH_REQUIREDAPI key gonderilmemis
401INVALID_KEYGecersiz API key
403ACCOUNT_DISABLEDHesap devre disi
403USER_BLOCKEDHesap engellenmis
403NO_DOMAIN_DEFINEDPanelden domain tanimlanmamis
403DOMAIN_NOT_ALLOWEDIstek domain yetkilendirilmemis
429RATE_LIMITEDKullanim limiti asildi
400MISSING_PARAMParametre eksik
400BULK_LIMITToplu kontrol limiti asildi
Ornek hata yaniti:
{
  "success": false,
  "error": {
    "code": "RATE_LIMITED",
    "message": "Hourly limit exceeded. 50/50 used.",
    "retry_after": 1842
  }
}

💻 Ornek Kodlar

Tek Kontrol (cURL)
<?php
$email = 'test@tempmail.com';
$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL => 'https://api.teknikzeka.net/tempmail/api/?action=check&email=' . urlencode($email),
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ['X-API-Key: sm_YOUR_API_KEY_HERE'],
]);
$response = curl_exec($ch);
curl_close($ch);

$res = json_decode($response, true);
if ($res['success'] && $res['data']['blocked']) {
    echo "Disposable email tespit edildi!";
} else {
    echo "Email temiz.";
}
⬇️ Yanit:
{
  "success": true,
  "data": {
    "domain": "tempmail.com",
    "blocked": true,
    "disposable": true,
    "cached": false
  },
  "usage": {
    "hourly": "1/50",
    "daily": "1/500"
  }
}
Toplu Kontrol
<?php
$emails = ['user@tempmail.com', 'admin@gmail.com', 'test@guerrillamail.com'];
$ch = curl_init('https://api.teknikzeka.net/tempmail/api/?action=bulk_check');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'X-API-Key: sm_YOUR_API_KEY_HERE',
        'Content-Type: application/json'
    ],
    CURLOPT_POSTFIELDS => json_encode(['emails' => $emails])
]);
$res = json_decode(curl_exec($ch), true);
curl_close($ch);

echo "Toplam: {$res['total']}, Engelli: {$res['blocked_count']}";
⬇️ Toplu Yanit:
{
  "success": true,
  "data": [
    {"email":"a@temp.com","domain":"temp.com","blocked":true,"disposable":true},
    {"email":"b@gmail.com","domain":"gmail.com","blocked":false,"disposable":false}
  ],
  "total": 2,
  "blocked_count": 1
}
Form Dogrulama Ornegi
<?php
function isDisposableEmail(string $email): bool {
    $ch = curl_init();
    curl_setopt_array($ch, [
        CURLOPT_URL => 'https://api.teknikzeka.net/tempmail/api/?action=check&email=' . urlencode($email),
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT => 5,
        CURLOPT_HTTPHEADER => ['X-API-Key: sm_YOUR_API_KEY_HERE'],
    ]);
    $res = json_decode(curl_exec($ch), true);
    curl_close($ch);
    return ($res['success'] ?? false) && ($res['data']['blocked'] ?? false);
}

// Kullanim
if ($_POST['email'] && isDisposableEmail($_POST['email'])) {
    die('Gecici email adresleri kabul edilmemektedir.');
}

🔔 Webhook (Pro)

Limit asildiginda belirlediginiz URL'ye POST gonderilir. Ayarlar sayfasindan yapilandirilir.

↗️ GONDERILEN POST
POST https://yourdomain.com/webhook
Content-Type: application/json
⬇️ BODY
{
  "event": "rate_limit_exceeded",
  "user_id": 42,
  "period": "hourly",
  "limit": 1000,
  "current_usage": 1001,
  "timestamp": "2025-03-02T09:45:00Z"
}

ShieldMail API v3.0