About


What does it do?

Validator.pizza is made to prevent users to register to websites with a disposable email address. It checks in the same time if the domain or email is valid.

Validate emails

Complex regular expressions to validate the format of the email

Block disposable emails

6223 domains and counting! (last update 14 hours ago).

Check MX records

Verify MX records for the given domain

Detect alias

Tells you if the email is an alias

How does it work?

I simply do a lot of monitoring to discover new websites that provide disposable domains. And I've set up a system that tracks any changes for knowed websites, in case they add new domains.

How much does it cost?

It's completely free! I needed this service for others projects, so I figured "Why not making this public and help other people".

What's the limit?

The number of request is limited to 120 requests per hour, per IP address. I wanted to make it unlimited, but some people like to go wild, so I had to set a limit to guarantee the good functionality for everyone. If you need a higher limit, please contact me on Twitter.

What do you store?

In order to improve this service, the domains sent to the API are stored. This allows me to find new disposable domains that were not already on the list. Emails are not stored.

Documentation


Validate an email

Request

GET https://www.validator.pizza/email/email@example.com

Response (JSON)

// Valid email
{
    "status": 200,
    "email": "email@example.com",
    "domain": "example.com",
    "mx": false,
    "disposable": false,
    "alias": false,
    "did_you_mean": false,
    "remaining_requests": 119
}
// Invalid email
{
    "status": 400,
    "error": "The email address is invalid."
}
// Requests limit reached
{
    "status": 429,
    "error": "Rate limit exceeded."
}

Validate a domain

Request

GET https://www.validator.pizza/domain/example.com

Response (JSON)

// Valid domain
{
    "status": 200,
    "domain": "example.com",
    "mx": false,
    "disposable": false,
    "did_you_mean": false,
    "remaining_requests": 119
}
// Invalid domain
{
    "status": 400,
    "error": "The domain is invalid."
}
// Requests limit reached
{
    "status": 429,
    "error": "Rate limit exceeded."
}

Keys and Values

Key Value
status (integer) The status of the request. Possibles values are:
  • 200 The request is successful
  • 400 The request is invalid
  • 429 The rate limit is exceeded
email (string) The email you sent
domain (string) The domain you sent, or the domain from the email you sent
mx (boolean) Whether or not the domain has MX records
disposable (boolean) Whether or not the domain is disposable
alias (boolean) Whether or not the email is an alias
did_you_mean (string) Returns a suggested valid email domain based on a list of the most popular email providers. Returns NULL if the domain is already a valid domain, or if there's no close result.
remaining_requests (integer) The remaining number of requests for your IP address, for the current hour
error (string) The description of the error, if the status is different to 200

PHP code example

<?php

$email = "email@example.com";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.validator.pizza/email/' . $email);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
                

Wordpress plugin

I made a Wordpress plugin for the API. You just have to install the plugin and it works out of the box.

The plugin will check the emails when your visitors try to register or comment.

It uses the domain method, so only the domain is sent to the API.