SMS/RCS / レート制限
SMS/RCS の各エンドポイントで受け付けられるリクエスト数の上限と、上限の範囲内で要件を満たすための API の選び方をまとめます。
共通仕様 / レート制限
上限の考え方は Mico の配信システムの共通仕様で、どのプロダクトでも同じです。共通仕様 / レート制限 に次の内容があります。
- レート制限に関する原則 … 記載の値はベストエフォートの上限であること、変更を予告する期間
- 上限が適用される範囲 … 対象はリクエストの受け付けまでで、メッセージ送出の速度ではない
- レート制限の境界 … クライアント ID × エンドポイント単位で数える
- ポーリング間隔 … 同じデータへのポーリングは 1 秒以上空ける
- 再試行 … 指数バックオフで実装し、冪等性キーは変えない
エンドポイントごとの上限
本ページの上限は、API がリクエストを受け付ける際の制限です。実際のメッセージ配信スループット(TPS)ではありません。
| エンドポイント | 上限 |
|---|---|
トークン生成POST /oauth/token | 5 req/秒 |
配信リストアップロードPOST /engage/v1/sms_delivery/delivery_list | 2 req/秒 |
アップロード状況の確認GET /engage/v1/sms_delivery/delivery_list | 10 req/秒 |
配信予約POST /engage/v1/sms_delivery/schedules | 10 req/秒 |
即時配信POST /engage/v1/sms_delivery/send | 10 req/秒 |
配信キャンセルPOST /engage/v1/sms_delivery/{delivery_request_id}/cancel | 10 req/秒 |
配信サマリーGET /engage/v1/sms_delivery/{delivery_request_id} | 10 req/秒 |
配信レポートPOST /engage/v1/sms_delivery/{delivery_request_id}/recipients | 2 req/秒 |
アップロードは件数の上限がなく、レポートは 1 ページあたり最大 10,000 件を返します。
ヘルスチェック(GET /health)は認証が不要なため、クライアント ID 単位での制限の対象外です。
上限が適用されるのはリクエストの受け付けまでです。SMS/RCS では、実際のメッセージ送出の進捗を配信サマリーで確認します。
ユースケースに適した API を選択する
配信 API には複数の種類があるため、レート制限の範囲内で要件を満たすには、ユースケースに合わせて適した API を選択することが重要です。
| やりたいこと | 使う API | 1 リクエストで扱える量 |
|---|---|---|
| 少数に配信する | 即時配信 | 最大 10 件 |
| 多数に配信する | 予約配信(配信リストアップロード+配信予約) | 件数の上限なし(CSV は 512 MB まで) |
| 配信の進み具合を見る | 配信サマリー | 成功・失敗の件数 |
| 宛先ごとの結果を見る | 配信レポート | 1 ページ最大 10,000 件 |
即時配信と予約配信の使い分け
- 即時配信
- 最大 10 件の少数の宛先に配信します。配信は直ちに開始されるため、キャンセルを受け付けることはできません。宛先数が多い場合は予約配信をご利用ください。
- 予約配信(配信リストアップロード+配信予約)
- 配信リストアップロードと配信予約なら 1 リクエストにまとめられるため、リクエスト数の上限に達しません。呼び出しの流れはクイックリファレンスの「利用シナリオと配信の流れ」を参照してください。
宛先ごとの結果を見る
-
page_size の指定
page_sizeは既定値の 10,000 件のまま使用することを推奨します。指定を省略した場合も 10,000 件になり、これが上限です。1 回あたりのレスポンスサイズを抑え、レイテンシーを小さくしたい場合には、既定値よりも小さい値を指定できますが、必要な API コール数の増加がトレードオフとなるため、レート制限を加味し、調整してください。