Skip to content

Latest commit

 

History

History
88 lines (73 loc) · 2.56 KB

README.md

File metadata and controls

88 lines (73 loc) · 2.56 KB

Temp Mail Detector Python API

This repository contains the required code for you to make an API request to the Temp Mail Detector service using Python.

Temporary email addresses can cause issues for services which provide a freemium model or which offer a trial. While we understand that temporary emails are great at preserving privacy, there is a need to control where and when they can be used.

Below you will find an example implementation and JSON response of this library:

Example response

{
  "domain": "apn7.com",
  "score": 100,
  "meta": {
    "block_list": true,
    "domain_age": 2,
    "website_resolves": false,
    "accepts_all_addresses": false,
    "valid_email_security": true
  }
}

Example usage

import json
import requests
from dataclasses import dataclass

API_URL = "https://api.tempmaildetector.com/check"
CONTENT_TYPE = "application/json"

@dataclass
class Meta:
    block_list: bool
    domain_age: int
    website_resolves: bool
    accepts_all_addresses: bool
    valid_email_security: bool

@dataclass
class DomainCheckResponse:
    domain: str
    score: int
    meta: Meta

class Client:
    def __init__(self, api_key: str):
        self.api_key = api_key

    def check_domain(self, domain: str) -> DomainCheckResponse:
        request_body = json.dumps({"domain": domain})
        headers = {
            "Content-Type": CONTENT_TYPE,
            "Authorization": self.api_key
        }

        response = requests.post(API_URL, data=request_body, headers=headers)
        
        if response.status_code != 200:
            raise Exception(f"Received non-200 response: {response.text}")

        response_data = response.json()
        meta = Meta(
            block_list=response_data["meta"]["block_list"],
            domain_age=response_data["meta"]["domain_age"],
            website_resolves=response_data["meta"]["website_resolves"],
            accepts_all_addresses=response_data["meta"]["accepts_all_addresses"],
            valid_email_security=response_data["meta"]["valid_email_security"],
        )
        return DomainCheckResponse(
            domain=response_data["domain"],
            score=response_data["score"],
            meta=meta
        )

# Example usage:
if __name__ == "__main__":
    api_key = "YOUR_API_KEY"
    client = Client(api_key)

    domain = "devncie.com"
    try:
        response = client.check_domain(domain)
        print(f"Domain: {response.domain}\nScore: {response.score}\nMeta: {response.meta}")
    except Exception as e:
        print(f"Error checking domain: {e}")