Gmail API tunduk pada batas penggunaan yang membatasi kecepatan pemanggilan metode API. Batas ditentukan dalam unit kuota, yaitu unit pengukuran abstrak yang merepresentasikan penggunaan resource Gmail.
Kuota Gmail API
Dua jenis kuota diterapkan:
Per menit per project: Ini adalah jumlah unit kuota yang dapat digunakan project Google Cloud Anda dalam satu menit.
Per menit per pengguna per project: Ini adalah jumlah unit kuota yang dapat digunakan oleh satu pengguna tertentu dalam project Cloud Anda. Batas ini bertujuan membantu Anda memastikan distribusi penggunaan yang adil di antara pengguna.
Tabel berikut menjelaskan batas ini:
| Jenis batas penggunaan | Batas |
|---|---|
| Per menit per project | 1.200.000 unit kuota |
| Per menit per pengguna per project | 6.000 unit kuota |
Untuk mengetahui informasi tentang penanganan error batas, lihat Menyelesaikan error.
Nilai minimum penagihan harian
Batas per hari per project ini menentukan jumlah maksimum unit kuota yang dapat digunakan project Google Cloud Anda dalam jangka waktu 24 jam sebelum dikenai biaya.
Penggunaan di bawah batas ini tidak dikenai biaya tambahan dan akun Google Cloud Anda tidak ditagih. Detail penagihan lengkap akan dibagikan pada tahun 2026 dengan pemberitahuan setidaknya 90 hari sebelum perubahan apa pun berlaku.
Anda tidak dapat meminta peningkatan batas nilai minimum harian ini.
Tabel berikut menjelaskan batasnya:
| Jenis batas nilai minimum | Batas |
|---|---|
| Per hari per project | 80.000.000 unit kuota |
Untuk mengetahui informasi selengkapnya, lihat Model standar Google Workspace untuk alat dan API agen.
Penggunaan kuota per metode
Jumlah unit kuota yang digunakan per permintaan bervariasi, bergantung pada metode yang dipanggil. Tabel berikut menguraikan penggunaan unit kuota per metode:
| Metode | Unit kuota |
|---|---|
drafts.create |
10 |
drafts.delete |
10 |
drafts.get |
20 |
drafts.list |
5 |
drafts.send |
100 |
drafts.update |
15 |
getProfile |
1 |
history.list |
2 |
labels.create |
5 |
labels.delete |
5 |
labels.get |
1 |
labels.list |
1 |
labels.update |
5 |
messages.attachments.get |
20 |
messages.batchDelete |
50 |
messages.batchModify |
50 |
messages.delete |
10 |
messages.get |
20 |
messages.import |
25 |
messages.insert |
25 |
messages.list |
5 |
messages.modify |
5 |
messages.send |
100 |
messages.trash |
20 |
messages.untrash |
5 |
settings.delegates.create |
100 |
settings.delegates.delete |
5 |
settings.delegates.get |
1 |
settings.delegates.list |
1 |
settings.filters.create |
5 |
settings.filters.delete |
5 |
settings.filters.get |
1 |
settings.filters.list |
1 |
settings.forwardingAddresses.create |
100 |
settings.forwardingAddresses.delete |
5 |
settings.forwardingAddresses.get |
1 |
settings.forwardingAddresses.list |
1 |
settings.getAutoForwarding |
1 |
settings.getImap |
1 |
settings.getPop |
1 |
settings.getVacation |
1 |
settings.sendAs.create |
100 |
settings.sendAs.delete |
5 |
settings.sendAs.get |
1 |
settings.sendAs.list |
1 |
settings.sendAs.update |
100 |
settings.sendAs.verify |
100 |
settings.updateAutoForwarding |
5 |
settings.updateImap |
5 |
settings.updatePop |
100 |
settings.updateVacation |
5 |
stop |
50 |
threads.delete |
20 |
threads.get |
40 |
threads.list |
10 |
threads.modify |
10 |
threads.trash |
20 |
threads.untrash |
10 |
watch |
100 |
Saat menggunakan Gmail API, ada juga batas 500 penerima per pesan email.
Mengatasi error kuota berbasis waktu
Untuk semua error berbasis waktu (maksimum N permintaan per X menit), sebaiknya kode Anda menangkap pengecualian dan menggunakan penundaan eksponensial yang dipangkas untuk memastikan perangkat Anda tidak menghasilkan beban yang berlebihan.
Backoff eksponensial adalah strategi penanganan error standar untuk aplikasi jaringan. Algoritma backoff eksponensial mencoba ulang permintaan menggunakan waktu tunggu yang meningkat secara eksponensial di antara permintaan, hingga waktu backoff maksimum. Jika permintaan masih gagal, penting agar penundaan antar-permintaan meningkat dari waktu ke waktu hingga permintaan berhasil.
Contoh algoritma
Algoritma backoff eksponensial mencoba ulang permintaan secara eksponensial, sehingga meningkatkan waktu tunggu antar-percobaan ulang hingga waktu backoff maksimum. Contoh:
- Buat permintaan ke Gmail API.
- Jika permintaan gagal, tunggu 1 +
random_number_millisecondsdetik dan coba lagi permintaan tersebut. - Jika permintaan gagal, tunggu 2 +
random_number_millisecondsdetik dan coba lagi permintaan tersebut. - Jika permintaan gagal, tunggu 4 +
random_number_millisecondsdan coba lagi permintaan tersebut. - Dan seterusnya, hingga
maximum_backoffkali. - Terus tunggu dan coba ulang hingga jumlah maksimum percobaan ulang, tetapi jangan tambah waktu tunggu antar-percobaan ulang.
dengan:
- Waktu tunggu adalah
min(((2^n)+random_number_milliseconds), maximum_backoff), dengannbertambah 1 untuk setiap iterasi (permintaan). random_number_millisecondsadalah jumlah acak milidetik yang kurang dari atau sama dengan 1.000. Hal ini membantu menghindari kasus saat banyak klien disinkronkan oleh beberapa situasi dan semua mencoba lagi secara bersamaan, sehingga mengirimkan permintaan dalam gelombang yang disinkronkan. Nilairandom_number_millisecondsdihitung ulang setelah setiap permintaan coba lagi.maximum_backoffbiasanya 32 atau 64 detik. Nilai yang sesuai bergantung pada kasus penggunaan.
Klien dapat terus mencoba ulang setelah mencapai waktu maximum_backoff.
Percobaan ulang setelah tahap ini tidak perlu terus meningkatkan waktu backoff. Misalnya, jika klien menggunakan waktu maximum_backoff 64 detik, setelah mencapai nilai ini, klien dapat mencoba lagi setiap 64 detik. Pada saat tertentu,
klien seharusnya dicegah untuk mencoba ulang tanpa batas waktu.
Waktu tunggu antara percobaan ulang dan jumlah percobaan ulang bergantung pada kasus penggunaan dan kondisi jaringan Anda.
Harga
Semua penggunaan standar Gmail API tersedia tanpa biaya tambahan. Melebihi batas permintaan kuota direncanakan akan menimbulkan biaya pada akun penagihan Google Cloud Anda pada tahun 2026. Untuk mengetahui informasi selengkapnya, lihat Model standar Google Workspace untuk alat dan API agen.
Meminta penambahan kuota
Bergantung pada penggunaan resource project, Anda mungkin ingin meminta penyesuaian kuota. Panggilan API oleh akun layanan dianggap menggunakan satu akun. Mengajukan permohonan untuk penyesuaian kuota belum tentu disetujui. Permintaan penyesuaian kuota yang akan meningkatkan nilai kuota secara signifikan membutuhkan waktu lebih lama untuk disetujui.
Tidak semua project memiliki kuota yang sama. Seiring meningkatnya penggunaan Google Cloud dari waktu ke waktu, nilai kuota Anda mungkin perlu ditingkatkan. Jika Anda memperkirakan adanya peningkatan penggunaan yang signifikan di masa mendatang, Anda dapat secara proaktif meminta penyesuaian kuota dari halaman Quotas & System Limits di konsol Google Cloud.
Untuk mempelajari lebih lanjut, lihat referensi berikut:
- Tentang penyesuaian kuota
- Melihat batas dan penggunaan kuota Anda
- Meminta batas kuota yang lebih tinggi
Topik terkait
- Meningkatkan performa
- Batas pengiriman dan penerimaan email
- Batas pengiriman pesan Gmail di Google Workspace