DisposableGuard

API Documentation

Complete reference for the DisposableGuard API. Check single emails or batch up to 100 at once.

Base URL

https://api.disposableguard.com/api/v1

Authentication

Include your API key in the Authorization header:

Authorization: Bearer dg_live_...

Get your API key from the dashboard.

Check a single email

GET /api/v1/check?email=user@domain.com

Query Parameters

ParameterTypeRequiredDescription
emailstringYesEmail address to check

Response (200)

{
  "email": "test@mailinator.com",
  "domain": "mailinator.com",
  "is_disposable": true,
  "blocked": true,
  "reason": "Domain is a known disposable / temporary email provider.",
  "duration_ms": 2,
  "source": "local"
}

Response Fields

FieldTypeDescription
emailstringThe email address that was checked
domainstringDomain extracted from the email
is_disposablebooleanWhether the email uses a disposable provider
blockedbooleanSame as is_disposable (convenience field)
reasonstringHuman-readable explanation of the verdict
duration_msintegerProcessing time in milliseconds
sourcestring"local" (matched database) or "unknown" (not found)

Batch check emails

Check up to 100 email addresses in a single request. More efficient than individual calls.

POST /api/v1/check/batch

Request Body

{
  "emails": [
    "user@gmail.com",
    "test@mailinator.com",
    "admin@guerrillamail.com",
    "invalid-email"
  ]
}

Response (200)

{
  "results": [
    { "email": "user@gmail.com", "is_disposable": false, "source": "unknown" },
    { "email": "test@mailinator.com", "is_disposable": true, "source": "local" },
    { "email": "admin@guerrillamail.com", "is_disposable": true, "source": "local" },
    { "email": "invalid-email", "is_disposable": false, "source": "unknown" }
  ],
  "summary": {
    "total": 4,
    "disposable": 2,
    "legitimate": 1,
    "invalid": 1
  },
  "rate_limit": {
    "monthly_remaining": 496,
    "burst_remaining": 3
  },
  "duration_ms": 3
}

Error Codes

StatusErrorMeaning
400bad_requestMissing or malformed email
401invalid_api_keyAPI key is wrong or revoked
429rate_limit_exceededBurst limit hit
429plan_limitMonthly cap hit

Rate Limits

PlanMonthlyBurst
Free500 / month5 req / sec
Basic10,000 / month10 req / sec
Pro100,000 / month25 req / sec
Ultra1,000,000 / month50 req / sec

Database

Our database contains 164,628 disposable email domains aggregated from 6 open-source sources:

  • disposable/disposable (72,305 domains)
  • ivolo/disposable-email-domains (121,569 domains)
  • willwhite/freemail (88,173 domains)
  • groundcat/disposable-email-domain-list (27,120 domains)
  • martenson/disposable-email-domains (5,447 domains)
  • unkn0w/disposable-email-domain-list (3,617 domains)

After deduplication and filtering out legitimate providers: 164,628 unique disposable domains.