---
title: "/v1/check_email"
method: POST
path: "/v1/check_email"
---

# /v1/check_email

`POST /v1/check_email`

## Request

- Base URL: `https://api.reacher.email`
- URL: `https://api.reacher.email/v1/check_email`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/reacherhq/apis/reacher/docs/v1/check_email/post.ts> (a function with typed inputs; its response is checked against the schema)

Perform a comprehensive verification of an email address. This endpoint supersedes the previous `/v0/check_email` endpoint, maintaining the same input and output format. Unlike the `/v0/check_email` endpoint, the new `/v1/check_email` endpoint queues the email for verification, and the Reacher server processes the queue based on its configuration settings such as throttle and concurrency.

## Request body

- CheckEmailRequest: A request object to perform an email verification. The `to_email` field is required, all other fields are optional.
  - `from_email` string: In the SMTP connection, the FROM email address.
  - `to_email` string, required: The email address to check.
  - `hello_name` string: In the SMTP connection, the EHLO hostname.
  - `proxy` CheckEmailInputProxy: Proxy configuration for email verification.
    - `host` string, required: The proxy host address.
    - `port` integer, required: The proxy port number.
    - `username` string: Username for proxy authentication.
    - `password` string: Password for proxy authentication.
  - `smtp_port` number: SMTP port to use for email validation. Defaults to 25, but 465, 587, and 2525 are sometimes also used.
  - `gmail_verif_method` 'Smtp': Enumeration describing the method used to verify Gmail emails.
  - `hotmailb2b_verif_method` 'Smtp': Enumeration describing the method used to verify Hotmail B2B emails.
  - `hotmailb2c_verif_method` 'Smtp' | 'Headless': Enumeration describing the method used to verify Hotmail B2C emails.
  - `yahoo_verif_method` 'Api' | 'Headless' | 'Smtp': Enumeration describing the method used to verify Yahoo emails.
  - `check_gravatar` boolean: Whether to check if a Gravatar image exists for the given email.

## Response `200`

OK

- CheckEmailOutput: The result of the email verification process.
  - `input` string, email, required: The email address that was verified.
  - `is_reachable` 'invalid' | 'unknown' | 'safe' | 'risky', required: An enumeration describing the confidence level that the recipient address is valid: `safe`, `risky`, `invalid`, or `unknown`. Refer to our FAQ for detailed definitions: https://help.reacher.email/email-attributes-inside-json.
  - `misc` union, required: Additional information about the email account.
    - MiscDetails: Additional information about the email account.
      - `is_disposable` boolean, required: Indicates if the email address is from a known disposable email provider.
      - `is_role_account` boolean, required: Indicates if the email address is a role-based account.
      - `gravatar_url` string: URL to the Gravatar profile picture associated with the email, if available and requested.
      - `is_b2c` boolean, required: Is this a B2C email address?
    - CoreError: Details of an error encountered during the verification process.
      - `type` string, required: The type of error.
      - `message` string, required: A human-readable description of the error.
  - `mx` union, required: Details obtained from querying the mail server's MX records.
    - MxDetails: Details about the mail server's MX records.
      - `accepts_mail` boolean, required: Indicates if the mail server accepts emails. False if there are no MX records, the domain publishes a null MX (RFC 7505), or none of the MX hosts resolve.
      - `records` string[], required: List of Fully Qualified Domain Names (FQDN) of the mail server.
    - CoreError: Details of an error encountered during the verification process.
      - `type` string, required: The type of error.
      - `message` string, required: A human-readable description of the error.
  - `smtp` union, required: Results from connecting to the mail server via SMTP.
    - SmtpDetails: Results from SMTP connection attempts to the mail server.
      - `can_connect_smtp` boolean, required: Indicates if the mail exchanger can be contacted successfully.
      - `has_full_inbox` boolean, required: Indicates if the mailbox is full.
      - `is_catch_all` boolean, required: Indicates if the email address is a catch-all address.
      - `is_deliverable` boolean, required: Indicates if an email sent to this address is deliverable.
      - `is_disabled` boolean, required: Indicates if the email address has been disabled by the provider.
    - CoreError: Details of an error encountered during the verification process.
      - `type` string, required: The type of error.
      - `message` string, required: A human-readable description of the error.
  - `syntax` SyntaxDetails, required: Validation of the email address syntax.
    - `domain` string, required: The domain part of the email address.
    - `is_valid_syntax` boolean, required: Indicates if the email address syntax is valid.
    - `username` string, required: The username part of the email address.
  - `debug` DebugDetails
    - `start_time` string, required: The timestamp when the email verification started.
    - `end_time` string, required: The timestamp when the email verification ended.
    - `duration` Duration, required: An object representing a duration in seconds and nanoseconds.
      - `secs` number, required: Duration in seconds.
      - `nanos` number, required: Duration in nanoseconds.
    - `server_name` string, required: The name of the server that performed the verification.
    - `reacher_version` string: The version of Reacher that performed the verification, e.g. "0.11.10".
    - `smtp` DebugDetailsSmtp, required: SMTP details used for debugging, including the verification method.
      - `verif_method` VerifMethod: The method used for email verification.
        - `type` 'Smtp' | 'Headless' | 'Api' | 'Skipped', required: The method used for the email verification.

## Changes

- **2026-10-13** `3f951831f616`: 1 info
  - added the optional property `debug/reacher_version` to the response with the `200` status
- **2025-07-06** `cf5b66e45849`: 2 breaking
  - removed the enum value `Api` of the request property `gmail_verif_method`
  - removed the enum value `Api` of the request property `hotmailb2c_verif_method`
- **2024-12-30** `0ae4aa730c0a`: 1 breaking, 2 info
  - removed the required property `debug/backend_name` from the response with the `200` status
  - added the required property `debug/server_name` to the response with the `200` status
  - added the required property `misc/oneOf[subschema #1: MiscDetails]/is_b2c` to the response with the `200` status
- **2024-12-14** `bbc3d8433771`: 1 breaking, 1 info
  - removed the required property `debug/server_name` from the response with the `200` status
  - added the required property `debug/backend_name` to the response with the `200` status
- **2024-11-25** `e205c9ae16c8`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/reacherhq/apis/reacher/changes/v1/check_email/post.md)

---

[API](https://skmtc.dev/reacherhq/apis/reacher.md) - [All operations](https://skmtc.dev/reacherhq/apis/reacher/llms.txt) - [OpenAPI document](https://skmtc.dev/reacherhq/apis/reacher/revisions/e829a8a612e2?raw)
