Mailbeam
API · Real-time

Real-Time Email Verification API

Verify any email address in under 100ms — fast enough to validate while the user is still on the form. Seven checks in parallel, one structured result.

What Mailbeam checks

Every verification runs 7 checks in parallel and returns a structured result in under 100ms.

p99 response time under 100ms

MX records for common EU and US domains are pre-warmed in Mailbeam's cache. Most verifications complete in 40–80ms. Worst-case (cold domain, slow mail server) stays under 500ms.

Seven checks run in parallel

Syntax, MX, SMTP probe, disposable detection, role detection, catch-all identification, and AI quality scoring all execute concurrently — not sequentially.

Typo suggestions in the response

When a user types 'gmal.com', the response includes `suggestion: 'gmail.com'`. Show it inline before the form submits — recover the lead instead of losing it.

Structured JSON result

A single response object includes `valid`, `score` (0–100), `status`, `disposable`, `role`, `suggestion`, and per-check booleans. One call, all the data you need.

Sandbox mode for testing

Use @valid.mailbeam-test.dev and @invalid.mailbeam-test.dev email domains in tests. Verification calls return deterministic results without using your quota.

EU-hosted, GDPR-compliant

All verification runs in Frankfurt, Germany. Email addresses are not stored after the check. Appropriate for processing EU user data under GDPR Article 28.

How it works

1

POST the email on form submission

Send the email address to /v1/verify in a POST request from your backend signup handler. Do not call the API from the browser — keep your API key server-side.

2

Parallel checks execute

Syntax validation, MX record lookup (from cache if available), SMTP mailbox probe, disposable database check, role prefix detection, and catch-all AI scoring run concurrently.

3

Result arrives in under 100ms

For cached domains, the full response — including AI score — returns in 40–80ms. The user experiences no perceptible delay.

4

Respond to the user inline

Use the `valid` boolean to accept or reject the submission. Use `suggestion` to show a correction prompt. Use `score` to apply your own quality threshold for edge cases.

Integrate in minutes

GoGo
package main

import (
  "bytes"
  "encoding/json"
  "fmt"
  "net/http"
  "os"
)

type VerifyRequest struct {
  Email string `json:"email"`
}

type VerifyResult struct {
  Valid       bool    `json:"valid"`
  Score       int     `json:"score"`
  Disposable  bool    `json:"disposable"`
  Role        bool    `json:"role"`
  Suggestion  *string `json:"suggestion"`
  Status      string  `json:"status"`
}

func verifyEmail(email string) (*VerifyResult, error) {
  body, _ := json.Marshal(VerifyRequest{Email: email})
  req, _ := http.NewRequest("POST", "https://api.mailbeam.dev/v1/verify", bytes.NewReader(body))
  req.Header.Set("Authorization", "Bearer "+os.Getenv("MAILBEAM_KEY"))
  req.Header.Set("Content-Type", "application/json")

  resp, err := http.DefaultClient.Do(req)
  if err != nil {
    return nil, err
  }
  defer resp.Body.Close()

  var result VerifyResult
  json.NewDecoder(resp.Body).Decode(&result)
  return &result, nil
}

func handleSignup(email string) error {
  result, err := verifyEmail(email)
  if err != nil || !result.Valid {
    if result != nil && result.Suggestion != nil {
      return fmt.Errorf("did you mean %s?", *result.Suggestion)
    }
    return fmt.Errorf("invalid email address")
  }
  if result.Disposable {
    return fmt.Errorf("temporary email addresses are not accepted")
  }
  return nil
}

When to use it

User registration forms

Block fake and mistyped emails before they enter your user database. Catch disposable addresses and show typo corrections inline.

E-commerce checkout email fields

Ensure order confirmation emails reach the customer. A 100ms check at checkout prevents the most common cause of 'I never got my order confirmation' support tickets.

Newsletter and waitlist signups

Protect list quality from day one. A real-time check at signup ensures every subscriber email is deliverable before it enters your sending platform.

B2B demo request forms

Block role-based and disposable emails on high-value conversion forms. Use the `role` flag to route info@ addresses to manual review instead of automated sequences.

Frequently asked questions

Ready to integrate?

Free tier includes 1,000 verifications/month. No credit card required.