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

# Enrow API

> Przegląd Enrow API do wyszukiwania i weryfikacji służbowych adresów e-mail oraz numerów telefonów na dużą skalę, z asynchronicznymi wyszukiwaniami, webhookami i przetwarzaniem zbiorczym

Enrow API umożliwia wyszukiwanie i weryfikację służbowych danych kontaktowych na dużą skalę. Każde żądanie jest uwierzytelniane za pomocą [klucza API](/pl/authentication) w nagłówku `x-api-key`, a każde wyszukiwanie przebiega asynchronicznie, dzięki czemu możesz przetwarzać duże wolumeny bez blokowania.

<Note>
  **Adres bazowy** — Wszystkie żądania API trafiają na `https://api.enrow.io`
</Note>

## Co mogę robić z Enrow API?

Enrow API udostępnia trzy podstawowe funkcje, każdą dostępną zarówno w trybie pojedynczym, jak i zbiorczym:

<CardGroup cols={2}>
  <Card title="Email Finder" icon="envelope" href="/pl/api-reference/email-finder/find-single">
    Znajdź służbowe adresy e-mail na podstawie imienia i nazwiska oraz domeny firmy
  </Card>

  <Card title="Email Verifier" icon="shield-check" href="/pl/api-reference/email-verifier/verify-single">
    Zweryfikuj dowolny adres e-mail dzięki deterministycznej weryfikacji catch-all
  </Card>

  <Card title="Phone Finder" icon="phone" href="/pl/api-reference/phone/find-single">
    Znajdź bezpośrednie numery telefonów na podstawie adresu URL LinkedIn lub imienia i nazwiska + firmy
  </Card>
</CardGroup>

## Jak działa Enrow API?

Wszystkie endpointy są **asynchroniczne** i działają według tego samego wzorca: wysyłasz wyszukiwanie, a następnie odbierasz wynik za pomocą webhooka lub odpytywania.

<Steps>
  <Step title="Wyślij żądanie POST">
    Wyślij parametry wyszukiwania. Natychmiast otrzymujesz unikalny identyfikator wyszukiwania.
  </Step>

  <Step title="Otrzymaj powiadomienie lub odpytuj">
    **Webhook (zalecane):** Przekaż adres URL `webhook` w `settings`, a wynik zostanie błyskawicznie wysłany metodą POST na Twój serwer. Zobacz [Jak działają webhooki](/pl/how-webhooks-work).

    **Odpytywanie:** Wywołaj endpoint GET z identyfikatorem wyszukiwania.
  </Step>

  <Step title="Wykorzystaj wynik">
    Pole `qualification` informuje, czy wynik to `valid`, `invalid`, `found` lub `not_found`.
  </Step>
</Steps>

## Jak wykonać pierwsze żądanie?

Uwierzytelnij się kluczem API w nagłówku `x-api-key` i wyślij wyszukiwanie metodą POST do odpowiedniego endpointu. Poniższy przykład uruchamia pojedyncze wyszukiwanie e-mail:

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

**Odpowiedź:**

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

Żądanie POST jest asynchroniczne — `email` i `qualification` są pobierane później za pomocą [endpointu GET](/pl/api-reference/email-finder/get-single-result) lub [webhooka](/pl/how-webhooks-work).

## Czy używać trybu pojedynczego czy zbiorczego?

Używaj trybu pojedynczego do jednorazowych wyszukiwań w czasie rzeczywistym, a trybu zbiorczego do wzbogacania danych na dużą skalę. Każdy endpoint obsługuje oba:

|                    | Pojedynczy                       | Zbiorczy                         |
| ------------------ | -------------------------------- | -------------------------------- |
| **Rozmiar partii** | 1                                | Do 5 000 (3 000 dla telefonów)   |
| **Najlepszy do**   | Wyszukiwań w czasie rzeczywistym | Wzbogacania danych na dużą skalę |
| **Webhook**        | Pełny wynik w ładunku            | Powiadomienie, następnie GET     |

W przypadku zadań zbiorczych zobacz [Znajdź e-maile zbiorczo](/pl/api-reference/email-finder/find-bulk), [Zweryfikuj e-maile zbiorczo](/pl/api-reference/email-verifier/verify-bulk) oraz [Znajdź telefony zbiorczo](/pl/api-reference/phone/find-bulk).

## Czym wyróżnia się Enrow API?

Enrow API łączy deterministyczną weryfikację z elastycznym dostarczaniem wyników, dzięki czemu otrzymujesz dokładne dane bez dodatkowych narzędzi:

<CardGroup cols={2}>
  <Card title="Weryfikacja catch-all" icon="check-double">
    Deterministyczna weryfikacja działająca nawet na domenach catch-all. Bez potrzeby debouncera.
  </Card>

  <Card title="Pola niestandardowe" icon="tag">
    Przekaż własne dane `custom` przy każdym wyszukiwaniu — zostaną zwrócone w wyniku bez zmian.
  </Card>
</CardGroup>

<Card title="Webhooki" icon="bolt" href="/pl/how-webhooks-work">
  Otrzymuj wyniki w czasie rzeczywistym. Bez odpytywania, bez zmarnowanych wywołań API.
</Card>

## FAQ

<AccordionGroup>
  <Accordion title="Jak uwierzytelniać żądania API?">
    Każde żądanie musi zawierać Twój klucz API w nagłówku `x-api-key` — nie ma żadnych przepływów OAuth ani tokenów bearer. Zobacz [Uwierzytelnianie](/pl/authentication), aby poznać konfigurację i przykłady.
  </Accordion>

  <Accordion title="Dlaczego odpowiedzi są asynchroniczne?">
    Żądanie POST rozpoczyna wyszukiwanie i natychmiast zwraca unikalny `id`. Pole `email`, `phone` lub `qualification` jest dostarczane później za pomocą [webhooka](/pl/how-webhooks-work) lub przez odpytywanie odpowiedniego endpointu GET z tym `id`.
  </Accordion>

  <Accordion title="Ile wyszukiwań mogę uruchomić w jednym żądaniu zbiorczym?">
    Zbiorcze żądania e-mail i weryfikacji e-mail przyjmują do 5 000 wyszukiwań, a zbiorcze żądania telefoniczne przyjmują do 3 000. W przypadku żądań pojedynczych rozmiar partii wynosi 1.
  </Accordion>

  <Accordion title="Jak zużywane są kredyty?">
    Kredyty są odejmowane za każde wyszukiwanie, a ich liczba jest zwracana w `credits_used`. Zobacz [Kredyty i rozliczenia](/pl/credits-billing), aby poznać koszty poszczególnych endpointów, oraz [Limity zapytań](/pl/rate-limits) przed zwiększeniem skali.
  </Accordion>
</AccordionGroup>

## Następne kroki

<CardGroup cols={2}>
  <Card title="Uwierzytelnianie" icon="key" href="/pl/authentication">
    Skonfiguruj swój klucz API w nagłówku x-api-key
  </Card>

  <Card title="Jak działają webhooki" icon="bolt" href="/pl/how-webhooks-work">
    Otrzymuj wyniki w czasie rzeczywistym, bez potrzeby odpytywania
  </Card>

  <Card title="Kredyty i rozliczenia" icon="coins" href="/pl/credits-billing">
    Zrozum, jak zużywane są kredyty dla każdego endpointu
  </Card>

  <Card title="Obsługa błędów" icon="circle-info" href="/pl/error-handling">
    Kody statusu, kwalifikacje i formaty błędów
  </Card>
</CardGroup>
