Skip to main content
GET
Email Reputation API

Getting Started

Abstract’s Email Reputation API requires only your unique API key api_key and a single email email:
This was a successful request, and all available details about that email were returned:

Request parameters

string
required
Your unique API key. Note that each user has unique API keys for each of Abstract’s APIs, so your Email Validation API key will not work for your IP Geolocation API, for example.
String
required
The email address to validate.

Authentication Methods

The Email Reputation API supports multiple ways to authenticate your requests. You can use whichever method best fits your application.

Query parameter (default)

Pass your API key as a query parameter. This is the simplest method and is shown in the Getting Started example above.

Bearer token header

Instead of passing api_key as a query parameter, you can send it in the Authorization header as a Bearer token. This keeps your API key out of URLs and server logs.
When using header-based authentication, omit api_key from the query string — only the email parameter is needed.

POST Method

In addition to GET requests, you can send POST requests to the Email Reputation API. This is useful when you prefer to send parameters in the request body rather than the URL.

POST with form-encoded data

Send both api_key and email as form-encoded fields in the request body:

POST with Bearer token and JSON body

Authenticate via the Authorization header and send email in a JSON request body:
When using the Bearer token with POST, the body only needs to contain the email field.

Response parameters

The API response is returned in a universal and lightweight JSON format.
String
The email address you submitted for analysis.
String or Null
If a typo has been detected, this returns a suggestion of the correct email (e.g., johnsmith@gmial.com => johnsmith@gmail.com). If no typo is detected, this is null.
String
Whether the email is considered deliverable, undeliverable, or unknown.
String
Additional detail on deliverability (e.g., inbox_full, full_mailbox, invalid_format).
Boolean
Is true if the email follows the correct format.
Boolean
Is true if the SMTP check was successful.
Boolean
Is true if the domain has valid MX records.
Array[String]
List of MX records associated with the domain.
Float
Confidence score between 0.01 and 0.99 representing email quality.
Boolean
Is true if the email is from a known free provider like Gmail or Yahoo.
Boolean
Is true if the username appears auto-generated or suspicious.
Boolean
Is true if the email is from a disposable email provider.
Boolean
Is true if the domain is configured to accept all emails.
Boolean
Is true if the email uses subaddressing (e.g., user+label@domain.com).
Boolean
Is true if the email is a role-based address (e.g., info@domain.com, support@domain.com).
Boolean
Is true if a strict DMARC policy is enforced on the domain.
Boolean
Is true if the domain enforces a strict SPF policy.
Integer or Null
Estimated age of the email address in days, or null if unknown.
String or Null
First name associated with the email address, if available.
String or Null
Last name associated with the email address, if available.
String or Null
Name of the email provider (e.g., Google, Microsoft).
String or Null
Organization linked to the email or domain, if available.
String or Null
Type of organization (e.g., company).
String
Domain part of the submitted email address.
Integer
Age of the domain in days.
Boolean
Is true if the domain has a live website.
String or Null
Name of the domain registrar.
String or Null
URL of the domain registrar.
Datetime
Date when the domain was registered.
Datetime
Last renewal date of the domain.
Datetime
Expiration date of the domain registration.
Boolean
Is true if the domain uses a top-level domain associated with risk.
String
Risk status of the email address: low, medium, or high.
String
Risk status of the domain: low, medium, or high.
Integer
Total number of data breaches involving this email.
Datetime
Date of the first known breach.
Datetime
Date of the most recent breach.
Array[Object]
List of breached domains including:
String
Domain affected by the breach.
Datetime
Date when the breach occurred.

Request examples

Checking a malformed email

In the example below, we show the request and response for an email does not follow the proper format. If the email fails the is_format_valid check, then the other checks will not be performed and will be returned as false
The request was valid and successful, and so it returns the following:

Possible values for status_detail

This field provides more information about the deliverability result.

When status is deliverable:

  • valid_email: The email address exists, is valid, and can receive new emails.
  • high_traffic_email: The email is valid and exists, but the server is receiving too many messages. Your email might bounce.

When status is undeliverable:

  • invalid_mailbox: The email address doesn’t exist or is no longer active. It can’t receive new emails.
  • full_mailbox: The email exists but its mailbox is full, so new emails will bounce.
  • invalid_format: The email doesn’t follow the correct format (e.g., missing @ or domain).
  • dns_record_not_found: We couldn’t find MX records for the domain, so we couldn’t complete the SMTP check.
  • unavailable_server: The mail server for the domain is currently unreachable.

Bulk upload (CSV)

Don’t know how to or don’t want to make API calls? Use the bulk CSV uploader to easily use the API. The results will be sent to your email when ready. Here are some best practices when bulk uploading a CSV file:
  • Ensure the selected column contains the email addresses to be analyzed.
  • Remove any empty rows from the file.
  • Include only one email address per row.
  • The maximum file size permitted is 50,000 rows.

Response and error codes

Whenever you make a request that fails for some reason, an error is returned also in the JSON format. The errors include an error code and description, which you can find in detail below.

Code samples and libraries

Please see the top of this page for code samples for these languages and more. If we’re missing a code sample, or if you’d like to contribute a code sample or library in exchange for free credits, email us at: team@abstractapi.com

Other notes

A note on metered billing: Each individual email you submit counts as a credit used. Credits are also counted per request, not per successful response. So if you submit a request for the (invalid) email address “kasj8929hs”, that still counts as 1 credit.