キューと制限
ReWords.AI API の同時実行数、30 件のキュー、送信と読み取りのレート制限、ポーリング、画像サイズの上限、Retry-After と冪等なリトライ。
キュー
- 1 つのアカウントで同時に処理されるジョブは最大 10 件です。
- その後ろに最大 30 件のジョブがキューで待機します。待機中は
GET /edits/{id}がqueue_position(前で待っているジョブの数。実行中のジョブは数えないので、0は次に開始することを意味します)とestimated_seconds(完了までの見込み時間)を返します。 - すでに 30 件が待機しているときは、
POST /editsがRetry-Afterヘッダー付きで503 queue_fullを返します。課金はされません。 - ジョブはキューを出てから最大 10 分間実行されることがあります。待ち時間は含まれないため、キューが満杯の場合、 最後のジョブは最悪で約 30 分かかります。ほとんどのジョブは 1〜2 分で、10 件中 9 件は 3 分以内に終わります。
レート制限
各アカウント(すべてのキーで共有)は、任意の直近 60 秒間に次の回数までリクエストできます:
| リクエスト | 上限 |
|---|---|
送信:POST /ocr、POST /edits | 30 |
読み取り:GET /edits/{id}、GET /account | 240 回 |
有効なキーを持つリクエストはすべて数えられます。エラーで拒否されたリクエストも含みます。キーがない、または無効なリクエストは どのアカウントにも数えられません。
上限を超えると 429 rate_limited と Retry-After が返ります。値は常に整数の秒数で、期間内で最も古いリクエストが
期限切れになるまでの時間です。GET /account は現在の上限を limits で返します。エンタープライズのアカウントは
上限を引き上げられます。
ポーリング
- ジョブが
processingの間、またはqueuedでqueue_positionが 0 の間は、GET /edits/{id}を 5 秒ごとにポーリングします。 - キューのさらに後ろにいる間は、30 秒ごとに確認します。
estimated_secondsはジョブが終わる見込みの時間で、 確認の間隔ではありません。
処理中 10 件、待機中 30 件のとき、読み取りは最大で毎分 190 回となり、上限の 240 回に収まります。ポーリングを完全に避けるには、
callback_url を渡して Webhook を受け取ってください。
画像
- JPEG、PNG、WebP、最大 20 MB、長辺は最大 8000 px。
image_url、image_base64、マルチパートのimageファイル、または以前の OCR 呼び出しのimage_idで送ります。 1 つのリクエストで使えるのはこのうち 1 つだけです。- 1 回の編集で最大 20 件の置き換え。
各アップロード方法のエンコード、EXIF、透過、結果ファイルについては画像をご覧ください。
安全なリトライ
すべての POST /edits に Idempotency-Key ヘッダーを付けると、タイムアウトやネットワークエラーの後でも安全にリトライできます。
24 時間以内に同じキーを繰り返すと、新しいジョブを作って課金する代わりに、元のジョブの id と現在のステータス
(すでに processing や完了の場合もあります)とともに 202 を返します。本文が異なっていても同じです。
キーはアカウント単位で、そのアカウントのすべての API キーで共有されます。拒否されたリクエスト(4xx や 5xx)はキーを消費しないので、
修正したあと同じキーで再送できます。