エラーコードと対処
APIエラーの理解と対処
エラーレスポンス形式
すべてのエラーレスポンスは統一された形式を使用します:
{
"error": {
"code": "ERROR_CODE",
"message": "人間が読めるエラーメッセージ",
"details": "追加のコンテキスト(オプション)"
}
} 💡 error.codeを安定した分岐条件として使用してください(messageは変更される可能性があります)
HTTPステータスコード
200 OK
リクエスト成功
201 作成成功
リソースが正常に作成されました
400 不正なリクエスト
リクエストパラメータが無効です
{
"code": "INVALID_REQUEST",
"message": "無効なリクエスト形式"
} 401 未認証
未認証または無効なAPIキー
{
"code": "UNAUTHORIZED",
"message": "無効または期限切れのAPIキー"
} 403 禁止
アカウント残高または権限が不足しています
{
"code": "INSUFFICIENT_BALANCE",
"message": "アカウント残高が不足しています"
} 404 未検出
リソースが見つかりません
{
"code": "ORDER_NOT_FOUND",
"message": "注文が見つかりません"
} 409 競合
リソースの競合
{
"code": "ADDRESS_EXISTS",
"message": "アドレスは既に存在します"
} 429 リクエスト過多
APIキーのリクエストレート制限を超えました
{
"code": "RATE_LIMITED",
"message": "レート制限を超えました"
} 500 内部サーバーエラー
内部サーバーエラー
{
"code": "INTERNAL_ERROR",
"message": "予期しないエラーが発生しました"
} 503 サービス利用不可
サービスが一時的に利用できません(メンテナンス中)
{
"code": "SERVICE_UNAVAILABLE",
"message": "サービスは一時的に利用できません"
} 一般的なエラーコード
| Error Code | Status | Description | Solution |
|---|---|---|---|
| UNAUTHORIZED | 401 | APIキーが無効、期限切れ、または取り消されています | APIキーが正しいか確認し、必要に応じて新しいキーを作成してください |
| INSUFFICIENT_BALANCE | 403 | アカウント残高が不足しています | アカウント残高をチャージしてください |
| INVALID_ADDRESS | 400 | 無効なTRONアドレス形式 | アドレスが有効なTRONアドレス(Tで始まる)か確認してください |
| INVALID_ENERGY_AMOUNT | 400 | 無効なエネルギー量 | エネルギー量は正の整数である必要があります。USDT送金には65000を推奨 |
| INVALID_DURATION | 400 | 無効なレンタル期間 | 有効な期間を使用してください: 1H, 1D, 3D, 7D, 14D, 30D |
| ORDER_NOT_FOUND | 404 | 注文が存在しません | 注文IDが正しいか確認してください |
| ADDRESS_EXISTS | 409 | アドレスは既に存在します | アドレスが既に追加されているか確認するか、既存のアドレスを使用してください |
| RATE_LIMITED | 429 | APIキーのリクエストレート制限を超えました(現在はPOST /v1/wallet/rechargesのみに適用) | 指数バックオフリトライを実装するか、呼び出し頻度を減らしてください |
対処方法
| Error | Handling |
|---|---|
| 401 UNAUTHORIZED | APIキーを確認/ローテーション |
| 403 INSUFFICIENT_BALANCE | チャージまたはリクエスト量を減らす |
| 409 ADDRESS_EXISTS | 照会/冪等処理に切り替え |
| 429 RATE_LIMITED | バックオフリトライ(Retry-Afterがあれば従う、なければ指数バックオフ) |
| 5xx | リトライ + リクエストコンテキストをログ |
リトライガイドライン
- • 最大リトライ回数: 3回
- • バックオフ: 指数(1秒、2秒、4秒...)
- • 429/5xxのみリトライ
- • 4xx(クライアントエラー)はリトライしない