> ## 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 Enrow

> Panoramica dell'API Enrow per trovare e verificare email e numeri di telefono professionali su larga scala, con ricerche asincrone, webhook ed elaborazione in blocco

L'API Enrow ti consente di trovare e verificare informazioni di contatto professionali su larga scala. Ogni richiesta viene autenticata con una [chiave API](/it/authentication) nell'header `x-api-key` e ogni ricerca viene eseguita in modo asincrono, così puoi elaborare grandi volumi senza blocchi.

<Note>
  **Base URL** — Tutte le richieste API vengono inviate a `https://api.enrow.io`
</Note>

## Cosa posso fare con l'API Enrow?

L'API Enrow espone tre funzionalità principali, ciascuna disponibile sia in modalità singola che in blocco:

<CardGroup cols={2}>
  <Card title="Email Finder" icon="envelope" href="/it/api-reference/email-finder/find-single">
    Trova indirizzi email professionali a partire da un nome e dal dominio aziendale
  </Card>

  <Card title="Email Verifier" icon="shield-check" href="/it/api-reference/email-verifier/verify-single">
    Verifica qualsiasi indirizzo email con verifica deterministica dei domini catch-all
  </Card>

  <Card title="Phone Finder" icon="phone" href="/it/api-reference/phone/find-single">
    Trova numeri di telefono diretti a partire da un URL LinkedIn o nome + azienda
  </Card>
</CardGroup>

## Come funziona l'API Enrow?

Tutti gli endpoint sono **asincroni** e seguono lo stesso schema: invii una ricerca, poi recuperi il risultato tramite webhook o polling.

<Steps>
  <Step title="Invia la tua richiesta POST">
    Invia i parametri della tua ricerca. Ricevi immediatamente un ID di ricerca univoco.
  </Step>

  <Step title="Ricevi una notifica o esegui il polling">
    **Webhook (consigliato):** Passa un URL `webhook` in `settings` e ottieni il risultato inviato in POST al tuo server istantaneamente. Vedi [Come funzionano i webhook](/it/how-webhooks-work).

    **Polling:** Chiama l'endpoint GET con l'ID di ricerca.
  </Step>

  <Step title="Usa il risultato">
    Il campo `qualification` indica se il risultato è `valid`, `invalid`, `found` o `not_found`.
  </Step>
</Steps>

## Come effettuo la mia prima richiesta?

Autenticati con la tua chiave API nell'header `x-api-key` e invia in POST una ricerca all'endpoint pertinente. L'esempio seguente esegue una singola ricerca email:

<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>

**Risposta:**

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

Il POST è asincrono — l'`email` e la `qualification` vengono recuperati successivamente tramite l'[endpoint GET](/it/api-reference/email-finder/get-single-result) o un [webhook](/it/how-webhooks-work).

## Devo usare la modalità singola o in blocco?

Usa la modalità singola per ricerche in tempo reale e occasionali, e la modalità in blocco per l'arricchimento su larga scala. Ogni endpoint supporta entrambe:

|                          | Singola                        | In blocco                            |
| ------------------------ | ------------------------------ | ------------------------------------ |
| **Dimensione del batch** | 1                              | Fino a 5.000 (3.000 per il telefono) |
| **Ideale per**           | Ricerche in tempo reale        | Arricchimento su larga scala         |
| **Webhook**              | Risultato completo nel payload | Notifica, poi GET                    |

Per i job in blocco, vedi [Trova email](/it/api-reference/email-finder/find-bulk), [Verifica email](/it/api-reference/email-verifier/verify-bulk) e [Trova telefoni](/it/api-reference/phone/find-bulk).

## Cosa rende diversa l'API Enrow?

L'API Enrow combina la verifica deterministica con una consegna flessibile dei risultati, così ottieni dati accurati senza strumenti aggiuntivi:

<CardGroup cols={2}>
  <Card title="Verifica catch-all" icon="check-double">
    Verifica deterministica che funziona anche sui domini catch-all. Nessun debouncer necessario.
  </Card>

  <Card title="Campi personalizzati" icon="tag">
    Passa i tuoi dati `custom` con ogni ricerca — vengono restituiti così come sono nel risultato.
  </Card>
</CardGroup>

<Card title="Webhook" icon="bolt" href="/it/how-webhooks-work">
  Ottieni i risultati in tempo reale. Niente polling, nessuna chiamata API sprecata.
</Card>

## FAQ

<AccordionGroup>
  <Accordion title="Come autentico le richieste API?">
    Ogni richiesta deve includere la tua chiave API nell'header `x-api-key` — non ci sono flussi OAuth né bearer token. Vedi [Autenticazione](/it/authentication) per la configurazione e gli esempi.
  </Accordion>

  <Accordion title="Perché le risposte sono asincrone?">
    Una richiesta POST avvia una ricerca e restituisce immediatamente un `id` univoco. L'`email`, il `phone` o la `qualification` vengono consegnati successivamente tramite un [webhook](/it/how-webhooks-work) o eseguendo il polling dell'endpoint GET corrispondente con quell'`id`.
  </Accordion>

  <Accordion title="Quante ricerche posso eseguire in una richiesta in blocco?">
    Le richieste in blocco di email e di verifica email accettano fino a 5.000 ricerche, mentre le richieste in blocco di telefono ne accettano fino a 3.000. Per le richieste singole, la dimensione del batch è 1.
  </Accordion>

  <Accordion title="Come vengono consumati i crediti?">
    I crediti vengono detratti per ogni ricerca e l'importo viene restituito in `credits_used`. Vedi [Crediti e fatturazione](/it/credits-billing) per i costi per endpoint e [Limiti di frequenza](/it/rate-limits) prima di aumentare la scala.
  </Accordion>
</AccordionGroup>

## Passaggi successivi

<CardGroup cols={2}>
  <Card title="Autenticazione" icon="key" href="/it/authentication">
    Configura la tua chiave API nell'header x-api-key
  </Card>

  <Card title="Come funzionano i webhook" icon="bolt" href="/it/how-webhooks-work">
    Ottieni i risultati in tempo reale, senza polling
  </Card>

  <Card title="Crediti e fatturazione" icon="coins" href="/it/credits-billing">
    Scopri come vengono consumati i crediti per ogni endpoint
  </Card>

  <Card title="Gestione degli errori" icon="circle-info" href="/it/error-handling">
    Codici di stato, qualifiche e formati degli errori
  </Card>
</CardGroup>
