Welcome to BounceClear

The most accurate and reliable email validation service for your business needs.

Get Started Free View Pricing

View API Documentation API Uses Steps

Why Choose BounceClear?

Powerful features to validate your email lists efficiently

99.9% Accuracy

Our advanced algorithms ensure the highest accuracy in email validation with minimal false positives.

Lightning Fast

Process thousands of emails in seconds with our optimized validation engine and distributed infrastructure.

Detailed Reports

Get comprehensive reports and insights about your email validation results with exportable data.

Bulk Upload

Upload CSV files with thousands of emails and get validated results in minutes.

History Tracking

Keep track of all your validation sessions with detailed history and download options.

24/7 Support

Get help when you need it with our dedicated support team available around the clock.

Choose Your Plan

Select the perfect plan for your email validation needs

Free

Free /90 Days

Perfect for trying out our email validation service

  • Up to 1,000 email validations
  • CSV/Excel file upload
Get Started

Premium

$50 /90 Days

Best for large businesses and high-volume validation

  • Up to 5,000 email validations
  • CSV/Excel file upload
Get Started

Here are the steps to use the API
for validate emails in minutes!

Step-by-Step Registration Process:

Step 1

Create an account on EmailVerifier.com

Create Account

Step 2

Login to your account

Login

Step 3

Navigate to your API Authentication to generate your X-API key

Get X-API-key

Step 4

Start validating emails using the API endpoints

  • POST /api/v1/validate - Validate single email
  • POST /api/v1/validate-individual - Validate multiple emails in a list 25 email at a time
  • POST /api/v1/bulk - Validate multiple emails via file upload
  • GET /api/v1/get-email-results - Get email results by job id

API Documentation

BounceClear API - v1.0

You need an account on BounceClear and an API key to use our API

Single & Bulk Email Verification API

With Email Verification and Validation API you can integrate our sophisticated algorithm directly into your ERP, marketing application, web application forms and email marketing solutions. Get real time and accurate email validation results with a simple request.

Request limits

Single Verification API: Limited to 60 requests per minute. If you need to verify more frequently, use the bulk verification API endpoints.
Bulk (List) Verification API: Limited to 60 requests per minute. You can send up to 200,000 emails per request.

Verify Single email

POST/api/v1/validate

Request

In order to issue a verification API call, you will need the following values:

apiKey (string) - In Header - Your X-API-key
email (string) - Body - Email address to verify

Request format:

                    {
                            "email": "email1@example.com"
                        }
                    
                

Response (JSON)

{
      "success": true,
      "data": {
        "input": "dengpatrick@hotmail.com",
        "is_reachable": "unknown",
        "misc": {
          "is_disposable": false,
          "is_role_account": false,
          "is_b2c": true,
          "gravatar_url": null,
          "haveibeenpwned": null
        },
        "mx": {
          "accepts_mail": true,
          "records": [
            "hotmail-com.olc.protection.outlook.com."
          ]
        },
        "smtp": {
          "error": {
            "type": "HeadlessError",
            "message": {
              "Cmd": "webdriver returned non-conforming response: String(\"disconnected\")"
            }
          }
        },
        "syntax": {
          "address": "dengpatrick@hotmail.com",
          "domain": "hotmail.com",
          "is_valid_syntax": true,
          "username": "dengpatrick",
          "normalized_email": "dengpatrick@hotmail.com",
          "suggestion": "dengpatrick@hotmail.com"
        },
        "debug": {
          "backend_name": "backend-dev",
          "start_time": "2025-10-22T06:03:20.312518085Z",
          "end_time": "2025-10-22T06:03:22.032569387Z",
          "duration": {
            "secs": 1,
            "nanos": 720051302
          },
          "smtp": {
            "verif_method": {
              "type": "Headless"
            }
          }
        }
      },
      "subscription_info": {
        "emails_used": 53,
        "remaining_emails": 2947,
        "email_limit": 3000
      }
    }

Response Parameters

  • input (string) - The email address that was provided for validation
  • is_reachable (string) - Overall reachability status. Possible values:
    • unknown - Could not determine reachability (e.g., due to timeout or server issues)
    • risky - Email is reachable but has some risk factors
    • invalid - Email is not reachable or invalid
    • valid - Email is reachable and safe for sending
  • misc (object) - Miscellaneous information about the email address:
    • is_disposable (boolean) - Whether the email is from a disposable email service
    • is_role_account (boolean) - Whether the email is a role-based account (e.g., admin@, info@)
    • is_b2c (boolean) - Whether the email is from a business-to-consumer domain
    • gravatar_url (string|null) - URL to the Gravatar profile image if available
    • haveibeenpwned (object|null) - Information about data breaches from HaveIBeenPwned
  • mx (object) - Mail Exchange (MX) record information:
    • accepts_mail (boolean) - Whether the domain accepts mail
    • records (array) - Array of MX record hostnames
  • smtp (object) - SMTP verification results:
    • error (object|null) - SMTP verification error details if any:
      • type (string) - Error type (e.g., "HeadlessError")
      • message (object) - Detailed error message
  • syntax (object) - Email syntax validation results:
    • address (string) - The original email address
    • domain (string) - The domain part of the email
    • is_valid_syntax (boolean) - Whether the email syntax is valid
    • username (string) - The username part of the email
    • normalized_email (string) - The normalized version of the email
    • suggestion (string) - Suggested correction if syntax issues found
  • debug (object) - Debug information about the validation process:
    • backend_name (string) - Name of the backend service used
    • start_time (string) - ISO timestamp when validation started
    • end_time (string) - ISO timestamp when validation completed
    • duration (object) - Validation duration:
      • secs (integer) - Duration in seconds
      • nanos (integer) - Additional nanoseconds
    • smtp (object) - SMTP verification method details:
      • verif_method (object) - Verification method used (e.g., "Headless")

Subscription Info (object)

Get your subscription information about the validation process:

  • emails_used - Email address which is used for validate.
  • remaining_emails - Remaining emails credit for validation.
  • email_limit - Total email address limit in your subscription packages.

Validate multiple emails

Here user can validate multiple emails in a list 25 email at a time.

POST/api/v1/validate-individual

Request

In order to issue a credit balance API call, you will need the following values:

apiKey (string) - In Header - Your X-API-key
emails (array) - JSON list - List of emails to be verified (as a POST parameter)

Request format:

{
      "emails": [
        "email1@example.com",
        "email2@example.com",
        "email3@example.com"
      ]
    }

Response (JSON)

{
      "success": true,
      "message": "Email validation completed successfully",
      "data": {
        "session_id": "3b35e25e-3065-4579-b258-4e5cbc56a2ce",
        "validated_emails": 2,
        "excel_file_name": "individual_validation_1761122293.xlsx",
        "download_url": "http://localhost:8000/validate/download/10",
        "validation_results": {
          "jack@yopmail.com": {
            "email": "jack@yopmail.com",
            "is_reachable": "invalid",
            "status": "completed",
            "response": {
              "input": "jack@yopmail.com",
              "is_reachable": "invalid",
              "misc": {
                "is_disposable": false,
                "is_role_account": false,
                "is_b2c": false,
                "gravatar_url": null,
                "haveibeenpwned": null
              },
              "mx": {
                "accepts_mail": false,
                "records": []
              },
              "smtp": {
                "can_connect_smtp": false,
                "has_full_inbox": false,
                "is_catch_all": false,
                "is_deliverable": false,
                "is_disabled": false
              },
              "syntax": {
                "address": null,
                "domain": "",
                "is_valid_syntax": false,
                "username": "",
                "normalized_email": null,
                "suggestion": null
              },
              "debug": {
                "backend_name": "backend-dev",
                "start_time": "2025-10-22T08:38:10.604314610Z",
                "end_time": "2025-10-22T08:38:10.604319212Z",
                "duration": {
                  "secs": 0,
                  "nanos": 0
                },
                "smtp": {
                  "verif_method": {
                    "type": "Skipped"
                  }
                }
              }
            }
          },
          "mack@mailinator.com": {
            "email": "mack@mailinator.com",
            "is_reachable": "invalid",
            "status": "completed",
            "response": {
              "input": "mack@mailinator.com",
              "is_reachable": "invalid",
              "misc": {
                "is_disposable": false,
                "is_role_account": false,
                "is_b2c": false,
                "gravatar_url": null,
                "haveibeenpwned": null
              },
              "mx": {
                "accepts_mail": false,
                "records": []
              },
              "smtp": {
                "can_connect_smtp": false,
                "has_full_inbox": false,
                "is_catch_all": false,
                "is_deliverable": false,
                "is_disabled": false
              },
              "syntax": {
                "address": null,
                "domain": "",
                "is_valid_syntax": false,
                "username": "",
                "normalized_email": null,
                "suggestion": null
              },
              "debug": {
                "backend_name": "backend-dev",
                "start_time": "2025-10-22T08:38:11.454188218Z",
                "end_time": "2025-10-22T08:38:11.454189490Z",
                "duration": {
                  "secs": 0,
                  "nanos": 0
                },
                "smtp": {
                  "verif_method": {
                    "type": "Skipped"
                  }
                }
              }
            }
          }
        },
        "validation_summary": {
          "total_safe": 0,
          "total_risky": 0,
          "total_invalid": 2,
          "total_unknown": 0,
          "total_error": 0
        }
      }
    }

Response Parameters

Main Response Object
  • success (boolean) - Indicates whether the API request was successful
  • message (string) - Human-readable message describing the result of the operation
  • data (object) - Contains the main response data with validation results
Data Object
  • session_id (string) - Unique identifier for this validation session (UUID format)
  • validated_emails (integer) - Total number of emails that were processed in this validation session
  • excel_file_name (string) - Name of the generated Excel file containing validation results
  • download_url (string) - Direct URL to download the Excel file with validation results
  • validation_results (object) - Object containing individual validation results for each email address
  • validation_summary (object) - Summary statistics of the validation results
Validation Results Object

Each email address in the validation_results object contains:

  • email (string) - The email address that was validated
  • is_reachable (string) - Overall reachability status. Possible values:
    • unknown - Could not determine reachability (e.g., due to timeout or server issues)
    • risky - Email is reachable but has some risk factors
    • invalid - Email is not reachable or invalid
    • valid - Email is reachable and safe for sending
  • status (string) - Processing status of the email validation:
    • completed - Validation has been completed
    • processing - Validation is currently in progress
    • failed - Validation failed due to an error
  • response (object) - Detailed validation response containing all technical details
Validation Summary Object
  • total_safe (integer) - Total number of emails classified as safe/valid
  • total_risky (integer) - Total number of emails classified as risky
  • total_invalid (integer) - Total number of emails classified as invalid
  • total_unknown (integer) - Total number of emails that could not be determined
  • total_error (integer) - Total number of emails that encountered errors during validation

Verify a list of emails

POST/api/v1/bulk

Request

In order to issue a list verification API call, you will need the following values:

apiKey (string) - In Header - Your X-API-key
email_file (binary) - File - CSV, XLS, or XLSX file containing email addresses. Maximum size: 10MB. Maximum emails: 10,000.
You must send post request with Content-Type set to application/json.

Response (JSON)

{
      "success": true,
      "message": "Bulk validation started successfully",
      "data": {
        "session_id": "550e8400-e29b-41d4-a716-446655440000",
        "job_id": "job_12345",
        "total_records": 1000,
        "message": "Your bulk validation job has been started. You can check the status in the history section."
      }
    }
  • job_id (string) - Here job id for check job status which is running in background.
  • total_records (int) - Here total emails count which is in files

Get single list info

GET/api/v1/get-email-results?job_id={job_id}

Request

In order to issue a single list info API call, you will need the following values:

apiKey (string) - Your API key
job_id (int) - ID of the list
offset (int) - offset
limit (int) - limit - 10

Request format:

GET : /api/v1/get-email-results?job_id=230&offset=0&limit=10

Response (JSON)

                    {
                        "list": {
                            "id": 123,
                            "name": "list_1547991464",
                            "emails": 456789 ,
                            "status": "complete",
                            "uploaded": "2019-01-20 13:37:44"
                        }
                    }
                
  • id (int) - List ID
  • name (string) - List name
  • emails (int) - Number of emails in the list
  • status (string) - Current status of the list
    • extracting - List is being uploaded.
    • uploaded - List is uploaded.
    • processing - List is being verified.
    • complete - List is verified.

General response codes

Code Description
200 Success
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
429 Too Many Requests
500 Internal Server Error
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout

Error example (response codes 4xx – 5xx)

{
        "message":"API endpoint not implemented",
    }

Ready to Clean Your Email List?

Join thousands of businesses that trust BounceClear for their email validation needs.

Start Free Trial Contact Sales