---
title: Email Checker API - Real-Time Validation, Deliverability & Risk Signals
version: 1.0.0
description: Validate a single email address and receive comprehensive results including syntax validation, domain verification, account detection, DNS records (MX and A records), and optional IP-based geolocation and security enrichment. Returns deliverability assessment with valid/accept_all/invalid/unknown/risky/app_server_blocked status.
openapi: 3.1.1
servers:
  - https://api.apifreaks.com/v1.0
paths: 1
operations: 1
schemas: 9
---

## Table of Contents

- [Email Checker API - Real-Time Validation, Deliverability & Risk Signals v1.0.0](#email-checker-api-real-time-validation-deliverability-risk-signals-v100)
  - [Authentication](#authentication)
  - [Email Validation APIs](#email-validation-apis)
    - [checkEmail](#checkemail)
      - [Parameters](#parameters)
      - [Responses](#responses)
  - [Schemas](#schemas)
    - [SingleEmailValidationResponse](#singleemailvalidationresponse)
    - [DomainObject](#domainobject)
    - [AccountObject](#accountobject)
    - [DnsObject](#dnsobject)
    - [AddressObject](#addressobject)
    - [EmailLocation](#emaillocation)
    - [EmailSecurity](#emailsecurity)
    - [EmailCheckRequest](#emailcheckrequest)
    - [ErrorResponse](#errorresponse)



# Email Checker API - Real-Time Validation, Deliverability & Risk Signals v1.0.0

Validate a single email address and receive comprehensive results including syntax validation, domain verification, account detection, DNS records (MX and A records), and optional IP-based geolocation and security enrichment. Returns deliverability assessment with valid/accept_all/invalid/unknown/risky/app_server_blocked status.

Base URLs:

* [https://api.apifreaks.com/v1.0](https://api.apifreaks.com/v1.0)

## Authentication

* API Key (ApiKeyAuthHeader)
    - Parameter Name: **X-apiKey**, in: header. Pass your API key via the X-apiKey request header.

* API Key (ApiKeyAuthQuery)
    - Parameter Name: **apiKey**, in: query. Pass your API key via the apiKey query parameter.

## Email Validation APIs

### checkEmail

`POST /email-validation/single`

*Validate a single email*

Validates a single email address and returns result.

> Body parameter

```json
{
  "email": "user@example.com",
  "name": "string",
  "ip": "string"
}
```

#### Parameters

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|format|query|string|false|Format of the response|
|body|body|[EmailCheckRequest](#emailcheckrequest)|true|none|

##### Enumerated Values

|Parameter|Value|
|---|---|
|format|json|
|format|xml|

> Example responses

> Successful response with Email Validation

```json
{
  "success": true,
  "email": "abc.def@gmail.com",
  "validEmail": "valid",
  "validSyntax": true,
  "domain": {
    "name": "gmail.com",
    "disposable": false,
    "spam": false,
    "free": true,
    "validDomain": true,
    "catchAll": false
  },
  "account": {
    "role": false,
    "fullMailBox": false
  },
  "dns": {
    "mxRecord": [
      "gmail-smtp-in.l.google.com.",
      "alt1.gmail-smtp-in.l.google.com.",
      "alt2.gmail-smtp-in.l.google.com.",
      "alt3.gmail-smtp-in.l.google.com.",
      "alt4.gmail-smtp-in.l.google.com."
    ]
  }
}
```

```json
{
  "success": true,
  "email": "not-an-email",
  "validEmail": "INVALID_EMAIL",
  "validSyntax": false,
  "domain": {
    "name": "not-an-email",
    "validDomain": false
  }
}
```

```json
{
  "success": true,
  "email": "test@nonexistentdomainxyz123abc.com",
  "validEmail": "invalid",
  "validSyntax": true,
  "reason": "mx record does not exist.",
  "domain": {
    "name": "nonexistentdomainxyz123abc.com",
    "disposable": false,
    "spam": false,
    "free": false,
    "validDomain": false,
    "catchAll": false
  },
  "account": {
    "role": false
  }
}
```

```json
{
  "success": true,
  "email": "random12345@yahoo.com",
  "validEmail": "accept_all",
  "validSyntax": true,
  "reason": "domain accepts all addresses.",
  "domain": {
    "name": "yahoo.com",
    "disposable": false,
    "spam": false,
    "free": true,
    "validDomain": true,
    "catchAll": true
  },
  "account": {
    "role": false,
    "fullMailBox": false
  },
  "dns": {
    "mxRecord": [
      "mta5.am0.yahoodns.net.",
      "mta6.am0.yahoodns.net.",
      "mta7.am0.yahoodns.net."
    ]
  }
}
```

```json
{
  "success": true,
  "email": "test@example.com",
  "validEmail": "invalid",
  "validSyntax": true,
  "reason": "domain does not accept mail.",
  "domain": {
    "name": "example.com",
    "disposable": true,
    "spam": false,
    "free": false,
    "validDomain": true,
    "catchAll": false
  },
  "account": {
    "role": false
  },
  "dns": {
    "mxRecord": [
      "."
    ]
  }
}
```

```json
{
  "success": true,
  "email": "test@neverssl.com",
  "validEmail": "unknown",
  "validSyntax": true,
  "reason": "We are unable to determine if email is valid or invalid.",
  "domain": {
    "name": "neverssl.com",
    "disposable": false,
    "spam": false,
    "free": false,
    "validDomain": true,
    "catchAll": false
  },
  "account": {
    "role": false
  },
  "dns": {
    "aRecord": [
      "34.223.124.45"
    ]
  }
}
```

```json
{
  "success": true,
  "email": "abc.def@gmail.com",
  "validEmail": "valid",
  "validSyntax": true,
  "domain": {
    "name": "gmail.com",
    "disposable": false,
    "spam": false,
    "free": true,
    "validDomain": true,
    "catchAll": false
  },
  "account": {
    "role": false,
    "fullMailBox": false
  },
  "dns": {
    "mxRecord": [
      "gmail-smtp-in.l.google.com.",
      "alt1.gmail-smtp-in.l.google.com.",
      "alt2.gmail-smtp-in.l.google.com.",
      "alt3.gmail-smtp-in.l.google.com.",
      "alt4.gmail-smtp-in.l.google.com."
    ]
  },
  "ip": "8.8.8.8",
  "address": {
    "validIpAddress": true,
    "location": {
      "city": "Mountain View",
      "district": "Santa Clara",
      "confidence": "low",
      "zipcode": "94043-1351",
      "state_prov": "California",
      "country_name": "United States",
      "continent_name": "North America",
      "continent_code": "NA",
      "country_code2": "US",
      "country_code3": "USA",
      "country_name_official": "United States of America",
      "accuracy_radius": "27.42",
      "is_eu": false
    },
    "security": {
      "threat_score": 5,
      "is_tor": false,
      "is_proxy": false,
      "proxy_type": "",
      "proxy_provider": "",
      "is_anonymous": false,
      "is_known_attacker": false,
      "is_spam": false,
      "is_bot": false,
      "is_cloud_provider": true,
      "cloud_provider": "Google LLC"
    }
  }
}
```

```json
{
  "success": true,
  "email": "randomuser98765zzz@gmx.com",
  "validEmail": "app_server_blocked",
  "validSyntax": true,
  "reason": "We are unable to determine the validity of email at the moment. Please try later.",
  "domain": {
    "name": "gmx.com",
    "disposable": false,
    "spam": false,
    "free": true,
    "validDomain": true,
    "catchAll": false
  },
  "account": {
    "role": false
  },
  "dns": {
    "mxRecord": [
      "mx00.gmx.net."
    ]
  }
}
```

> Bad Request – Invalid request body

```json
{
  "timestamp": "2026-09-02T11:56:23.462Z",
  "path": "/v2/email-validation/single",
  "status": 400,
  "error": "Missing or Invalid Parameters",
  "message": "Please pass valid value for 'email' in body."
}
```

> Not Found – The requested resource could not be found

```json
{
  "timestamp": "2026-09-02T11:56:23.937Z",
  "path": "/v1.0/email-validation/singlex",
  "status": 404,
  "error": "Resource Not Found",
  "message": "The requested resource could not be found. Please verify the URL and try again."
}
```

> Request Timeout

```json
{
  "timestamp": "2026-06-06T13:00:00.000Z",
  "path": "/v1.0/email-validation/single",
  "status": 408,
  "error": "Request Timeout",
  "message": "Timed out while connecting to the remote URL."
}
```

> Rate Limit Exceeded

```json
{
  "timestamp": "2026-06-06T13:00:00.000Z",
  "path": "/v1.0/email-validation/single",
  "status": 429,
  "error": "Too Many Requests",
  "message": "API rate limit exceeded."
}
```

#### Responses

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Successful response with Email Validation|[SingleEmailValidationResponse](#singleemailvalidationresponse)|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request – Invalid request body|[ErrorResponse](#errorresponse)|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found – The requested resource could not be found|[ErrorResponse](#errorresponse)|
|408|[Request Timeout](https://tools.ietf.org/html/rfc7231#section-6.5.7)|Request Timeout|[ErrorResponse](#errorresponse)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Rate Limit Exceeded|[ErrorResponse](#errorresponse)|

#### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|X-AF-Credits-Cost|integer||Specifies the number of credits consumed by the current request.|
|200|X-Concurrent-Threads|integer||Specifies the maximum number of concurrent requests allowed.|
|200|X-Concurrent-Threads-Active|integer||Indicates the number of active concurrent requests being processed.|
|400|X-AF-Credits-Cost|integer||Specifies the number of credits consumed by the current request.|
|400|X-Concurrent-Threads|integer||Specifies the maximum number of concurrent requests allowed.|
|400|X-Concurrent-Threads-Active|integer||Indicates the number of active concurrent requests being processed.|
|404|X-AF-Credits-Cost|integer||Specifies the number of credits consumed by the current request.|
|404|X-Concurrent-Threads|integer||Specifies the maximum number of concurrent requests allowed.|
|404|X-Concurrent-Threads-Active|integer||Indicates the number of active concurrent requests being processed.|
|408|X-AF-Credits-Cost|integer||Specifies the number of credits consumed by the current request.|
|408|X-Concurrent-Threads|integer||Specifies the maximum number of concurrent requests allowed.|
|408|X-Concurrent-Threads-Active|integer||Indicates the number of active concurrent requests being processed.|
|429|X-AF-Credits-Cost|integer||Specifies the number of credits consumed by the current request.|
|429|X-Concurrent-Threads|integer||Specifies the maximum number of concurrent requests allowed.|
|429|X-Concurrent-Threads-Active|integer||Indicates the number of active concurrent requests being processed.|

To perform this operation, you must be authenticated by means of one of the following methods:
ApiKeyAuthHeader, ApiKeyAuthQuery

## Schemas

### SingleEmailValidationResponse

Email validation response containing deliverability assessment and metadata.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|success|boolean|true|none|Indicates the processing status of the validation request. true: completed successfully.|
|email|string(email)|true|none|The email address submitted for validation.|
|name|string|false|none|Optional identifier or label provided in the request for record tracking.|
|reason|string|false|none|Detailed explanation returned when validEmail is not valid. Omitted entirely when validEmail is valid.|
|validEmail|string|true|none|Comprehensive deliverability assessment. valid: recipient confirmed deliverable, reason omitted. accept_all: the domain is catch-all and accepted the recipient, so this specific mailbox is unconfirmed — see domain.catchAll, reason 'domain accepts all addresses.'. invalid: rejected mailbox, syntax failure, or the domain accepts no mail at all (a null MX). unknown: no conclusive answer, most common for domains with no MX record that only get a probe against their address record. risky: mailbox exists but over quota, or the server deferred with a greylist response. app_server_blocked: our verifier IP was blocked by the receiving server. Casing is inconsistent in the live API: syntactically invalid addresses can return the raw enum name INVALID_EMAIL instead of lowercase invalid — this is a known API bug, handle it defensively as equivalent to invalid.|
|validSyntax|boolean|true|none|Validates email address format compliance with RFC 5322 standards.|
|domain|[DomainObject](#domainobject)|true|none|Domain validation details for the email address.|
|account|[AccountObject](#accountobject)|false|none|Account-level validation details.|
|dns|[DnsObject](#dnsobject)|false|none|DNS records for the email domain. Absent entirely when the domain publishes neither an MX nor an A record.|
|address|[AddressObject](#addressobject)|false|none|Geolocation and security enrichment data for the IP address.|
|ip|string(ip)|false|none|IP address provided for geolocation and security enrichment.|

##### Enumerated Values

|Property|Value|
|---|---|
|validEmail|valid|
|validEmail|accept_all|
|validEmail|invalid|
|validEmail|INVALID_EMAIL|
|validEmail|unknown|
|validEmail|risky|
|validEmail|app_server_blocked|

### DomainObject

Domain validation details for the email address.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|name|string|true|none|Extracted domain component from the email address.|
|validDomain|boolean|true|none|Domain validation status confirming DNS resolution capability.|
|disposable|boolean|false|none|Classification flag identifying domains from temporary email service providers.|
|spam|boolean|false|none|Reputation indicator flagging domains on spam databases.|
|free|boolean|false|none|Classification indicating free or consumer-grade email service providers.|
|catchAll|boolean|false|none|Detection flag for domains configured to accept mail for any recipient address. true always corresponds to a top-level validEmail of accept_all.|

### AccountObject

Account-level validation details.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|role|boolean|true|none|Detection flag identifying role-based email addresses (e.g., admin@, support@).|
|fullMailBox|boolean|false|none|Storage capacity status indicator for the recipient mailbox.|

### DnsObject

DNS records for the email domain. Absent entirely when the domain publishes neither an MX nor an A record.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|mxRecord|[string]|false|none|Every MX hostname at the domain's lowest preference (not just one). ["."]  means the domain publishes a null MX and accepts no mail at all. Absent entirely when the domain has no MX record of any kind — check aRecord in that case.|
|aRecord|[string]|false|none|Collection of A (Address) records for the domain. Present when the domain has no MX record but does resolve to a web server or other host.|

### AddressObject

Geolocation and security enrichment data for the IP address.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|validIpAddress|boolean|false|none|IP recognized/reachable by the geolocation provider.|
|location|[EmailLocation](#emaillocation)|false|none|Geolocation data derived from the IP address.|
|security|[EmailSecurity](#emailsecurity)|false|none|Threat and anonymity profile for the IP address.|

### EmailLocation

Geolocation data derived from the IP address.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|city|string|false|none|Municipal or city name.|
|district|string|false|none|District or neighborhood.|
|zipcode|string|false|none|Postal or ZIP code.|
|state_prov|string|false|none|State or province.|
|country_name|string|false|none|Common country name.|
|country_name_official|string|false|none|Official country name.|
|country_code2|string|false|none|Two-character ISO country code.|
|country_code3|string|false|none|Three-character ISO country code.|
|continent_name|string|false|none|Continental region name.|
|continent_code|string|false|none|Continental region identifier.|
|accuracy_radius|string|false|none|Geolocation precision radius.|
|confidence|string|false|none|Confidence score for geolocation accuracy.|
|is_eu|boolean|false|none|European Union membership status.|

### EmailSecurity

Threat and anonymity profile for the IP address.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|threat_score|integer|true|none|Quantitative risk assessment score. Higher values indicate elevated security risk.|
|is_tor|boolean|true|none|Detection flag for IP addresses routed through the Tor anonymity network.|
|is_proxy|boolean|true|none|Detection flag identifying IP addresses operating as proxy servers.|
|proxy_type|string|true|none|Classification of detected proxy infrastructure type (e.g. VPN, HTTP, SOCKS).|
|proxy_provider|string|true|none|Identified service provider operating the proxy infrastructure.|
|is_anonymous|boolean|true|none|Anonymization detection flag for IP addresses using identity obfuscation techniques.|
|is_known_attacker|boolean|true|none|Threat intelligence flag for IP addresses documented as confirmed malicious sources.|
|is_spam|boolean|true|none|Reputation flag for IP addresses associated with spam transmission.|
|is_bot|boolean|true|none|Automated traffic detection flag for IP addresses from bot networks.|
|is_cloud_provider|boolean|true|none|Infrastructure classification flag for IP addresses from cloud computing providers.|
|cloud_provider|string|true|none|Identified cloud infrastructure or hosting service provider name.|

### EmailCheckRequest

Request body for email validation.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|email|string(email)|true|none|Email address to validate.|
|name|string|false|none|Optional name or label for record tracking.|
|ip|string(ip)|false|none|Optional IP address for geolocation and security enrichment.|

### ErrorResponse

Standard error envelope returned by the API on failed requests.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|error|string|false|none|Short error category or exception type.|
|message|string|true|none|Human-readable error message describing the failure.|
|path|string|false|none|API endpoint path that produced the error.|
|status|integer|false|none|HTTP status code returned with the error.|
|timestamp|string(date-time)|false|none|Timestamp when the error occurred (ISO 8601).|
