Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.supertoneapi.com/llms.txt

Use this file to discover all available pages before exploring further.

このドキュメントは英語の原文から自動翻訳されています。表現に不自然な箇所がある場合があります。正確な内容は英語の原文もあわせてご確認ください。
Supertone APIは標準的なHTTPステータスコードを使用します。エラーは問題を説明するJSONボディを返し、SDKはそれをキャッチして処理できる型付き例外として公開します。

ステータスコードリファレンス

StatusMeaningMost common cause
200 OK成功
400 Bad Request不正なリクエスト必須フィールドの欠落、無効なenum値、textが300文字を超える(生のAPIのみ)、voice_settingsが範囲外。
401 Unauthorized認証失敗x-sup-api-keyが欠落または無効。
402 Payment Requiredクレジット不足クレジット残高がゼロ、またはリクエストに対して不足している。
403 Forbidden権限なし別のアカウントが所有するカスタムボイスを呼び出そうとした、または権限のないキーを使用している。
404 Not Foundリソースが存在しない誤ったvoice_id、エンドポイントパスのタイプミス。
408 Request Timeoutサーバーが時間内に処理できなかった一時的なエラー。リトライしてください。
413 Payload Too Largeアップロードが大きすぎるボイスクローン音声が3 MBを超えている。
415 Unsupported Media Typeアップロード形式が不正ボイスクローン音声がWAV/MP3ではない。
429 Too Many Requestsレート制限超過レート制限を参照してください。
500 Internal Server Errorサーバー側の問題通常は一時的なものです。バックオフを伴うリトライを行ってください。

SDKのエラークラス

両方のSDKは各ステータスコードを型付きエラークラスにマッピングします。文字列を解析するよりも、特定のクラスをキャッチする方がクリーンです。
from supertone import errors

try:
    response = client.text_to_speech.create_speech(...)
except errors.BadRequestErrorResponse as e:
    # 400 — fix the request
    log.error("Bad request: %s", e.message)
except errors.UnauthorizedErrorResponse:
    # 401 — re-check the API key
    rotate_key_and_retry()
except errors.PaymentRequiredErrorResponse:
    # 402 — alert the user / billing system
    notify_low_credits()
except errors.ForbiddenErrorResponse:
    # 403 — wrong voice for this account
    fallback_to_preset_voice()
except errors.TooManyRequestsErrorResponse:
    # 429 — back off and retry
    backoff_and_retry()
except errors.InternalServerErrorResponse:
    # 500 — retry transient failure
    retry_with_backoff()
except errors.SupertoneError as e:
    # Any other API-level error
    log.exception("Supertone API error: %s", e.message)
すべてのSDKエラーは以下を公開します。
PropertyDescription
messageサーバーから提供されるエラーメッセージ。
status_code / statusCodeHTTPステータスコード。
headersレスポンスヘッダー。
body生のレスポンスボディ文字列。
raw_response / rawResponse基底のHTTPレスポンスオブジェクト。

各エラーへの対応

4xx — クライアント側

CodeRecommended response
400リトライしない。リクエストボディをログに記録し、スキーマの不一致を修正してください。
401キーの値、コンソールでのキーの有効化、およびx-sup-api-keyヘッダーがプロキシで取り除かれていないかを確認してください。
402「クレジット不足」をユーザーに通知し、課金ページへリンクし、ワークフローを停止してください。クレジットを追加せずにリトライしても再度失敗します。
403ボイスがこのアカウントに属していることを確認してください。カスタムボイスはアカウント単位です。
404GET /v1/voicesまたはGET /v1/custom-voicesを呼び出して、voice_idが存在することを確認してください。
413アップロードサイズを縮小してください。モノラルへの再エンコード、ビットレートの低減、または3 MB未満へのトリミングを行います。
415アップロードをWAVまたはMP3として再エンコードしてください。
429リトライとバックオフを参照してください。

5xx — サーバー側

CodeRecommended response
408リトライしてください。通常は一時的です。
500指数バックオフを伴うリトライを行ってください。失敗が継続する場合(5分以上)はサポートにお問い合わせください。

よくある落とし穴

  • POSTリクエストで**Content-Type: application/jsonが欠落**していると400になります。
  • 先頭/末尾に空白が含まれるAPIキー(コピー&ペースト時によく発生)は401になります。
  • 「IDを知っている」場合でも、別のアカウントからカスタムボイスを呼び出す403になります。
  • 生のAPIに300文字を超えるtextを送信すると400になります。長いテキストを自動チャンク分割するにはSDKを使用してください。

関連項目

リトライとバックオフ

429および5xxに対する適切なリトライポリシー。

レート制限

アカウントティア別の制限。