# APIキー

> API 用のキーを作り、範囲を決め、管理する。

Source: https://reverie.im/ja/docs/integrations/api-keys
Language: ja

API キーは Reverie の[オープン API](https://reverie.im/ja/docs/integrations/open-api) へのリクエストを認証します。キーは**設定 → その他 → APIキー**にあり、Labs の **オープン API** タイルが向かう先もここです。どのアカウントでも作れます——区分の条件もなければ、持てる本数の上限もありません。

## キーを作る \[#create-a-key]

### 「新しいAPIキーを作成」を押す \[#press-create-new-api-key]

ページがまだ空のときは、ボタンの文言が**最初のAPIキーを作成**になっています。

### 名前をつける \[#name-it]

**名前**は必須で、1〜100 文字です。一覧や利用統計でこのキーがどう表示されるかを決めます——「リビングのスピーカー」「staging worker」のように。

### グローバルか特定のキャラクターかを選ぶ \[#choose-global-or-a-specific-character]

**キャラクター選択**は**グローバル**（全キャラクター）と**特定のキャラクター**の二択で、省略できる追加項目ではありません。特定のキャラクターを選ぶと、それがこのキーに固定されたキャラクターになります。

### 必要ならデバイスタイプと有効期限も \[#optionally-set-a-device-type-and-an-expiry]

**デバイスタイプ**は自由入力です（`speaker`、`phone`、`iot`）。**有効期限**は日付*と*時刻の両方を取り、その瞬間にキーは自動的に使えなくなります。

キーはすぐに表示され、`rk_` に続けて 16 進数 64 文字という形です。

## キーはいつでも取り出せます \[#keys-stay-retrievable]

一度きりの表示ではありません。キーが存在するかぎり、そのカードには**API キーを表示**、**API キーを非表示**、**API キーをコピー**がいつでも並んでいます。

> 完全な秘密鍵が設定画面からいつでも読めるということは、アカウントへのアクセスはキーへのアクセスと同じだということです。キーはサーバーかシークレットマネージャーに置き、ソース管理やブラウザのコードには決して置かないでください。

## グローバルなキーと固定されたキー \[#global-keys-and-pinned-keys]

|                     | **グローバル（全キャラクター）** | **特定のキャラクター**                  |
| ------------------- | ------------------ | ------------------------------ |
| `GET /models` が返すもの | 直近のキャラクター          | そのキャラクターのシナリオ、ひとつもなければキャラクター自身 |
| `model` を省略したとき     | 直近のチャットに落ちます       | 固定されたキャラクターを使います               |
| 短いシナリオ ID           | 決して解決しません          | 固定されたキャラクターの中で解決します            |

## 無効化、削除、ローテーション \[#disable-delete-rotate]

| 操作            | 効果                            | 取り消せるか |
| ------------- | ----------------------------- | ------ |
| **アクティブ**のトグル | オフのあいだ、そのキーを使ったリクエストは拒否されます   | はい     |
| **削除**        | キーは破棄され、それを使っているアプリはアクセスを失います | いいえ    |

取り消し専用の操作はありません——無効化と削除の二つだけです。

> キーの削除は取り消せません。しかも、そのキーの実績も一緒に持っていきます。過去のトラフィックは利用統計の**削除済みのキー**のまとまりに移り、どの連携がいくら使ったのかは分からなくなります。履歴が要るかもしれないなら、まずは無効化してください。

ローテーションするときは、代わりのキーを作り、配備してから、古いキーを無効化するか削除します。自動ローテーションはなく、期限切れ後の猶予もありません——期限切れのキーは次のリクエストで `api_key_expired` として拒否されます。

## スコープ \[#scopes]

キーにはスコープがありますが、作成ダイアログはそれを見せません。設定画面で作ったキーが呼べるのはチャット関連のエンドポイントだけです。

キャラクター取り込みのエンドポイントには別のスコープが要り、そういうキーを手に入れる方法は **Labs → キャラクターインポートスキル**を開くことだけです。そこで **Reverie Character Importer (Skill)** という名前のキーが作られます。設定画面の普通のキーで取り込みを呼ぶと 403 が返ります。[キャラクターの取り込み →](https://reverie.im/ja/docs/characters/import-characters)

## 利用統計 \[#usage-statistics]

同じページの**利用統計**パネルは、**リクエスト**、**トークン**、**クレジット**、**アクティブなキー**を UTC の日ごとに区切って表示し、**キー別の利用状況**の下にキーごとの内訳を出します。特定のキーか**すべてのキー**で絞り込め、期間は 7 日から 90 日まで——既定は 30 日です。集計されるのは API 経由で作られたチャットだけです。

キーごとの支出が分かるのはこのパネルだけです。クレジット履歴には各メッセージの費用が残りますが、その取引がどのキーによるものかは書かれていないので、連携どうしを比べるならここの統計を使ってください。

## リクエストを作成 \[#build-a-request]

**リクエストを作成**を押すとジェネレーターが開きます。アクティブなキーを一つ選び、そのキーから見えるキャラクターかシナリオを選び、メッセージを入力し、ストリーミングと temperature を決めれば、そのまま動く cURL、TypeScript、Python をコピーできます。

キーはブラウザ内でキャラクター一覧を読み込むためだけに使われます。生成されるコードは秘密鍵を埋め込まず、環境変数から `REVERIE_API_KEY` を読みます。

## 上限 \[#limits]

| 上限           | 値                |
| ------------ | ---------------- |
| アカウントあたりのキー数 | 制限なし             |
| キーごとのレート制限   | なし               |
| キーごとの同時実行上限  | なし               |
| 実際に使用量を縛るもの  | クレジット残高と、無料モデルの枠 |

## 関連 \[#related]

* [オープン API](https://reverie.im/ja/docs/integrations/open-api) —— エンドポイント、リクエストの形、エラー
* [キャラクターの取り込み](https://reverie.im/ja/docs/characters/import-characters) —— 取り込み用のキーが何のためにあるか
* [Reverie Labs](https://reverie.im/ja/docs/integrations/labs) —— オープン API と取り込みのタイル
* [セキュリティ](https://reverie.im/ja/docs/account/security) —— アカウントのそのほかのアクセス設定
