システム制限
Formspree はリソースに一定の制限を設けており、パブリック API を呼び出せるレートも制限しています。
プランに基づく制限
Formspree は、ユーザーの現在のプランに基づいて、各アカウントに追加できるフォーム数、プロジェクト数、メールアドレス数、チームメンバー数を制限しています。また、毎月使用できる送信数とファイルストレージ容量も制限されています。
プランレベルに基づいて制限されるリソースには以下が含まれます。
- 作成できるフォーム数
- 作成できるプロジェクト数
- 毎月受信できる送信数
- 招待できるチームメンバー数
- アカウントにリンクできるメールアドレス数
- すべてのファイルアップロードの合計サイズ
プランごとの制限の完全なリストはプランページをご覧ください。
システム全体の制限
Formspree はまた、プランレベルに関わらずすべてのアカウントに適用されるシステム全体の制限を設けています。これらの制限は、Formspree が稼働を維持し、すべてのユーザーに信頼性の高いサービスを提供できるようにするために設けられています。
制限は新しいフォーム送信を受信したときに確認され、超過した場合は Formspree がエラーを返します。制限の内容は以下の通りです。
- フォームのレート制限: 1分間に20件の投稿
- 最大アップロードファイルサイズ: 25MB
- 1送信あたりの最大ファイル数: 10ファイル
これらの制限に達しないようにするため、以下を推奨します。
- Formspree の POST エンドポイントに対して負荷テストを行わないでください。
- AJAX でフォームを送信する場合、フォームを送信した後 Formspree からレスポンスが返るまで送信ボタンを無効にしてください。これにより、誤った「ダブルクリック」による重複送信を防ぐことができます。formspree-react ライブラリは、レスポンスを待つ間フォームを無効にするのに役立つ状態管理のフックを提供しています。
- レート制限エラーは必ずフォームを送信したウェブサイト訪問者に表示し、待ってから再試行するよう知らせてください。
制限への対処
Formspree エンドポイントに送信した後、制限に達した HTML フォームはエラーページにリダイレクトされます。フォームオーナーはこの動作を有効にするために追加のコードを記述する必要はありません。
AJAX フォーム(accept-type ヘッダーが application/json に設定されているもの)は 429 エラーコードで応答します。JavaScript を使ってフォームを送信する場合は、エラーコードを確認し、ユーザーに待って再送信するよう促す適切なエラーメッセージを表示してください。
formspree-react ライブラリには、レート制限エラーをキャッチして表示するために使用できる組み込みのバリデーションコンポーネントが含まれています。