監査エクスポートを作成
POST /v1/audit-exports · 権限 audit-exports:write
条件に一致する監査レコードを、KeenAuth を信頼せずに検証できる署名付きパッケージへ書き出すジョブをキューに登録します。ジョブは 202 Accepted で返されます。続けて 監査エクスポートを取得 で状態を確認し、監査エクスポートをダウンロード でファイルを取得してください。
エクスポートを作成できるのは API キー(シークレットキーまたは制限付きキー)のみです。ジョブには、そのキーが requested_by として記録されます。環境はキーから決まります。
リクエスト
Idempotency-Key は必須です(16〜64 文字、A-Z a-z 0-9 _ -)。同じキーと同じボディで送信すると、最初のジョブが Idempotent-Replayed: true とともに返されます。同じキーで異なるボディを送信すると、422 idempotency_key_reuse で失敗します。SDK と CLI がこのヘッダーを自動的に設定します。
フィルターは 監査イベントを一覧表示 と同じです。省略したフィールドはフィルターされません。相違点は次のとおりです。
| フィールド | 型 | 説明 |
|---|---|---|
stream |
string | admin(既定値)または application。 |
from |
RFC 3339 | 下限(この値を含む)。既定値は保持期間の開始時点です。92 日の制限はありません。パッケージには最大 5,000 万行(プレースホルダーを含む)まで含められます。 |
to |
RFC 3339 | 上限(この値を含まない)。既定値は現在時刻です。未来の時刻は指定できません。 |
action、category、actor_type、actor_id、target_type、target_id、org_id、outcome、request_id、correlation_id、agent_only |
一覧のフィルターと同じです。一覧の client フィルターはここでは使用できません。client フィールドを指定すると 400 unknown_field で失敗します。 |
|
include_ip |
boolean | 13 か月以内のレコードに、IP アドレス全体とユーザーエージェントを追加します。audit-events:read_ip 権限も必要です。既定値は false です。 |
{
"stream": "admin",
"from": "2026-07-01T00:00:00Z",
"to": "2026-10-01T00:00:00Z",
"action": "user."
}
環境ごとに同時に実行されるジョブは最大 3 件です(開発環境およびステージング環境では 1 件)。
レスポンス
202 Accepted と、status が queued のジョブが返されます。filter には、from と to の既定値を補った適用済みのフィルターが表示されます。recorded_before はスナップショットの上限です。この時刻より前に保存されたレコードのみがパッケージに含まれます。
{
"id": "aex_01j9xk3m7q8r2s4t6v8w0y2z4e",
"status": "queued",
"filter": {
"stream": "admin",
"from": "2026-07-01T00:00:00Z",
"to": "2026-10-01T00:00:00Z",
"action": "user.",
"category": null,
"actor_type": null,
"actor_id": null,
"target_type": null,
"target_id": null,
"org_id": null,
"outcome": null,
"request_id": null,
"correlation_id": null,
"agent_only": false
},
"include_ip": false,
"record_count": null,
"file": null,
"manifest_sha256": null,
"failure_reason": null,
"created_at": "2026-10-19T09:00:00Z",
"started_at": null,
"completed_at": null,
"expires_at": null,
"recorded_before": "2026-10-19T09:00:00Z",
"requested_by": {"type": "api_key", "id": "key_01j9xk3m7q8r2s4t6v8w0y2z4d"}
}
エラー
すべてのエラーは、安定した code を含む application/problem+json ボディで返されます。
| HTTP | code |
発生条件 |
|---|---|---|
| 400 | malformed_request |
Idempotency-Key が欠けているか不正である、またはボディが有効な JSON ではありません。 |
| 400 | unknown_field |
ボディに、上記に記載のないフィールドが含まれています。 |
| 400 | invalid_filter |
監査サービスがフィルターを拒否しました(例: to が未来の時刻である)。 |
| 400 | range_outside_retention |
from または to が、お使いのプランの監査保持期間の外にあります。 |
| 422 | validation_failed |
フィールドが不正です(型が誤っている、タイムスタンプが不正、to が from より後ではない、未定義の列挙値、ID の形式が不正、空文字列)。 |
| 422 | idempotency_key_reuse |
Idempotency-Key が、異なるボディで再利用されました。 |
| 401 | unauthenticated |
API キーが欠けているか、無効または取り消し済みです。 |
| 403 | insufficient_permissions |
キーに audit-exports:write 権限がないか、audit-events:read_ip 権限がないのに include_ip を使用しています(required_permissions に両方が示されます)。または、呼び出し元が API キーではありません。 |
| 429 | rate_limited |
この環境で実行中のジョブが多すぎるか、レート制限を超えました。Retry-After に従ってください。 |
| 503 | service_unavailable |
依存サービスが一時的に利用できません。後で再試行してください。 |
例
curl https://api.eu.keenauth.com/v1/audit-exports \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"from": "2026-07-01T00:00:00Z", "to": "2026-10-01T00:00:00Z", "action": "user."}'
keenauth audit-exports create --from 2026-07-01T00:00:00Z --to 2026-10-01T00:00:00Z --action user.
個人データ
このエンドポイントは個人データ(監査イベント)を扱います。KeenAuth API における個人データ では、保存される内容、保持期間、削除方法を説明しています。いずれのフィールドにも、特別な種類の個人データ(健康、生体データ、宗教、政治的意見、性的指向)を送信しないでください。