> ## Documentation Index
> Fetch the complete documentation index at: https://docs.encrata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SMTP Verify

> Dedicated real-time SMTP deliverability check for a single email address.

## Overview

`POST /api/smtp/verify` runs a fast, real-time SMTP deliverability check on one
email address. It answers a single question: can this mailbox receive mail. It
does not run the full validity report (domain trust, person footprint, breach
signals). Use it when you only need the mailbox verdict, for example inline on a
signup form or during list cleaning.

The check performs a live MX and SMTP probe and typically responds in under
200ms.

## Authentication

Works with an API key or an in-app session. For API access, pass your key in the
`Authorization` header.

```bash theme={"dark"}
Authorization: Bearer YOUR_API_KEY
```

## Request

<ParamField body="email" type="string" required>
  The email address to verify.
</ParamField>

### Example request

<CodeGroup>
  ```bash cURL (API Key) theme={"dark"}
  curl -X POST "https://encrata.com/api/smtp/verify" \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"email": "jane@example.com"}'
  ```

  ```python Python theme={"dark"}
  import requests

  resp = requests.post(
      "https://encrata.com/api/smtp/verify",
      headers={"Authorization": "Bearer YOUR_API_KEY"},
      json={"email": "jane@example.com"},
  )
  print(resp.json())
  ```

  ```javascript JavaScript theme={"dark"}
  const resp = await fetch("https://encrata.com/api/smtp/verify", {
    method: "POST",
    headers: {
      Authorization: "Bearer YOUR_API_KEY",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ email: "jane@example.com" }),
  });
  const data = await resp.json();
  ```
</CodeGroup>

## Response

<ResponseField name="email" type="string">
  The email address that was checked (normalized to lowercase).
</ResponseField>

<ResponseField name="status" type="string">
  The mailbox verdict: `valid`, `invalid`, `catch_all`, `accept_all`,
  `temporary_failure`, `blocked`, `timeout`, or `unknown`.
</ResponseField>

<ResponseField name="deliverable" type="boolean">
  `true` when mail can likely be delivered to this address.
</ResponseField>

<ResponseField name="mailbox_exists" type="boolean">
  `true` when the recipient mailbox was confirmed to exist.
</ResponseField>

<ResponseField name="catch_all" type="boolean">
  `true` when the domain accepts any recipient, so the specific mailbox cannot
  be proven over SMTP.
</ResponseField>

<ResponseField name="mx_host" type="string">
  The mail server (MX host) used for the probe.
</ResponseField>

<ResponseField name="disposable" type="boolean">
  `true` when the address uses a disposable or throwaway provider.
</ResponseField>

<ResponseField name="role" type="boolean">
  `true` when the local part is a role or shared mailbox (for example `support@`
  or `info@`).
</ResponseField>

<ResponseField name="did_you_mean" type="string">
  A suggested correction when a likely typo is detected. Omitted when there is
  no suggestion.
</ResponseField>

<ResponseField name="checked_at" type="string">
  RFC 3339 timestamp of when the check ran.
</ResponseField>

<ResponseField name="credits" type="integer">
  Credits charged for this request (`1`, or `0` for a free repeat within the
  billing window).
</ResponseField>

### Example response

```json theme={"dark"}
{
  "email": "jane@example.com",
  "status": "valid",
  "deliverable": true,
  "mailbox_exists": true,
  "catch_all": false,
  "mx_host": "aspmx.l.google.com",
  "disposable": false,
  "role": false,
  "checked_at": "2026-07-20T10:00:00Z",
  "credits": 1
}
```

## Billing

This endpoint charges 1 credit per verification. Repeat checks of the same
address are free for 6 months. That free window is shared with
[Email Validity](/api-reference/endpoint/email-validity), so a customer who has
already verified an address on either endpoint is not charged twice.

<Note>
  For the full deliverability report (domain trust, person footprint, breach and
  disposable signals), use
  [Email Validity](/api-reference/endpoint/email-validity) instead. SMTP Verify
  returns only the mailbox verdict.
</Note>
