I do not see anything in my-addr.com's TOU that prohibits using it programatically: since you are happy with the site's results, you could consider (i.e. weigh technically, legally, and ethically) using my-addr.com itself as an "API".
As a starting point, here is Fiddler Request to Code C# for a quick mailbox-existence check I performed:
private void MakeRequests()
{
HttpWebResponse response;
if (Request_my_addr_com(out response))
{
response.Close();
}
}
private bool Request_my_addr_com(out HttpWebResponse response)
{
response = null;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://my-addr.com/email/?mail=baz%40gmail.com&x=0&y=0");
request.KeepAlive = true;
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36";
request.Referer = "http://my-addr.com/email/?mail=foo%40gmail.com&x=15&y=12";
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip,deflate,sdch");
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "en-US,en;q=0.8");
request.Headers.Set(HttpRequestHeader.Cookie, @"PHPSESSID=ne655jvfdte82b94gn0oumegj6");
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException e)
{
if (e.Status == WebExceptionStatus.ProtocolError) response = (HttpWebResponse)e.Response;
else return false;
}
catch (Exception)
{
if(response != null) response.Close();
return false;
}
return true;
}