エラーコード & ステータスリファレンス
Smart Money APIのエラーコード、HTTPステータスコード、トラブルシューティング手順を網羅したガイド。エラーレスポンスを理解し、統合問題を迅速に解決。
2xx 成功コード
成功レスポンスはリクエストが正常に処理されたことを示します。
| コード | ステータス | 意味 |
|---|---|---|
| 200 | OK | リクエスト成功。レスポンスボディに要求されたデータが含まれます。 |
| 201 | Created | リソースが正常に作成されました。レスポンスには新規リソースが含まれます。 |
| 204 | No Content | リクエストは成功しましたが、返すコンテンツがありません(例:DELETE)。 |
200レスポンスの例
JSON
{
"success": true,
"data": {
"total": 42,
"positions": [...],
"pagination": {
"page": 1,
"limit": 50
}
},
"timestamp": "2026-03-21T14:35:22Z"
}
4xx クライアントエラーコード
クライアントエラーはリクエストが不正または無効であることを示します。リクエストを修正して再試行してください。
| コード | ステータス | 原因 |
|---|---|---|
| 400 | Bad Request | 不正なリクエスト構文。クエリパラメータ、ヘッダー、リクエストボディを確認してください。 |
| 401 | Unauthorized | 認証情報が不足しているか無効です。APIキーまたはJWTトークンを確認してください。 |
| 402 | Payment Required | サブスクリプションの支払いに失敗しました。アカウントの請求情報を更新してください。 |
| 403 | Forbidden | 認証されていますが、このリソースへのアクセス権限がありません。お使いのプランにはこの機能が含まれていません。 |
| 404 | Not Found | リソースが存在しません。エンドポイントURLとパラメータを確認してください。 |
| 429 | Too Many Requests | レート制限を超えました。再試行前に待機してください。Retry-Afterヘッダーを確認してください。 |
| 422 | Unprocessable Entity | バリデーションに失敗しました。リクエストパラメータが無効または必須フィールドが不足しています。 |
認証エラーの例
APIキー不足 (401)
JSON
{
"success": false,
"error": {
"code": "AUTH_MISSING_KEY",
"message": "認証情報が提供されていません。",
"resolution": "AuthorizationヘッダーにAPIキーを含めてください: Authorization: Bearer sk_live_..."
},
"timestamp": "2026-03-21T14:35:22Z"
}
無効なAPIキー (401)
JSON
{
"success": false,
"error": {
"code": "AUTH_INVALID_KEY",
"message": "無効または期限切れのAPIキーです。",
"resolution": "https://smartmoneyapi.com/console から新しいAPIキーを生成してください"
},
"timestamp": "2026-03-21T14:35:22Z"
}
レート制限 (429)
APIクォータを超えると、サーバーは429 Too Many Requestsを返します。レート制限情報についてはレスポンスヘッダーを確認してください:
HTTPヘッダー
X-Requests-Remaining: 0
X-Requests-Limit: 200
X-Requests-Reset: 1711116922
Retry-After: 3600
レート制限エラーレスポンス
JSON
{
"success": false,
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "1日のAPIリクエスト制限(10回)を超えました。",
"resolution": "Traderプラン(月額$29、400リクエスト/日)またはProプラン(月額$79、4,000リクエスト/日)にアップグレードしてください。",
"reset_at": "2026-03-22T09:00:00Z"
},
"timestamp": "2026-03-21T14:35:22Z"
}
バリデーションエラー (422)
バリデーションエラーは、リクエストパラメータが無効または必須フィールドが不足している場合に発生します。
JSON
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "リクエストのバリデーションに失敗しました。",
"details": [
{
"field": "symbol",
"error": "無効な取引ペアです。正しい形式: BTCUSDT"
},
{
"field": "min_position_size",
"error": "正の数値でなければなりません"
}
],
"resolution": "バリデーションエラーを修正して再試行してください。"
},
"timestamp": "2026-03-21T14:35:22Z"
}
5xx サーバーエラーコード
サーバーエラーは当社側の問題を示します。これらは一時的なもので、通常は迅速に解決されます。指数バックオフによる再試行ロジックを実装してください。
| コード | ステータス | 対応 |
|---|---|---|
| 500 | Internal Error | 予期せぬサーバーエラー。指数バックオフで再試行してください。 |
| 502 | Bad Gateway | 一時的なサービス中断。数秒後に再試行してください。 |
| 503 | Service Unavailable | メンテナンスまたは一時的な停止中。ステータスページを確認し、Retry-After間隔後に再試行してください。 |
| 504 | Gateway Timeout | リクエストがタイムアウトしました。サーバーは処理を完了した可能性があります。冪等性を確認してください。 |
サーバーエラーの例 (503)
JSON
{
"success": false,
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "メンテナンスのためサービスが一時利用不可です。",
"resolution": "5分後に再試行してください。ステータスは https://status.smartmoneyapi.com で確認できます"
},
"timestamp": "2026-03-21T14:35:22Z"
}
トラブルシューティングガイド
401 Unauthorized - 無効なAPIキー
問題: APIキーがあるにも関わらず401エラーが発生する。
解決策:
- Authorizationヘッダーに"Bearer"プレフィックス付きでAPIキーが含まれていることを確認
- APIキーが期限切れまたは無効化されていないか確認
- 正しいキー(本番、ステージング、開発)を使用していることを確認
- 現在のキーが失われた場合はコンソールから新しいAPIキーを生成
403 Forbidden - 利用不可機能
問題: 特定のエンドポイントで403エラーが発生する。
解決策:
- APIティアを確認。一部エンドポイントにはTraderまたはProプランが必要
- /pricing.html でプランをアップグレードしプレミアム機能にアクセス
- APIキーに必要なスコープが有効か確認
- アクセス権があるはずの場合サポートに連絡
429 Too Many Requests - レート制限
問題: 429エラーが発生しレート制限にかかる。
解決策:
- 指数バックオフ再試行ロジックを実装(1秒、2秒、4秒待機など)
- 冗長なAPI呼び出しを避けるためレスポンスをキャッシュ
- RESTエンドポイントのポーリングではなくWebSocketでリアルタイムデータを取得
- より高いクォータのためにプランをアップグレード(Trader 1,000/日、Pro 5,000/日)
- 可能な場合複数クエリを1リクエストにバッチ処理
400 Bad Request - 無効なパラメータ
問題: 不正なリクエストで400エラーが発生する。
解決策:
- 必須およびオプションパラメータについてAPIドキュメントを確認
- パラメータタイプを確認(文字列 vs 数値、配列 vs オブジェクト)
- JSONが有効かつ適切にフォーマットされていることを確認
- 適切なパスパラメータを含む正しいエンドポイントURLを使用
- クエリパラメータ名のタイプミスを確認してください
5xx サーバーエラー - 一時的な停止
問題: 500、502、503、または504エラーが発生しています。
解決方法:
- サービスステータスを https://status.smartmoneyapi.com で確認してください
- 指数バックオフによる自動リトライを実装してください(最大5~10回)
- 503エラーの場合は30~60秒待ってから再試行してください
- Retry-Afterヘッダーを使用して再試行のタイミングを決定してください
- インシデント通知のためにステータスページを購読してください
エラーレスポンス形式
すべてのエラーレスポンスは一貫した形式に従います:
JSON
{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "人間が読めるエラーメッセージ",
"details": {...},
"resolution": "問題を解決する手順"
},
"timestamp": "2026-03-21T14:35:22Z"
}