# Verificar una sola dirección

> Verifica una dirección de email en el panel o con la API, elige entre el modo rápido y el completo, y usa la verificación para detectar direcciones incorrectas en el registro.

Esta guía explica cómo comprobar una dirección de email, a mano en el panel o desde tu código con la API. También explica cómo usar la verificación en un formulario de registro para frenar las erratas y las direcciones de usar y tirar antes de que lleguen a tu lista.

## Antes de empezar

- Cada verificación cuesta 5 créditos. Consulta tu saldo en la barra lateral o en **Workspace → Billing**.
- Para la API, usa una clave de API con **Full Access**. Las claves solo de envío no pueden verificar direcciones.

## Modo rápido y modo completo

| Modo | Comprobaciones | Úsalo para |
| --- | --- | --- |
| `fast` (por defecto) | Sintaxis, registros MX, antigüedad del dominio, y direcciones desechables, de rol, de proveedores gratuitos y con aspecto aleatorio | Los formularios de registro y cualquier cosa en la que una persona esté esperando. |
| `full` | Todo lo de `fast`, más una conexión al servidor de correo del destinatario para comprobar el buzón: entregable, desactivado, buzón lleno y catch-all | Limpiar direcciones antes de un envío importante, cuando unos segundos más no importan. |

Los dos modos cuestan lo mismo. `full` tarda más porque se comunica con el servidor de correo del destinatario, que puede ser lento o negarse a responder. Algunos proveedores grandes bloquean estas comprobaciones, así que `full` no siempre puede confirmar un buzón. Consulta [Resultados de la verificación](/es/docs/email-verification/results/) para saber qué significa cada comprobación.

## Verificar una dirección

**Panel**

  1. **Abre Email Verification.** Ve a **Email Verification → Emails** y selecciona **Verify Email**.

  2. **Introduce la dirección.** Escríbela en **Email** y selecciona **Verify Email**. El panel usa el modo `fast`.

  3. **Abre el resultado.** La dirección aparece en la lista con su **Status**, **Result**, **Risk**, **Score**, la fecha **Created** y los días que faltan para **Expiring**. Selecciónala para ver cada comprobación individual, como **Valid Syntax**, **Disposable**, **Role Account** y **Has MX Records**.

  Para comprobar muchas direcciones a la vez, [verifica una lista](/es/docs/email-verification/lists/).

**API**

  Llama a [Verificar una dirección](/es/docs/api-reference/email-verifications/verify/) con la dirección y, opcionalmente, el modo:

```bash
curl https://api.emailit.com/v2/email-verifications \
  -X POST \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "email": "ada@example.com", "mode": "full" }'
```

  El resultado llega en la respuesta:

```json
{
  "id": "ev_6Hq2Lm9Tx4Pz",
  "object": "email_verification",
  "email": "ada@example.com",
  "status": "completed",
  "score": 100,
  "risk": "low",
  "result": "safe",
  "mode": "full",
  "checks": {
    "valid_syntax": true,
    "disposable": false,
    "role_account": false,
    "inbox_full": false,
    "deliverable": true,
    "disabled": false,
    "free_email": false,
    "gibberish": false,
    "catch_all": false,
    "smtp_connect": true,
    "has_mx_records": true,
    "domain_age": 10957
  },
  "address": {
    "mailbox": "ada",
    "domain": "example.com",
    "suffix": null,
    "root": "ada@example.com"
  },
  "did_you_mean": null,
  "mx_records": [
    { "priority": 10, "exchange": "mx1.example.com" }
  ],
  "created_at": "2026-10-01T10:24:11Z",
  "updated_at": "2026-10-01T10:24:11Z"
}
```

  En el modo `fast`, las comprobaciones del buzón (`deliverable`, `disabled`, `inbox_full`, `catch_all` y `smtp_connect`) son `null` porque no se han hecho.

  | Estado | Cuándo |
  | --- | --- |
  | `200` | La dirección se ha verificado. Incluye las direcciones mal formadas, que vuelven con `result: "invalid"`. |
  | `400` | Falta `email`, o `mode` no es `fast` ni `full`. |
  | `402` | El espacio de trabajo tiene menos de 5 créditos. |

  Cada verificación correcta también dispara un evento `email_verification.created`. Consulta [Tipos de eventos](/es/docs/webhooks/event-types/).

## Verificar las direcciones en el registro

Comprobar una dirección cuando alguien la escribe es la forma más barata de mantener limpia una lista. Una errata detectada en el registro nunca se convierte en un rebote.

1. **Llama a la API desde tu servidor.** No pongas nunca tu clave de API en el código del navegador. Envía la dirección desde el gestor de registro de tu servidor, en modo `fast`.

2. **Fija un tiempo de espera y deja pasar en caso de fallo.** Si la verificación es lenta o devuelve un error, deja que el registro continúe. Perder a un cliente real cuesta más que una dirección incorrecta.

3. **Actúa según el resultado.** Bloquea lo que está claramente mal, sugiere correcciones para las erratas y deja pasar todo lo demás.

```javascript title="verify-signup.js"
  const controller = new AbortController();
  const timer = setTimeout(() => controller.abort(), 5000);

  try {
    const res = await fetch('https://api.emailit.com/v2/email-verifications', {
      method: 'POST',
      headers: {
        Authorization: `Bearer ${process.env.EMAILIT_API_KEY}`,
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({ email, mode: 'fast' }),
      signal: controller.signal,
    });
    if (!res.ok) return { ok: true }; // fail open

    const verification = await res.json();

    if (verification.result === 'invalid') {
      return {
        ok: false,
        message: verification.did_you_mean
          ? `Did you mean ${verification.did_you_mean}?`
          : 'Please check your email address.',
      };
    }
    if (verification.result === 'disposable') {
      return { ok: false, message: 'Please use a permanent email address.' };
    }

    // Accept the address, but offer a correction if one looks likely.
    return { ok: true, suggestion: verification.did_you_mean };
  } catch {
    return { ok: true }; // timeout or network error: fail open
  } finally {
    clearTimeout(timer);
  }
}
```

Algunos consejos:

- **Usa `did_you_mean`.** Para las erratas habituales en el dominio, como `ada@gmial.com`, contiene la dirección probable, `ada@gmail.com`. Muéstrala como una sugerencia que la persona puede aceptar.
- **No bloquees directamente las direcciones de rol.** `info@` o `sales@` es a menudo la forma en que se registran las pequeñas empresas. Márcalas en su lugar.
- **Verifica cada dirección una sola vez.** Cada llamada cuesta créditos, así que verifica al enviar el formulario, no con cada pulsación de tecla, y guarda el resultado.

## Ver también

  - [Resultados de la verificación](/es/docs/email-verification/results/): Qué significa cada resultado, riesgo y comprobación.
  - [Verificar una lista](/es/docs/email-verification/lists/): Comprueba hasta 10.000 direcciones a la vez.

---
Fuente: https://emailit.com/es/docs/email-verification/single/
