> ## 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.

# 認証

> 開発者コンソールでAPI Keyを発行し、`x-sup-api-key`ヘッダーですべてのSupertone APIリクエストを認証します。

<Note>
  このドキュメントは英語の原文から自動翻訳されています。表現に不自然な箇所がある場合があります。正確な内容は[英語の原文](/en/docs/authentication)もあわせてご確認ください。
</Note>

Supertone APIは、カスタムヘッダーで送信されるAPI Keyによってリクエストを認証します。Keyは開発者コンソールから発行され、アカウントに紐付けられます。

## Keyを発行する

1. [console.supertoneapi.com](https://console.supertoneapi.com)にサインインします。
2. **API Keys**を開き、**Create new key**をクリックします。
3. Keyをコピーします。Keyは一度しか表示されません。ソースコードではなく、環境変数として保存してください。

```bash theme={"dark"}
export SUPERTONE_API_KEY="Kp9mZ3xQ7v..."
```

<Note>
  1つのアカウントにつき**最大3つのアクティブなAPI Key**を保有できます。Keyが流出した場合は、コンソールから廃棄して再発行してください。
</Note>

## リクエストを認証する

すべての呼び出しで、`x-sup-api-key`リクエストヘッダーにKeyを含めてください。

<Tabs>
  <Tab title="Python">
    SDKはコンストラクタからKeyを読み込みます。環境変数と接続してください。

    ```python theme={"dark"}
    import os
    from supertone import Supertone

    client = Supertone(api_key=os.environ["SUPERTONE_API_KEY"])
    ```
  </Tab>

  <Tab title="TypeScript">
    ```typescript theme={"dark"}
    import { Supertone } from "@supertone/supertone";

    const client = new Supertone({ apiKey: process.env.SUPERTONE_API_KEY });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={"dark"}
    curl https://supertoneapi.com/v1/voices \
      -H "x-sup-api-key: $SUPERTONE_API_KEY"
    ```
  </Tab>
</Tabs>

## 認証エラー

| ステータス              | 発生条件                                                            |
| ------------------ | --------------------------------------------------------------- |
| `401 Unauthorized` | `x-sup-api-key`ヘッダーが欠落している、不正な形式である、またはアクティブなKeyと一致しません。        |
| `403 Forbidden`    | Keyは有効ですが、リソースへのアクセス権限がありません。例えば、別アカウントに属するクローンボイスを呼び出した場合などです。 |

完全なエラー一覧と推奨対応については[エラー処理](/ja/docs/production/error-handling)を参照してください。

## セキュリティチェックリスト

* **クライアント側のコードにKeyを埋め込まないでください。** モバイルアプリ、シングルページアプリ、ブラウザ拡張機能などは、Keyを保持する自前のバックエンドを呼び出す形にしてください。
* **環境変数**、シークレットマネージャー、またはキーボルトサービスを利用してください。Keyをgitにコミットしたり、ログに出力したりしないでください。
* 流出が疑われる場合は**直ちにKeyをローテーション**してください。コンソールから廃棄し、再発行し、再デプロイします。
* **サービス単位でKeyを分けてください。** 複数のアプリを運用している場合は、Keyを分けて発行することで、利用量を切り分けたり、個別に廃棄したりできます。
