ID formulir

Rate limit

Preset rate limit per formulir dengan angka pastinya, cara pengisiannya kembali, dan seperti apa respons 429.

Rate limit mencegah satu pengunjung, atau satu skrip, membanjiri formulir. Setiap formulir punya preset, dan setiap batas dihitung secara presisi, sebelum body dibaca. Kiriman yang ditolak tidak memakai jatah apa pun.

Preset

PresetPer pengunjung dan formulirCocok untuk
Standard (default)5 per menit, maksimal 3 dalam 10 detikSebagian besar formulir
Relaxed20 per menitFormulir di balik login, tool internal, acara dengan Wi-Fi bersama
Strict2 setiap 10 menitFormulir kontak dan penjualan, di mana pengulangan biasanya klik ganda atau bot
Custom1 sampai 1.000 setiap 10 detik, menit, 10 menit, jam, atau hariSatu entri per orang, kios, dan kasus khusus lainnya

Perbandingan preset

Satu pengunjung menekan Kirim sekali per detik selama 2 menit. Setiap kotak adalah satu detik: kotak terisi diterima, kotak kosong mendapat 429.

Standard 5 per menit, 3 dalam 10 detik14 dari 120 diterima

Relaxed 20 per menit59 dari 120 diterima

Strict 2 setiap 10 menit2 dari 120 diterima

Cara batas terisi kembali

Batas berupa jatah yang mengalir, bukan jendela waktu tetap. Pengunjung yang belum aktif mulai dengan jatah penuh dan bisa langsung memakainya. Setelah itu, satu kiriman lagi diizinkan setiap durasi jendela dibagi batas: setiap 12 detik untuk Standard, setiap 3 detik untuk Relaxed, dan setiap 5 menit untuk Strict. Setelah satu jendela penuh tanpa aktivitas, jatahnya penuh kembali.

Standard juga punya aturan burst 3 kiriman per 10 detik, jadi burst pertamanya 3, bukan 5. Relaxed, Strict, dan Custom tidak punya aturan burst terpisah.

Batas yang selalu berlaku

AturanBatasDihitung per
Proteksi flood, sebelum formulir dicari600 per menitIP, di semua formulir
Lintas formulir30 per menit, atau laju per menit Custom jika lebih tinggiIP, di semua formulir
Seluruh formulir300 per menit, atau batas Custom 1 sampai 10.000Formulir, untuk semua pengunjung
GET /f/<formId>/schema60 per menitIP dan formulir
Frame pemeriksaan Ikiform60 per menitIP dan formulir
REST API100 per menitKunci API

Laju Custom yang lebih cepat dari proteksi flood ditolak saat Anda menyimpan; misalnya, jendela 10 detik mengizinkan maksimal 100. Memuat skema formulir atau pemeriksaan manusia tidak pernah memakai jatah kiriman.

Custom

  • Submissions per visitor: bilangan bulat dari 1 sampai 1.000, dengan jendela 10 detik, satu menit, 10 menit, satu jam, atau satu hari.
  • Form-wide cap per minute: opsional, dari 1 sampai 10.000. Menggantikan default 300 per menit untuk seluruh formulir.
  • Jendela satu jam atau satu hari cocok untuk formulir satu-entri-per-orang seperti giveaway atau RSVP. Ingat bahwa banyak orang bisa berbagi satu IP, misalnya di kantor atau acara.

Saat batas tercapai

Kiriman ditolak dengan 429 rate_limited dan header Retry-After berisi jumlah detik bulat sampai kiriman berikutnya diizinkan. Kiriman formulir dari browser melihat halaman hosted "Slow down". Kode fetch bisa membaca Retry-After, karena Ikiform mengeksposnya lewat CORS.

429 Too Many Requests
HTTP/1.1 429 Too Many Requests
Retry-After: 12
X-Request-Id: req_01k7v2c9t3e8m5q4x6z0a1b2c3
Content-Type: application/json; charset=utf-8

{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Please slow down."},"request_id":"req_01k7v2c9t3e8m5q4x6z0a1b2c3"}
  1. Tunggu selama Retry-After detik sebelum mengirim lagi.
  2. Jika pengunjung yang jujur mencapai batas, ubah formulir ke Relaxed atau Custom.
  3. Jika server Anda mengirim atas nama pengunjung, setiap kiriman berbagi IP server Anda. Lihat Dari server.
Pengaturan rate limit bersifat privat. Pengaturan ini tidak pernah diekspos oleh endpoint skema maupun REST API.