メインコンテンツへスキップ
Benzinga API は、API リクエストの成功または失敗を示すために、標準的な HTTP レスポンスコードを使用します。概要は次のとおりです。
  • 2xx: 成功。
  • 4xx: クライアントエラー(例: パラメータ不足、無効なキー)。
  • 5xx: サーバーエラー(Benzinga 側で問題が発生)。
リクエストが成功したかどうかを判断する際は、必ず最初に HTTP ステータスコード を確認してください。レスポンスボディだけに依存しないでください。フォーマットは API エンドポイントごとに異なる場合があります。

HTTP ステータスコード

次の表は、遭遇しうる標準的なステータスコードの一覧です。
CodeStatusDescription
200OKリクエストは正常に処理されました。
400Bad Requestリクエストに問題があります。多くの場合、パラメータの欠如または不正が原因です。
401Unauthorized有効な API Key が指定されていません。Authorization ヘッダーまたは token パラメータを確認してください。
402Request Failedパラメータは有効ですが、ビジネスロジック上の理由によりリクエストが失敗しました。
403ForbiddenAPI Key は有効ですが、このリソースへアクセスする権限がありません。
404Not Foundリクエストされたリソース(例: ID、エンドポイント)が存在しません。
429Too Many Requestsレート制限の上限を超過しています。
500Internal Server ErrorBenzinga のサーバー側で問題が発生しました。これはまれに発生します。
503Service Unavailableサービスは一時的に利用できません(例: メンテナンス)。

エラーレスポンスボディ

HTTP ステータスコードはエラーの主な指標ですが、レスポンスボディにはデバッグに役立つ詳細情報が含まれていることがよくあります。このボディの形式は、どの API を呼び出すかによって異なる場合があります。

フォーマット 1: シンプルなエラーメッセージ

多くのエンドポイント(News API など)は、シンプルな文字列、またはメッセージを含むフラットな JSON オブジェクトを返します。
"Invalid or Missing Query Parameters"
または
{
  "message": "Invalid page size"
}

フォーマット 2: 構造化エラーオブジェクト

新しい API(Data API Proxy やファンダメンタルズなど)は、エラーの一覧を含む構造化されたオブジェクトを返します。
{
  "data": null,
  "errors": [
    {
      "code": "database_query_error",
      "id": "ERR_12345",
      "value": "シンボルのデータを取得できません: INVALID"
    }
  ],
  "ok": false
}

プログラムでエラーを処理する

レスポンスボディにばらつきが生じる可能性があるため、堅牢なエラー処理を行うことを推奨します。
  1. HTTP ステータスコードを確認します。 >= 400 の場合はエラーとして扱います。
  2. レスポンスボディをログに記録します。 デバッグ目的でボディ全体をログに出力します。
  3. 汎用的なメッセージを表示します。 特定のエンドポイントと連携しておらず、その正確なエラー形式を把握していない場合は、ステータスコードとあわせてエンドユーザーに汎用的な「Something went wrong」メッセージを表示します。