# Memeriksa alamat email

Satu panggilan memberi tahu Anda apakah suatu alamat akan menerima email. Gunakan saat pendaftaran, atau sebelum menindaklanjuti prospek, agar alamat yang akan memantul tidak masuk ke pengiriman Anda sejak awal. Semua yang ada di sini memerlukan kunci API dengan cakupan `lookup`.

## Memeriksa alamat

**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](/id-id/dokumentasi/guides/lookup/email-addresses.ts.md) · [Python](/id-id/dokumentasi/guides/lookup/email-addresses.py.md) · [Go](/id-id/dokumentasi/guides/lookup/email-addresses.go.md) · [PHP](/id-id/dokumentasi/guides/lookup/email-addresses.php.md) · [CLI](/id-id/dokumentasi/guides/lookup/email-addresses.cli.md) · [MCP](/id-id/dokumentasi/guides/lookup/email-addresses.mcp.md) · [cURL](/id-id/dokumentasi/guides/lookup/email-addresses.curl.md)

## Lookup batch

Gunakan `POST /v1/lookup/email/batch` untuk menilai hingga 1.000 alamat dalam satu permintaan:

```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"]}'
```

Array `data` dalam respons berisi satu penilaian per input, sesuai urutan pengiriman. Alamat yang formatnya salah tetap mendapat penilaian individual. Alamat duplikat tetap menjadi entri terpisah dan setiap entri yang dijawab dikenakan biaya. Spasi di sekitar alamat dihapus dan huruf besar-kecil dipertahankan.

Batasi setiap permintaan dalam 128 KiB. Pecah daftar yang lebih besar menjadi batch terpisah. Jika Anda mengaktifkan [coba lagi secara idempoten](/docs/guides/idempotency), gunakan kunci yang berbeda untuk setiap batch. Respons hingga 256 KiB dapat disimpan untuk diputar ulang; respons yang lebih besar dikembalikan tanpa perlindungan putar ulang, sehingga mencoba lagi dapat menjalankan dan menagih batch baru. Lihat [referensi batch API](/docs/api/reference/create-email-lookup-batch).

## Cara menulis alamat

Kirim alamat polos, persis seperti yang Anda simpan. Lookup alamat tunggal menolak format display-name seperti `Aisha <aisha@example.com>` alih-alih mengekstraknya. Lookup batch mengembalikan penilaian untuk setiap string yang dikirimkan.

Bagian sebelum `@` diteruskan apa adanya tanpa diubah ke huruf kecil, dan field `email` mempertahankan huruf besar-kecil tersebut. Respons batch menghapus spasi di sekitar alamat; cocokkan setiap hasil dengan input pada posisi yang sama. Kirim alamat dalam huruf besar-kecil yang Anda simpan alih-alih menormalisasinya terlebih dahulu: `result` umumnya sama dalam kedua bentuk, tetapi `delivery_confidence` tidak selalu identik, sehingga mengubah huruf besar-kecil dapat mengubah jawaban yang Anda terima.

## Lima verdict

`result` adalah field untuk mengambil keputusan.

`valid`: alamat ada dan menerima email. Kirim.

`neutral`: tidak dapat dikonfirmasi ke salah satu arah, biasanya karena domain penerima menjawab setiap penerima dengan cara yang sama. Mengirim tetap wajar; alamat netral bukan alamat buruk, melainkan alamat yang tidak dapat dijawab.

`risky`: kemungkinan besar menerima email tetapi lebih mungkin bounce atau menghasilkan keluhan dibanding alamat lain. Alamat peran, alamat sekali pakai, dan alamat bereputasi rendah masuk di sini. Apakah Anda mengirim atau tidak adalah keputusan berdasarkan toleransi Anda sendiri terhadap keluhan, dan `flags` memberi tahu jenis risikonya.

`undeliverable`: alamat tidak menerima email. Jangan kirim. `reason` menjelaskan alasannya: `invalid_syntax` untuk alamat yang formatnya salah, `invalid_domain` ketika domain tidak menerima email sama sekali, `invalid_recipient` ketika domain menerima email tetapi kotak surat ini tidak ada.

`typo`: alamat tampak salah ketik, dan `did_you_mean` berisi koreksinya. Tawarkan koreksi kepada orang yang mengetik alamat asli alih-alih langsung mengirim ke sana: ini adalah tebakan, dan alamat yang mereka maksud mungkin bukan keduanya.

`result` adalah kosakata terbuka, sehingga nilai yang tidak Anda kenali adalah verdict masa depan, bukan kesalahan. Buat cabang berdasarkan nilai yang Anda ketahui dan gunakan `delivery_confidence` sebagai fallback, yang selalu ada dan selalu dapat dibandingkan.

## Baca confidence bersama verdict, bukan sebagai penggantinya

`delivery_confidence` berkisar dari 0 (pasti tidak terkirim) hingga 100 (pasti terkirim). Skor yang sama dapat berada di bawah `neutral` atau `risky` untuk alasan berbeda, sehingga ini adalah pendapat kedua, bukan pengganti `result`. Gunakan field ini ketika Anda menginginkan satu ambang batas untuk semua verdict, termasuk verdict yang ditambahkan di kemudian hari.

`valid` berisi penilaian validitas dari penyedia. Penerima yang tidak valid dapat memiliki `valid: false` meskipun domainnya menerima email. Gunakan `result` dan `delivery_confidence` bersama-sama saat memutuskan apakah akan mengirim; `valid: true` tidak menjamin pengiriman.

## Flag menjelaskan jenis alamat

`flags` kosong jika tidak ada yang perlu dicatat. Tiga nilai didefinisikan saat ini, dan ini adalah daftar terbuka.

`role` berarti alamat tersebut menamai fungsi, bukan orang, seperti `support@` atau `info@`. Balasan dan persetujuan bersifat ambigu, dan keluhan lebih mungkin terjadi.

`disposable` berarti alamat tersebut milik penyedia alamat sekali pakai, sehingga biasanya akan berhenti ada.

`free_provider` berarti alamat tersebut milik penyedia kotak surat konsumen seperti Gmail atau Outlook.com. Ini normal untuk email konsumen, dan hanya menjadi sinyal jika Anda mengharapkan alamat bisnis.

## Coba lagi tanpa membayar dua kali

Setiap alamat yang dijawab dikenakan biaya, termasuk `undeliverable`, karena itulah jawaban yang Anda bayar dan bounce yang Anda hindari. Kirim `Idempotency-Key` agar percobaan ulang memutar ulang verdict tersimpan alih-alih membeli yang kedua. Lihat [Idempotensi](/docs/guides/idempotency).

Form `GET`, yang menempatkan alamat di URL, tidak dapat membawa kunci idempotensi. Gunakan form `POST` untuk apa pun yang diotomatisasi.

## Error

| Kode                                | Apa yang terjadi                                                                                                                                                                                                |
| ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`E22003`](/docs/api/errors/E22003) | Lookup alamat tunggal menerima alamat email yang tidak valid. Tidak ada biaya yang dikenakan. Lookup batch menilai string yang formatnya salah secara individual dan mengenakan biaya untuk penilaian tersebut. |
| [`E22001`](/docs/api/errors/E22001) | Dompet organisasi tidak cukup untuk menutup biaya lookup. Isi ulang dan coba lagi. Tidak ada biaya yang dikenakan.                                                                                              |
| [`E22002`](/docs/api/errors/E22002) | Lookup tidak tersedia untuk sementara. Coba lagi dengan backoff. Tidak ada biaya yang dikenakan.                                                                                                                |

## Langkah selanjutnya

- [Lookup nomor telepon](/docs/guides/lookup/phone-numbers) adalah sisi lain dari Lookup.
- [Suppressions](/docs/guides/email/suppressions) mencegah pengiriman ulang ke alamat yang sudah bounce, tanpa biaya.
- [Referensi API Lookup](/docs/api/reference/create-email-lookup) mendokumentasikan setiap field.
- [Pencarian email: apakah alamat tersebut benar-benar menerima email](/learn/lookup/email-lookup-will-that-address-actually-accept-mail) adalah video yang menjalankan lookup terhadap alamat peran, salah ketik, dan penyedia gratis.

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