> ## Documentation Index
> Fetch the complete documentation index at: https://novita.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# APIキー

APIキーは、Novita AI へのリクエストを認証します。このページでは、キーの仕組み、キーの作成と保存の方法、そして各環境でキーを継続して利用できるようにする方法について説明します。

このページでは、次のことを行います。

* Bearer APIキーで Novita AI へのリクエストを認証する。
* コンソールから APIキーを作成し、安全に保存する。
* Linux、macOS、Windows でキーを環境変数として設定する。
* キーの有効期間と、OpenAPI が対象とする内容および対象としない内容を理解する。

## 認証

Novita AI は Bearer 認証を使用して API アクセスを認証します。APIキーを次の場所に送信します。 `Authorization` リクエストヘッダー:

```
Authorization: Bearer <API Key>
```

リクエストの例:

```bash theme={"system"}
curl "https://api.novita.ai/openai/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $NOVITA_API_KEY" \
  -d '{
    "model": "deepseek/deepseek-r1",
    "messages": [{"role": "user", "content": "Hello"}]
  }'
```

## APIキーを作成する

<Steps>
  <Step title="Key Managementを開く">
    コンソールの [Key Management](https://novita.ai/settings/key-management?utm_source=getstarted) に移動します.
  </Step>

  <Step title="新しいキーを作成する">
    **Create API Key** を選択し、キーにその目的を反映した名前を付けます。たとえば `production` または `local-testing`.
  </Step>

  <Step title="キーをコピーして保存する">
    完全なキーは作成時に一度だけ表示されます。すぐにコピーし、シークレットマネージャーや環境変数などの安全な場所に保存してください。紛失した場合、復元することはできません — 代わりに新しいキーを作成してください。
  </Step>
</Steps>

<Note>
  必要に応じて、キーが呼び出しを許可されるモデルを制限できます。[API キーのモデルアクセス](/docs/ja/guides/llm-model-access).
</Note>

## キーの形式と有効性

* すべてのキーは次で始まります `sk_` プレフィックス。
* キーは作成時に一度だけ完全な形で表示されます。その後、コンソールにはマスクされた形式で表示されます。
* キーは作成されると無期限に有効です。コンソールで削除するまで動作し続けます。
* 各アカウントは最大 **10** 個の API キーを作成できます。

## OpenAPI の対象範囲

API キーの作成と削除はコンソールでのみ行います。Novita OpenAPI には、キーを作成または削除するためのエンドポイントは含まれていません。

キー関連の OpenAPI エンドポイントは、キーの一覧表示とキーのモデルアクセスポリシーの管理を対象としています:

* [API キーを一覧表示](/docs/ja/api-reference/key-list-with-model-access) — チームのキーを一覧表示し、任意でモデルアクセスの概要を含めます。
* [API キーのモデルアクセスポリシーを取得](/docs/ja/api-reference/key-get-model-access-policy) — 単一キーのモデルアクセスポリシーを読み取ります。
* [APIキーのモデルアクセスポリシーを設定](/docs/ja/api-reference/key-put-model-access-policy) — キーのモデルアクセスポリシーを設定または更新します。
* [API キーのモデルアクセスポリシーをリセット](/docs/ja/api-reference/key-delete-model-access-policy) — キーのモデルアクセス ポリシーをデフォルトにリセットします。これによりリセットされるのはポリシーのみで、キー自体は削除されません。

## キーを環境変数として保存する

ソースコードにキーをハードコードすると、たとえばそのファイルをコミットしたときに漏えいするリスクがあります。キーは、たとえば `NOVITA_API_KEY` コードに含めずに済みます。

### 一時的 vs. 永続的

A key set with `export` (Linux/macOS) または `set` (Windows) は現在のターミナルセッションの間だけ有効で、閉じると消えます。簡単なテストにはそれで問題ありません。セッションをまたいでキーを保持するには、以下のように永続的に設定し、その後、新しいターミナルを開いて変更を反映させます。

<CodeGroup>
  ```bash Linux theme={"system"}
  # Temporary: current session only
  export NOVITA_API_KEY="<Your API Key>"

  # Permanent: append to your shell profile, then reload
  echo 'export NOVITA_API_KEY="<Your API Key>"' >> ~/.bashrc
  source ~/.bashrc
  ```

  ```bash macOS theme={"system"}
  # Temporary: current session only
  export NOVITA_API_KEY="<Your API Key>"

  # Permanent: append to your shell profile, then reload
  # Newer macOS uses zsh (~/.zshrc); older setups use bash (~/.bash_profile)
  echo 'export NOVITA_API_KEY="<Your API Key>"' >> ~/.zshrc
  source ~/.zshrc
  ```

  ```powershell Windows theme={"system"}
  # Temporary: current PowerShell session only
  $env:NOVITA_API_KEY = "<Your API Key>"

  # Permanent: persist for the current user, then open a new terminal
  setx NOVITA_API_KEY "<Your API Key>"
  ```
</CodeGroup>

コード内で環境からキーを読み戻します:

<CodeGroup>
  ```python Python theme={"system"}
  import os
  from openai import OpenAI

  client = OpenAI(
      base_url="https://api.novita.ai/openai",
      api_key=os.environ.get("NOVITA_API_KEY"),
  )
  ```

  ```javascript Node.js theme={"system"}
  import OpenAI from "openai";

  const client = new OpenAI({
    baseURL: "https://api.novita.ai/openai",
    apiKey: process.env.NOVITA_API_KEY,
  });
  ```
</CodeGroup>

### 変数は設定されているのに、コードがまだ見つけられない

<AccordionGroup>
  <Accordion title="一時的に設定して、新しいターミナルを開いた">
    で設定されたキーは `export` または `$env:` 実行したターミナルセッション内でのみ有効です。 新しいターミナル、または新しいタブには引き継がれません。 キーを永続的に設定します (`>> ~/.zshrc`, `setx`), または再実行します `export`/`$env:` 使用しているセッション内の行。
  </Accordion>

  <Accordion title="永続的に設定したが再起動していない">
    永続的な変更 (シェルプロファイル, `setx`) は変更後に起動したターミナルに適用されます。新しいターミナルを開き、IDE またはエディターを再起動して、新しい環境を認識させてください。Windows では、 `setx` すでに開いているターミナルには影響しません。
  </Accordion>

  <Accordion title="サービスマネージャーはシェル環境を継承しません">
    によって起動されたプロセス `systemd`, `supervisor`, Docker, または CI runner は、対話型シェルのプロファイルを読み込みません。その変数はサービス独自の設定で設定してください (たとえば、 `systemd` ユニットの `Environment=`, 1つの `docker run -e` フラグ、または CI プロジェクトのシークレット) 内ではなく、 `~/.bashrc`.
  </Accordion>

  <Accordion title="sudo でコマンドを実行しました">
    `sudo` デフォルトでは環境を引き継がないため、ユーザーとしてエクスポートした変数は昇格されたプロセスからは見えません。次を使用してください `sudo -E` 環境を保持するため、または昇格されたコンテキスト内で変数を設定します。
  </Accordion>
</AccordionGroup>

## 関連

* [API キーのモデルアクセス](/docs/ja/guides/llm-model-access) — キーが呼び出せるモデルを制限します。
* [一般的なエラーコード](/docs/ja/guides/error) — 解決する `401` および `403` キーに関連するレスポンス。
* [レート制限](/docs/ja/guides/llm-rate-limits) — アカウントに適用されるリクエストとトークンの制限。
