レート制限と上限

このページの値は、公式の文字おこしくん(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 サーバーの管理者は管理画面で新しい送信先を追加できない(使っていない送信先を削除してから追加する)

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 つずつ取り消す仕組みがありません(流出したトークンは、期限まで使えてしまいます)。トークンの有効期間は、必要な長さより長くしないでください。