---
title: API エラー
description: 構造化されたエラー形式、リクエスト ID、HTTP ステータスの分類、安定したコード、再試行の条件を扱います。
species: reference
---
# API エラー

API のすべての失敗は、共通の形式を使用します。メッセージ本文ではなく、`error.code` に基づいて分岐してください。

```json
{
  "error": {
    "type": "invalid_request_error",
    "code": "parameter_missing",
    "message": "Missing required parameter.",
    "param": "sql",
    "doc_url": "https://api.supernova.ai/docs#parameter_missing",
    "request_id": "req_..."
  }
}
```

`Request-Id` レスポンスヘッダーには、`request_id` と同じ値が入ります。サポートへのお問い合わせに含めてください。`param` は、特定の入力を 1 つ指し示せる場合にのみ含まれます。

## ステータスの分類

| ステータス | 意味 | 再試行 |
|---|---|---|
| `400` | 無効な入力、または許可されない機能 | リクエストを変更 |
| `401` | 認証情報がない、形式が不正、有効期限切れ、または失効済み | 認証情報を更新または置き換え |
| `403` | 認証済みだが、スコープまたはロールが不足 | 適切なアクセス権を申請 |
| `404` | リソースが存在しない、またはこの組織からは非表示 | 別のテナントでの存在を推測しない |
| `409` | 現在の状態が操作と競合 | 現在の状態を読み取ってから判断 |
| `429` | 呼び出し元、組織、または同時実行数の制限 | `Retry-After` に従う |
| `500` | 予期しないサーバーの失敗 | リクエストが冪等であれば、間隔を延ばして再試行 |
| `503` | 必要なサービスが利用不可 | 間隔を延ばして再試行 |

## 主なコード

| コード | 意味 |
|---|---|
| `invalid_json` | 本文が有効な JSON ではない |
| `parameter_missing` | 必須の入力がない |
| `invalid_cursor` | カーソルが対応するコレクションのものではない |
| `invalid_format` | 要求された表現形式に未対応 |
| `authentication_required` | ベアラー認証情報がない |
| `invalid_token` | 認証情報の検証に失敗 |
| `insufficient_scope` | 認証情報にエンドポイントのスコープがない |
| `rate_limited` | リクエストのレート制限を超過 |
| `idempotency_key_reused` | キーが異なる入力に紐づいている |
| `query_not_found` | この組織ではクエリを利用不可 |
| `job_not_found` | この組織ではジョブを利用不可 |
| `catalog_not_found` | スキーマまたはテーブルが存在しない、または非表示 |
| `source_not_found` | ソースが存在しない、または非表示 |
| `send_not_found` | 送信またはその配下の実行が存在しない、または非表示 |

各リソースのページには、操作ごとに、その操作が返す追加のコードを記載しています。
