# 監査ログクエリ

このページでは、APIを通じてアカウントレベルの監査ログをクエリする方法について説明します。時間範囲やオペレーターによるフィルタリングに対応しており、トラブルシューティングやコンプライアンスレビューを目的としています。

## URI

GET /audit_logs

## 権限とレート制限

APIキーには `Audit_Log_Query` 権限が必要です。このエンドポイントはAPIキーごとに1時間あたり最大60回までリクエスト可能です。

## クエリパラメータ

| パラメータ    | 型       | 必須   | デフォルト     | 説明                                                                                                                                                   |
| ------------- | -------- | ------ | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `auditType`   | 文字列   | 任意   | —              | 監査タイプによる完全一致フィルター。例：`PLATFORM_API_KEY_CREATED`。                                                                                     |
| `operator`    | 文字列   | 任意   | —              | オペレーターによるフィルター。許容値：`system`（システム操作）、オーナーのメールアドレス、サブユーザーのメールアドレス、または16文字の英数字のappKey。 |
| `startTime`   | 文字列   | 任意   | —              | クエリ開始時間。`YYYY-MM-DD HH:MM:SS`形式。90日前のUTC午前0時より前は指定できません。                                                                |
| `endTime`     | 文字列   | 任意   | —              | クエリ終了時間。`YYYY-MM-DD HH:MM:SS`形式。現在時刻より後は指定できません。                                                                            |
| `_page`       | 整数     | 任意   | `1`            | ページ番号。最小値は`1`です。                                                                                                                         |
| `_limit`      | 整数     | 任意   | `20`           | 1ページあたりのアイテム数。最小値は`1`です。                                                                                                         |
| `_sort`       | 文字列   | 任意   | `auditTime`    | ソート対象フィールド。                                                                                                                                 |
| `_order`      | 文字列   | 任意   | `desc`         | ソート順。許容値：`asc`、`desc`。                                                                                                                     |

::: warning 時間範囲制限
`startTime` は90日前のUTC午前0時より前を指定できません。これを超えると`400`エラーが返されます。
:::

## リクエスト例

APIキーをユーザー名、APIシークレットをパスワードとしてBasic認証を使用してください。

```bash
curl -u key:secret -X GET "{api}/audit_logs?startTime=2026-04-15%2016:00:00&endTime=2026-04-22%2016:00:00&operator=system&_page=1&_limit=20"
```

## レスポンス例

```json
{
  "items": [
    {
      "auditTime": "2026-04-30 10:30:00",
      "auditType": "PLATFORM_API_KEY_CREATED",
      "ip": "203.0.113.8",
      "description": "Created Platform API Key: xxx.",
      "userType": "api",
      "appKey": "app_k_xxx",
      "subuserID": null,
      "userID": "user_xxx",
      "operator": "app_k_xxx"
    }
  ],
  "meta": {
    "page": 1,
    "limit": 20,
    "count": 37
  }
}
```

## レスポンスフィールド

| フィールド       | 型       | 説明                                                                                               |
| ---------------- | -------- | ------------------------------------------------------------------------------------------------- |
| `auditTime`      | 文字列   | 監査イベントの発生時刻。`YYYY-MM-DD HH:MM:SS`形式。                                              |
| `auditType`      | 文字列   | 監査イベントの種類。                                                                               |
| `ip`             | 文字列   | 操作元のIPアドレス。                                                                               |
| `description`    | 文字列   | 操作の説明。                                                                                       |
| `userType`       | 文字列   | オペレーターの種類。列挙型：`system`、`user`（オーナー）、`subuser`、`api`（APIキー）。            |
| `appKey`         | 文字列   | 操作に使用されたAPIキー。`userType`が`api`の場合のみ存在します。                                  |
| `subuserID`      | 文字列   | サブユーザーID。`userType`が`subuser`の場合のみ存在し、それ以外は`null`です。                      |
| `userID`         | 文字列   | アカウントID。                                                                                     |
| `operator`       | 文字列   | 解決されたオペレーターの表示値：オーナーのメールアドレス、サブユーザーのメールアドレス、`system`、またはappKey。 |

## エラー応答

| HTTPステータス | 説明                                                                                     |
| -------------- | ---------------------------------------------------------------------------------------- |
| `400`          | パラメータが無効（例：時間形式の誤りや90日を超える範囲指定）。                           |
| `401`          | 認証エラー。APIキーが存在しないか無効です。                                             |
| `403`          | 禁止。APIキーに`Audit_Log_Query`権限がありません。                                     |
| `429`          | リクエスト過多。APIキーごとに1時間あたり60回のレート制限を超えました。                   |
