# Bitwarden 公開 API

Bitwarden公開APIは、メンバー、コレクション、グループ、イベントログ、およびポリシーの管理のためのツールセットを組織に提供します。

> [!NOTE] Management of vault items in CLI
> このAPIは、個々の保管庫アイテムの管理を許可していません。これがあなたが達成する必要があることであれば、代わりに[保管庫管理 API](https://bitwarden.com/ja-jp/help/cli/#serve/)を使用してください。

公開 APIは、予測可能なリソース指向のURLを持つRESTful APIであり、JSON形式のリクエストボディを受け入れ、JSON形式のレスポンスを返し、標準的なHTTPレスポンスコード、認証、および動詞を使用します。

公開 APIはOpenAPI Specification（OAS3）と互換性があり、準拠した[swagger.json](https://bitwarden.com/ja-jp/help/api/specs/public/swagger.json/)定義ファイルを公開します。Swagger UIを使用してOpenAPI仕様を探索してください:

- パブリッククラウドホストのインスタンスのために: `https://bitwarden.com/help/api/`
- 自己ホスト型のインスタンスの場合：`https://your.domain.com/api/docs/`

> [!NOTE] Public API access
> Bitwarden公開APIへのアクセスは、すべてのエンタープライズおよびチーム組織の顧客に利用可能です。詳細については、[Bitwardenプランについて](https://bitwarden.com/ja-jp/help/password-manager-plans/)をご覧ください。

## エンドポイント

### ベースURL

クラウドホスト用、`https://api.bitwarden.com` または `https://api.bitwarden.eu`。

自己ホスト型の場合、`https://your.domain.com/api`。

### 認証エンドポイント

クラウドホストの場合、`https://identity.bitwarden.com/connect/トークン` または `https://identity.bitwarden.eu/connect/トークン`。

自己ホスト型の場合、`https://your.domain.com/ID/connect/トークン`。

## 認証

APIは、保護されたAPIエンドポイントで認証するためにベアラーアクセストークンを使用します。Bitwardenは、エンドポイントからbearerアクセストークンを付与するために、[OAuth2クライアント資格](https://www.oauth.com/oauth2-servers/access-tokens/client-credentials/)アプリケーションリクエストフローを使用します。認証リクエストは、必須パラメータとして`client_id`と`client_secret`を取ります。

> [!NOTE] API key authentication
> 公開 API に認証するために使用される API キーは、**同じではありません** [個人の API キー](https://bitwarden.com/ja-jp/help/personal-api-key/)と。組織APIキーは、形式が`client_id`で、`"組織.ClientId"`となります。一方、個人のAPIキーは、形式が`client_id`で、`"user.clientId"`となります。

APIキー`client_id`と`client_secret`は、所有者が管理者コンソールの保管庫にアクセスし、**設定**→**組織情報**画面に移動し、**APIキー**セクションまでスクロールダウンすることで取得できます。

![組織のAPIキーを取得します](https://bitwarden.com/assets/1Mq824Xunm2wmzd8f905AJ/792cca9c6edddee71abfc350479ec813/Screenshot_2024-02-28_at_2.43.34_PM.png)

所有者として、APIキーを管理者や他のユーザーと共有したい場合は、[Bitwarden Send](https://bitwarden.com/ja-jp/help/about-send/)のような安全な通信方法を使用してください。

> [!NOTE] Rotate API key
> あなたの組甔のAPIキーは、あなたの組織への完全なアクセスを可能にします。あなたのAPIキーを秘密に保ってください。あなたのAPIキーが侵害されたと思われる場合、この画面で**設定>組織情報>** **APIキーをロテート**ボタンを選択してください。あなたの現在のAPIキーのアクティブな実装は、使用する前に新しいキーで再設定する必要があります。

### ベアラーアクセストークン

Bearerアクセストークンを取得するには、`POST`リクエストを`Content-Type: application/x-www-form-urlencoded`で、あなたの`client_id`と`client_secret`を使用して[認証エンドポイント](https://bitwarden.com/ja-jp/help/public-api/#authentication-endpoints/)に送信します。組織管理のためのAPIを使用するときは、常に`grant_type=client_credentials`と`scope=api.organization`を使用します。例えば：

```
curl -X POST \
 https://identity.bitwarden.com/connect/token \
 -H 'Content-Type: application/x-www-form-urlencoded' \
 -d 'grant_type=client_credentials&scope=api.organization&client_id=<ID>&client_secret=<SECRET>'
```

この要求は次の応答を引き起こします:

```
{
 "access_token": "<TOKEN>",
 "expires_in": 3600,
 "token_type": "Bearer"
}
```

このレスポンスでは、`3600`は有効期限の値（秒単位）を表し、これはこのトークンが発行されてから60分間有効であることを意味します。期限切れのトークンでAPI呼び出しを行うと、`401 Unauthorized` [レスポンスコード](https://bitwarden.com/ja-jp/help/public-api/#response-codes/)が返されます。

## コンテンツタイプ

Bitwarden 公開 API は、`application/json` のリクエストとレスポンスで通信しますが、一つ例外があります：

[認証エンドポイント](https://bitwarden.com/ja-jp/help/public-api/#authentication-endpoints/)は`application/x-www-form-urlencoded`のリクエストを期待していますが、`application/json`で応答します。

## サンプルリクエスト

```
curl -X GET \
 https://api.bitwarden.com/public/collections \
 -H 'Authorization: Bearer <TOKEN>'
```

``は、取得した`ベアラーアクセストークン`の中で[access_token:](https://bitwarden.com/ja-jp/help/public-api/#bearer-access-tokens/)キーの値です。

この要求は応答を引き起こします：

```
{
 "object": "list",
 "data": [
 {
 "object": "event",
 "type": 1000,
 "itemId": "string",
 "collectionId": "string",
 "groupId": "string",
 "policyId": "string",
 "memberId": "string",
 "actingUserId": "string",
 "date": "2020-11-04T15:01:21.698Z",
 "device": 0,
 "ipAddress": "xxx.xx.xxx.x"
 }
 ],
 "continuationToken": "string"
}
```

## 状態

Bitwardenには公開[ステータスページ](https://status.bitwarden.com)があり、すべてのサービスのサービスヘルスとインシデントの情報、公開APIを含むことができます。

## レスポンスコード

Bitwarden 公開 APIは、APIリクエストの成功または失敗を示すために、従来のHTTPレスポンスコードを使用します。

| **ステータスコード** | **説明** |
|------|------|
| `200 OK` | すべてが予想通りに機能しました。 |
| `400 バッドリクエスト` | 要求は受け入れられませんでした。おそらく、欠落しているか形式が正しくないパラメーターが原因です。 |
| `401 認証が必要です` | 保有者のアクセストークンが不足している、無効である、または期限切れでした。 |
| `404 ページが見つかりません` | 要求されたリソースは存在しません。 |
| `429 リクエストが多すぎます` | あまりにも多くのリクエストがAPIに高速でヒットしました。リクエストの数値を減らすことをお勧めします。 |
| `500、502、503、504 サーバーエラー` | Bitwardenの端で何かが間違ってしまいました。これらは稀ですが、[お問い合わせください](https://bitwarden.com/ja-jp/contact/)もし発生した場合。 |

## さらなる読み物

Bitwarden 公開 API の使用に関する詳細情報は、以下の記事をご覧ください:

- [Bitwarden 公開 API OAS 仕様](https://bitwarden.com/ja-jp/help/api/)
- [イベントログ](https://bitwarden.com/ja-jp/help/event-logs/)