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

# API de Enrow

> Visión general de la API de Enrow para encontrar y verificar correos electrónicos y números de teléfono profesionales a escala, con búsquedas asíncronas, webhooks y procesamiento masivo

La API de Enrow te permite encontrar y verificar información de contacto profesional a escala. Cada solicitud se autentica con una [clave de API](/es/authentication) en el encabezado `x-api-key`, y cada búsqueda se ejecuta de forma asíncrona para que puedas procesar grandes volúmenes sin bloqueos.

<Note>
  **URL base** — Todas las solicitudes a la API se dirigen a `https://api.enrow.io`
</Note>

## ¿Qué puedo hacer con la API de Enrow?

La API de Enrow expone tres funciones principales, cada una disponible en modo individual y masivo:

<CardGroup cols={2}>
  <Card title="Email Finder" icon="envelope" href="/es/api-reference/email-finder/find-single">
    Encuentra direcciones de correo electrónico profesionales a partir de un nombre y el dominio de una empresa
  </Card>

  <Card title="Email Verifier" icon="shield-check" href="/es/api-reference/email-verifier/verify-single">
    Verifica cualquier dirección de correo electrónico con verificación determinista de dominios catch-all
  </Card>

  <Card title="Phone Finder" icon="phone" href="/es/api-reference/phone/find-single">
    Encuentra números de teléfono directos a partir de una URL de LinkedIn o un nombre + empresa
  </Card>
</CardGroup>

## ¿Cómo funciona la API de Enrow?

Todos los endpoints son **asíncronos** y siguen el mismo patrón: envías una búsqueda y luego recoges el resultado a través de un webhook o por polling.

<Steps>
  <Step title="Envía tu solicitud con POST">
    Envía tus parámetros de búsqueda. Recibes un ID de búsqueda único de inmediato.
  </Step>

  <Step title="Recibe una notificación o consulta por polling">
    **Webhook (recomendado):** Pasa una URL de `webhook` en `settings` y obtén el resultado enviado por POST a tu servidor al instante. Consulta [Cómo funcionan los webhooks](/es/how-webhooks-work).

    **Polling:** Llama al endpoint GET con el ID de búsqueda.
  </Step>

  <Step title="Usa el resultado">
    El campo `qualification` te indica si el resultado es `valid`, `invalid`, `found` o `not_found`.
  </Step>
</Steps>

## ¿Cómo hago mi primera solicitud?

Autentícate con tu clave de API en el encabezado `x-api-key` y envía una búsqueda con POST al endpoint correspondiente. El ejemplo siguiente ejecuta una búsqueda de un solo correo electrónico:

<Tabs>
  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST https://api.enrow.io/email/find/single \
      -H "x-api-key: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "fullname": "Dwight Schrute",
        "company_domain": "dundermifflin.com"
      }'
    ```
  </Tab>

  <Tab title="Node.js">
    ```javascript theme={null}
    const response = await fetch('https://api.enrow.io/email/find/single', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'x-api-key': process.env.ENROW_API_KEY
      },
      body: JSON.stringify({
        fullname: 'Dwight Schrute',
        company_domain: 'dundermifflin.com'
      })
    });

    const data = await response.json();
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={null}
    import requests, os

    response = requests.post(
        "https://api.enrow.io/email/find/single",
        headers={"x-api-key": os.getenv("ENROW_API_KEY")},
        json={
            "fullname": "Dwight Schrute",
            "company_domain": "dundermifflin.com"
        }
    )
    print(response.json())
    ```
  </Tab>
</Tabs>

**Respuesta:**

```json theme={null}
{
  "message": "Single search operating",
  "id": "910f3e13-b2bf-442d-ab0b-4cf44d...",
  "credits_used": 1
}
```

El POST es asíncrono — el `email` y la `qualification` se recuperan posteriormente a través del [endpoint GET](/es/api-reference/email-finder/get-single-result) o de un [webhook](/es/how-webhooks-work).

## ¿Debo usar el modo individual o masivo?

Usa el modo individual para búsquedas puntuales en tiempo real, y el modo masivo para enriquecimiento a gran escala. Cada endpoint admite ambos:

|                     | Individual                       | Masivo                            |
| ------------------- | -------------------------------- | --------------------------------- |
| **Tamaño del lote** | 1                                | Hasta 5,000 (3,000 para teléfono) |
| **Ideal para**      | Búsquedas en tiempo real         | Enriquecimiento a gran escala     |
| **Webhook**         | Resultado completo en el payload | Notificación y luego GET          |

Para trabajos masivos, consulta [Encontrar correos](/es/api-reference/email-finder/find-bulk), [Verificar correos](/es/api-reference/email-verifier/verify-bulk) y [Encontrar teléfonos](/es/api-reference/phone/find-bulk).

## ¿Qué hace diferente a la API de Enrow?

La API de Enrow combina la verificación determinista con una entrega flexible de resultados, para que obtengas datos precisos sin herramientas adicionales:

<CardGroup cols={2}>
  <Card title="Verificación de catch-all" icon="check-double">
    Verificación determinista que funciona incluso en dominios catch-all. No se necesita ningún debouncer.
  </Card>

  <Card title="Campos personalizados" icon="tag">
    Pasa tus propios datos `custom` con cada búsqueda — se devuelven tal cual en el resultado.
  </Card>
</CardGroup>

<Card title="Webhooks" icon="bolt" href="/es/how-webhooks-work">
  Obtén resultados en tiempo real. Sin polling, sin llamadas a la API desperdiciadas.
</Card>

## FAQ

<AccordionGroup>
  <Accordion title="¿Cómo autentico las solicitudes a la API?">
    Cada solicitud debe incluir tu clave de API en el encabezado `x-api-key` — no hay flujos de OAuth ni tokens de portador. Consulta [Autenticación](/es/authentication) para la configuración y los ejemplos.
  </Accordion>

  <Accordion title="¿Por qué las respuestas son asíncronas?">
    Una solicitud POST inicia una búsqueda y devuelve un `id` único de inmediato. El `email`, el `phone` o la `qualification` se entregan posteriormente a través de un [webhook](/es/how-webhooks-work) o consultando por polling el endpoint GET correspondiente con ese `id`.
  </Accordion>

  <Accordion title="¿Cuántas búsquedas puedo ejecutar en una solicitud masiva?">
    Las solicitudes masivas de correo electrónico y de verificación de correo aceptan hasta 5,000 búsquedas, y las solicitudes masivas de teléfono aceptan hasta 3,000. Para las solicitudes individuales, el tamaño del lote es 1.
  </Accordion>

  <Accordion title="¿Cómo se consumen los créditos?">
    Los créditos se deducen por búsqueda y la cantidad se devuelve en `credits_used`. Consulta [Créditos y facturación](/es/credits-billing) para conocer los costos por endpoint y [Límites de tasa](/es/rate-limits) antes de escalar.
  </Accordion>
</AccordionGroup>

## Próximos pasos

<CardGroup cols={2}>
  <Card title="Autenticación" icon="key" href="/es/authentication">
    Configura tu clave de API en el encabezado x-api-key
  </Card>

  <Card title="Cómo funcionan los webhooks" icon="bolt" href="/es/how-webhooks-work">
    Obtén resultados en tiempo real, sin necesidad de polling
  </Card>

  <Card title="Créditos y facturación" icon="coins" href="/es/credits-billing">
    Comprende cómo se consumen los créditos por endpoint
  </Card>

  <Card title="Manejo de errores" icon="circle-info" href="/es/error-handling">
    Códigos de estado, cualificaciones y formatos de error
  </Card>
</CardGroup>
