API リファレンス
エラー
エラーレスポンスの構造、すべてのエラーコード、再試行のタイミング。
レスポンス構造#
{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "Not enough credits.",
"request_id": "a698a9af-0685-4557-9b29-ca57637748f9",
"details": { "top_up_url": "https://scifig.ai/pricing?utm_source=api" }
}
}分岐には error.code と details.reason を使用し、変更される可能性のある message は使わないでください。レスポンスには内部診断情報を含みません。
コード#
| コード | HTTP | 意味 | 再試行 |
|---|---|---|---|
| UNAUTHORIZED | 401 | 認証情報が未指定または無効です。 | 不可。リクエストを変更、または新しいキーを使用 |
| ACCOUNT_UNAVAILABLE | 401 | このアカウントは API を利用できません。 | 不可。リクエストを変更、または新しいキーを使用 |
| SCOPE_DENIED | 403 | この認証情報に必要な権限がありません。 | 不可。リクエストを変更、または新しいキーを使用 |
| INVALID_REQUEST | 400 | リクエストが無効です。 | 不可。リクエストを変更、または新しいキーを使用 |
| IDEMPOTENCY_KEY_REQUIRED | 400 | Idempotency-Key ヘッダー(表示可能な ASCII 文字 1~255 文字)が必要です。 | 不可。リクエストを変更、または新しいキーを使用 |
| IDEMPOTENCY_CONFLICT | 409 | この Idempotency-Key は別のリクエストですでに使われています。 | 不可。リクエストを変更、または新しいキーを使用 |
| IDEMPOTENCY_IN_PROGRESS | 409 | この Idempotency-Key のリクエストはまだ処理中です。 | 可。同じ Idempotency-Key を使用 |
| NOT_FOUND | 404 | 見つかりません。 | 不可。リクエストを変更、または新しいキーを使用 |
| REVISION_CONFLICT | 409 | グラフまたはフローチャートのジョブを今は編集できません:NOT_LATEST_REVISION、EDIT_IN_PROGRESS、または親ジョブの実行中を示す PARENT_JOB_RUNNING。 | PARENT_JOB_RUNNING の場合のみ、Retry-After 後に同じキーで再試行。それ以外は最新バージョンを新しいキーで編集 |
| PAYLOAD_TOO_LARGE | 413 | リクエスト本文が大きすぎます。 | 不可。リクエストを変更、または新しいキーを使用 |
| INSUFFICIENT_CREDITS | 402 | クレジットが不足しています。 | 不可。リクエストを変更、または新しいキーを使用 |
| CONTENT_REJECTED | 422 | コンテンツポリシーがリクエストを拒否しました。作成時は 422、タスク実行中は失敗したジョブの error.code で返します。どちらも返金されます。 | 不可。プロンプトまたは入力を変更し、新しいキーを使用 |
| PLAN_REQUIRED | 403 | 現在のプランではこのオプションを利用できません。 | 不可。リクエストを変更、または新しいキーを使用 |
| RATE_LIMITED | 429 | リクエスト数、1 時間のタスク数、1 日の変換数、またはアップロード数が上限を超えています。details.reason が該当する制限を示します。 | 可。同じ Idempotency-Key を使用 |
| CONCURRENCY_LIMITED | 429 | このアカウントで実行中のタスクが多すぎます。 | 可。同じ Idempotency-Key を使用 |
| SERVICE_UNAVAILABLE | 503 | サービスは一時的に利用できません。同じ Idempotency-Key で再試行してください。 | 可。同じ Idempotency-Key を使用 |
| TASK_FAILED | 502 | タスクが失敗し、クレジットは返還されました。再試行するには、新しい Idempotency-Key で新しいリクエストを送信してください。 | 不可。リクエストを変更、または新しいキーを使用 |
| INTERNAL_ERROR | 500 | 内部エラー。 | 可。同じ Idempotency-Key を使用 |
INVALID_REQUEST には、情報がある場合に details.reason、details.field、details.issues が含まれることがあります。本文が上限(JSON は 256 KB、アップロードはファイル別上限)を超えると 413 PAYLOAD_TOO_LARGE を返します。details.top_up_url は INSUFFICIENT_CREDITS のみに含まれます。作成リクエストがジョブ作成後に失敗した場合(429、503、409 IDEMPOTENCY_IN_PROGRESS、500 INTERNAL_ERROR)、details.job_id がそのジョブを示します。同じ Idempotency-Key で再試行するか、GET /jobs/{job_id} でポーリングし、新しいキーは使わないでください。
失敗したジョブ内のコード#
作成後に失敗したジョブは status: "failed" と error オブジェクトを返します。拒否されたリクエストに使う上記コード以外に、error.code は次の値を取ります:
| error.code | 意味 | 対処方法 |
|---|---|---|
| TASK_TIMED_OUT | タスクがタイムアウトし、返金されました。科学図表の生成・編集には late_delivery_until が含まれる場合があり、その時刻までは無料で結果が届く可能性があります。 | late_delivery_until までジョブを読み続ける。それ以外は新しいキーで新しいリクエストを送信 |
| CONTENT_REJECTED | タスクの実行中にコンテンツポリシーが結果を拒否しました。返金済みです。作成時にリクエスト自体が拒否された場合も、同じコードを 422 で返します。 | プロンプトまたは入力を変更し、新しいキーを使用 |
| ADMISSION_INCOMPLETE | 再試行可能なエラーにより、ジョブは開始されませんでした。クレジットは使用していません。 | 同じリクエストを同じ Idempotency-Key で送信 |
| TASK_NOT_FOUND | ジョブは受け付けられましたが、対応するタスクが見つからなくなりました。 | 新しいキーで新しいリクエストを送信 |
| TASK_FAILED | タスクが失敗し、返金されました。固有の公開コードがないエンジン障害はすべて TASK_FAILED になり、エンジンのコードは details.reason に含まれます。 | 新しいキーで新しいリクエストを送信 |
| INTERNAL_ERROR | 理由が報告されずにタスクが失敗しました。返金済みです。 | 新しいキーで新しいリクエストを送信 |
429 の原因#
- リクエスト数の超過:作成は認証情報ごとに 1 分 20 件、アカウントごとに 40 件、読み取りは認証情報ごとに 1 分 120 件。
Retry-Afterは枠のリセットまでの時間です。details.reasonは含まれません。 - 直近 1 時間に開始したタスク数の超過:アカウントごとに最大 200 件、ウェブサイトと共有。
Retry-After: 30。 - 実行中タスク数の超過:
429 CONCURRENCY_LIMITED。プラン別で、ウェブサイトと共有(GET /creditsを参照)。Retry-After: 30。 - 無料の PNG・PDF・TIFF・PPTX 変換、1 日 200 回の枠を使い切りました。
details.reason = DAILY_CONVERSION_LIMITと、日次枠リセットまでのRetry-Afterを返します。 - アップロードの頻度超過:
details.reason = UPLOAD_RATE_LIMITED。POST /filesの画像・マスク、フローチャートの添付、グラフのデータに、ウェブサイトの分ごとの上限を適用します。 - 1 日のアップロード数の超過:
details.reason = UPLOAD_DAILY_LIMIT_REACHED。フローチャートの添付とグラフのデータに、ウェブサイトの日次上限を適用します。 - 文字検出:アカウントごとに 15 分間で 20 回、ウェブサイトと共有。