# Sprawdź adres e-mail

Jedno wywołanie mówi, czy adres przyjmie pocztę. Użyj go przy rejestracji lub przed podjęciem działań wobec leada, żeby adresy, które odbiłyby wiadomość, w ogóle nie trafiły do wysyłki. Wszystko, co tu opisano, wymaga klucza API z uprawnieniem `lookup`.

## Sprawdź adres

**TypeScript**

```typescript
const answer = await bird.lookup.email({ email: "aisha.khan@example.com" });
// result is an open vocabulary; delivery_confidence is always comparable.
console.log(answer.result, answer.delivery_confidence);
```

Examples: [TypeScript](/pl-pl/dokumentacja/guides/lookup/email-addresses.ts.md) · [Python](/pl-pl/dokumentacja/guides/lookup/email-addresses.py.md) · [Go](/pl-pl/dokumentacja/guides/lookup/email-addresses.go.md) · [PHP](/pl-pl/dokumentacja/guides/lookup/email-addresses.php.md) · [CLI](/pl-pl/dokumentacja/guides/lookup/email-addresses.cli.md) · [MCP](/pl-pl/dokumentacja/guides/lookup/email-addresses.mcp.md) · [cURL](/pl-pl/dokumentacja/guides/lookup/email-addresses.curl.md)

## Sprawdzanie partii adresów

Użyj `POST /v1/lookup/email/batch`, aby ocenić do 1000 adresów w jednym żądaniu:

```bash
curl -X POST "https://us1.platform.bird.com/v1/lookup/email/batch" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"emails":["aisha.khan@example.com","not-an-email"]}'
```

Tablica `data` w odpowiedzi zawiera jedną ocenę na każdy adres wejściowy, w kolejności przesłania. Zniekształcone adresy otrzymują indywidualne oceny. Zduplikowane adresy pozostają oddzielnymi wpisami, a każdy oceniony wpis jest rozliczany. Otaczające białe znaki są usuwane, a wielkość liter jest zachowywana.

Ogranicz każde żądanie do 128 KiB. Większe listy podziel na osobne partie. Jeśli korzystasz z [idempotentnych ponownych prób](/docs/guides/idempotency), użyj osobnego klucza dla każdej partii. Odpowiedzi do 256 KiB mogą być zachowane do ponownego odtworzenia; większe odpowiedzi są zwracane bez ochrony przed powtórzeniem, więc ponowna próba może wykonać i naliczyć opłatę za kolejną partię. Zobacz [dokumentację partii API](/docs/api/reference/create-email-lookup-batch).

## Jak podać adres

Wyślij sam adres, dokładnie tak, jak go przechowujesz. Sprawdzanie pojedynczego adresu odrzuca formy z nazwą wyświetlaną, takie jak `Aisha <aisha@example.com>`, zamiast je rozpakowywać. Sprawdzanie partii zwraca ocenę dla każdego przesłanego ciągu znaków.

Część przed `@` jest przekazywana w oryginalnej pisowni bez zamiany na małe litery, a pole `email` zachowuje tę wielkość liter. Odpowiedzi partii usuwają otaczające białe znaki; dopasowuj każdy wynik do danych wejściowych na tej samej pozycji. Wyślij adres w wielkości liter, w jakiej go przechowujesz, zamiast go wcześniej normalizować: `result` jest zasadniczo taki sam w obu przypadkach, ale `delivery_confidence` nie zawsze jest identyczny, więc zmiana wielkości liter może zmienić uzyskaną odpowiedź.

## Pięć werdyktów

`result` to pole, na podstawie którego podejmujesz decyzję.

`valid`: adres istnieje i przyjmuje pocztę. Wysyłaj.

`neutral`: nie udało się potwierdzić w żadną stronę, zwykle dlatego, że domena odbierająca odpowiada tak samo na każdego odbiorcę. Wysyłanie jest uzasadnione; neutralny adres to nie zły adres, lecz taki, na który nie da się uzyskać jednoznacznej odpowiedzi.

`risky`: adres prawdopodobnie przyjmuje pocztę, ale jest bardziej narażony na odbicie lub skargę niż większość. Trafiają tu adresy funkcyjne, jednorazowe i o niskiej reputacji. Czy wysyłać, zależy od Twojej tolerancji na skargi, a `flags` informuje, o jaki rodzaj ryzyka chodzi.

`undeliverable`: adres nie przyjmuje poczty. Nie wysyłaj. `reason` podaje powód: `invalid_syntax` dla zniekształconego adresu, `invalid_domain` gdy domena w ogóle nie przyjmuje poczty, `invalid_recipient` gdy domena przyjmuje pocztę, ale ta skrzynka nie istnieje.

`typo`: adres wygląda na błędnie wpisany, a `did_you_mean` zawiera korektę. Zaproponuj korektę osobie, która wpisała oryginał, zamiast wysyłać na nią bez pytania: to przypuszczenie, a zamierzony adres może nie być żadnym z nich.

`result` to otwarty słownik, więc nierozpoznana wartość jest przyszłym werdyktem, a nie błędem. Obsługuj znane wartości i w pozostałych przypadkach korzystaj z `delivery_confidence`, które jest zawsze obecne i zawsze porównywalne.

## Odczytuj pewność obok werdyktu, nie zamiast niego

`delivery_confidence` przyjmuje wartości od 0 (na pewno nie zostanie dostarczony) do 100 (na pewno zostanie). Ten sam wynik może występować pod `neutral` lub `risky` z różnych powodów, więc jest to druga opinia, a nie zamiennik dla `result`. To pole, na którym warto się oprzeć, gdy chcesz mieć jeden próg dla każdego werdyktu, w tym werdyktów dodanych w przyszłości.

`valid` zawiera ocenę ważności od dostawcy. Nieprawidłowy odbiorca może mieć `valid: false` nawet wtedy, gdy jego domena przyjmuje pocztę. Przy podejmowaniu decyzji o wysyłce używaj `result` i `delivery_confidence` razem; `valid: true` nie gwarantuje dostarczenia.

## Flagi opisują rodzaj adresu

`flags` jest puste, gdy nic szczególnego nie dotyczy adresu. Zdefiniowane są trzy wartości i jest to lista otwarta.

`role` oznacza, że adres wskazuje na funkcję, a nie na osobę, na przykład `support@` lub `info@`. Odpowiedzi i zgoda są niejednoznaczne, a skargi bardziej prawdopodobne.

`disposable` oznacza, że adres należy do dostawcy jednorazowych adresów, więc zazwyczaj przestanie istnieć.

`free_provider` oznacza, że adres należy do konsumenckiego dostawcy poczty, takiego jak Gmail czy Outlook.com. To normalne w przypadku poczty konsumenckiej i stanowi sygnał tylko wtedy, gdy spodziewasz się adresu firmowego.

## Spróbuj ponownie bez podwójnej opłaty

Każdy oceniony adres jest rozliczany, w tym `undeliverable`, ponieważ to odpowiedź, za którą zapłaciłeś, i odbicie, którego uniknąłeś. Wyślij `Idempotency-Key`, aby ponowna próba odtworzyła zapisany werdykt zamiast kupować kolejny. Zobacz [Idempotentność](/docs/guides/idempotency).

Forma `GET`, która umieszcza adres w URL, nie może przenosić klucza idempotentności. W przypadku automatyzacji używaj formy `POST`.

## Błędy

| Kod                                 | Co się stało                                                                                                                                                                                       |
| ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`E22003`](/docs/api/errors/E22003) | Sprawdzanie pojedynczego adresu otrzymało nieprawidłowy adres e-mail. Nic nie zostało naliczone. Sprawdzanie partii ocenia zniekształcone ciągi znaków indywidualnie i nalicza opłatę za te oceny. |
| [`E22001`](/docs/api/errors/E22001) | Portfel organizacji nie pokrywa kosztu sprawdzenia. Doładuj go i spróbuj ponownie. Nic nie zostało naliczone.                                                                                      |
| [`E22002`](/docs/api/errors/E22002) | Sprawdzanie jest tymczasowo niedostępne. Spróbuj ponownie ze wstecznym wycofaniem. Nic nie zostało naliczone.                                                                                      |

## Następne kroki

- [Sprawdź numer telefonu](/docs/guides/lookup/phone-numbers) to druga połowa usługi Lookup.
- [Supresje](/docs/guides/email/suppressions) zapobiegają ponownym wysyłkom na adresy, które już odbiły, bez dodatkowych kosztów.
- [Dokumentacja referencyjna Lookup API](/docs/api/reference/create-email-lookup) opisuje każde pole.
- [Weryfikacja adresu e-mail: czy ten adres rzeczywiście przyjmie wiadomość](/learn/lookup/email-lookup-will-that-address-actually-accept-mail) to film pokazujący sprawdzanie adresu funkcyjnego, literówki i darmowego dostawcy.

## Related resources

- [What are bounced emails?](/explained/deliverability/what-are-bounced-emails) (answer)
- [Email lookup](/lookup-api) (product)

[Get an implementation brief](/learn/workspace?topic=lookup-email)
