レート制限と上限
このページの値は、公式の文字おこしくん(moji.kaitoranma.com)の今の値で、予告なく変わることがあります。上限に当たったときの扱いはエラーコードにあります。
WebSocket
| 対象 |
上限 |
超えたとき |
| 1 メッセージ(テキスト・バイナリ) |
64 KiB |
文字おこしくんが fatal な invalid_message を送って、接続を切る |
| 同時接続数(Ingest + Subscribe、文字おこしくんの API 全体) |
4,096 |
文字おこしくんが upgrade を HTTP 503(too_many_connections)で断る |
| 同時接続数(同じ送信元アドレスから) |
1,024 |
文字おこしくんが upgrade を HTTP 429(too_many_connections)で断る |
hello が届くまで |
10 秒 |
文字おこしくんが invalid_message を送って、接続を切る |
| 1 セッションを同時に購読できる接続(Subscribe) |
100 |
文字おこしくんが fatal な rate_limited を送る |
| 送信待ちの詰まり(Subscribe。受け手の受信が遅い) |
文字おこしくんは、送信待ちが 64 KiB になると partial を間引き、1 MiB になると接続を切る |
文字おこしくんが非 fatal な rate_limited を送ってから、接続を切る(再接続すると、新しい welcome から始まる) |
welcome.recent の発話 |
直近 50 件 |
— |
| 1 セッションの Ingest 接続 |
1 本 |
文字おこしくんが古い接続を superseded で切る |
| 1 接続のトラック(Ingest) |
64 本 |
文字おこしくんが非 fatal な track_limit_exceeded を返す |
| 同時に開いているトラック(Ingest。API キーで作ったセッション全部の合計。ほかの利用者の API キーを含む) |
20 本 |
文字おこしくんが非 fatal な track_limit_exceeded を返し、新しいトラックを開かない。クライアントは、時間をおいてから、文字おこしくんが開かなかったトラックを開き直す。文字おこしくんは、公式の Discord ボットのセッションのトラックを数えない |
| 1 接続の話者(Ingest) |
256 人 |
文字おこしくんが非 fatal な rate_limited を返す |
サーバーごとの上限(テナント = Discord サーバーごと)
| 項目 |
公式の文字おこしくんの値 |
超えたとき |
| 記録の保持期間 |
セッションの終了から、Discord サーバーのレベルの日数(30・90・180・365 日。利用規約 第6条)。日数は終了した時点のレベルで決まる。その後にレベルが上がると、文字おこしくんは、まだ消していない記録の保持期限(retainUntil)も、終了から上がったレベルの日数まで延ばす。レベルが下がっても、文字おこしくんは保持期限を早めない |
文字おこしくんは、期間を過ぎた記録を消す(そのセッションへの要求には 404 session_not_found を返す) |
| API キーの利用 |
可(どの Discord サーバーでも) |
文字おこしくんの運営者がその Discord サーバーの API キーの利用を止めたときだけ、文字おこしくんが 403 api_access_disabled を返す |
| 有効な API キーの数 |
25 個(Discord サーバーごと) |
Discord サーバーの管理者は、管理画面で新しいキーを作れない(使っていないキーを取り消してから作る) |
| Webhook の送信先の数 |
5 個(Discord サーバーごと。止めている送信先も数える) |
Discord サーバーの管理者は管理画面で新しい送信先を追加できない(使っていない送信先を削除してから追加する) |
- 利用量は音声認識にかけた音声の秒数で、文字おこしくんは利用量をトラックごとに数えて足します(3 人が同時に話せば 3 倍になります)。今の利用量は
GET /v1/usage(usage:read の API キー)で分かります。公式の文字おこしくん(moji.kaitoranma.com)には、1 日の利用量の上限と、Discord サーバーごとの同時トラック数の上限はありません。
- Discord サーバーのメンバーは、管理画面の「利用状況」で、その Discord サーバーの日ごとの発話の時間を確かめられます。
- Webhook の送り直しの間隔と回数は Webhook リファレンスの送り直しに、応答を待つ時間は応答のしかたにあります。
- 上限を変えたいときは、contact@kaitoranma.com へご連絡ください。
HTTP API
| 対象 |
既定 |
超えたとき |
| API キーごと |
1 分あたり 120 要求(使える要求の数は、毎秒 2 ずつ戻り、最大 120 までたまる) |
429 rate_limited(Retry-After) |
送信元 IP ごと(API キーを使わない要求: セッショントークンでの書き出しと ChatGPT への転送(/chatgpt)・認証に失敗した要求など) |
1 分あたり 120 要求 |
429 rate_limited(Retry-After) |
書き出し(/transcript)の同時実行 |
文字おこしくんの API 全体で 2 本 |
429 rate_limited(Retry-After: 5) |
| 本文の大きさ |
16 KiB |
413 payload_too_large |
セッションの一覧の 1 ページ(limit) |
既定 20、最大 100 |
400 invalid_request |
利用量の期間(from〜to) |
両端を含めて 366 日まで |
400 invalid_request |
Idempotency-Key を覚える期間 |
24 時間 |
— |
RateLimit ヘッダー・Retry-After の読み方と Idempotency-Key の使い方は、HTTP API リファレンスにあります。
セッショントークンの有効期間
| 発行のしかた |
既定 |
最大 |
API キーで POST /v1/sessions/{sessionId}/tokens(ttlSeconds) |
1 時間(3,600 秒) |
24 時間(86,400 秒) |
API キーで POST /v1/sessions(応答の ingest.token / subscribe.token)・Discord の /link(返答のボタンで開くオーバーレイの URL) |
24 時間 |
— |
API キーで POST /v1/sessions/{sessionId}/downloads(書き出しのリンクの transcript:download のトークン。ttlSeconds) |
1 時間(3,600 秒) |
24 時間(86,400 秒)。文字おこしくんは、期限を記録の保存期限より後にしません |
文字おこしくんには、トークンを 1 つずつ取り消す仕組みがありません(流出したトークンは、期限まで使えてしまいます)。トークンの有効期間は、必要な長さより長くしないでください。