
# ユーザーのデータをエクスポート

`POST /v1/users/{user_id}:export` · 権限 `users:export`

データ主体によるアクセス要求またはデータポータビリティ要求に対応するため、1人のユーザーについてKeenAuthが保持している個人データをパッケージ化するジョブを開始します（GDPR第15条および第20条）。ジョブはバックグラウンドで実行されます。`status` が `completed` になるまで [ユーザーデータのエクスポートジョブを取得](/docs/api/management/jobs/get-user-export) をポーリングし、その後 [パッケージをダウンロード](/docs/api/management/jobs/download-user-export) してください。エンドユーザーにメールは送信されません。パッケージをエンドユーザーに届ける責任はお客様にあります。

## リクエスト

| パラメーター | 場所 | 必須 | 説明 |
|---|---|---|---|
| `user_id` | path | はい | ユーザーID。プレフィックスは `usr_` です。 |
| `Idempotency-Key` | header | いいえ | 16〜64文字の `[A-Za-z0-9_-]`。同じ認証情報から同じキーを送ると、同じジョブが返されます。 |
| `include_ip` | body | いいえ | `true` にすると、セッションおよびイベントのIPアドレスをパッケージに含めます。`audit-events:read_ip` も必要です。デフォルトは `false` です。 |

ボディは任意です。IPアドレスを含めないエクスポートの場合は `{}` を送るか、ボディを省略してください。

```json
{ "include_ip": false }
```

## レスポンス

ジョブを含む `202 Accepted`。同じ `Idempotency-Key` によるリクエストの再送では、元のジョブと `Idempotent-Replayed: true` が返されます。

```json
{
  "id": "job_01j9xk3m7q8r2s4t6v8w0y2z4e",
  "kind": "subject",
  "source": "management_api",
  "user_id": "usr_01j9xk3m7q8r2s4t6v8w0y2z4a",
  "status": "queued",
  "include_app_metadata": true,
  "include_ip": false,
  "file": null,
  "failure_reason": null,
  "requested_by": { "type": "api_key", "id": "key_01j9xk3m7q8r2s4t6v8w0y2z4b" },
  "created_at": "2026-10-28T09:00:00Z",
  "started_at": null,
  "completed_at": null,
  "expires_at": null
}
```

パッケージはZIPファイルです。

| ファイル | 内容 |
|---|---|
| `manifest.json` | スキーマバージョン、ジョブおよびユーザーのID、作成日時、ソース、その他すべてのファイルのSHA-256とレコード数。 |
| `profile.json`, `emails.json`, `phones.json` | プロフィールの項目、メールアドレス、電話番号。 |
| `metadata.json` | `user_metadata` と `app_metadata`。 |
| `identities.json` | リンクされたソーシャルおよびエンタープライズのID。 |
| `authenticators.json`, `sessions.json` | パスキーおよびその他の認証手段（シークレットは除く）、セッション。 |
| `organizations.json`, `oauth_grants.json`, `consents.json` | 組織のメンバーシップ、OAuthの認可、同意の記録。 |
| `auth_events.ndjson` | 認証イベント。1行に1つのJSONオブジェクトです。 |

パスワードのハッシュ、TOTPのシード、リカバリーコード、セッショントークン、SAMLやIDトークンの生データは含まれません。パッケージはジョブの完了後7日間保持されます。

## エラー

すべてのエラーは、安定した `code` を含む `application/problem+json` の本文で返されます。

| HTTP | `code` | 発生条件 |
|---|---|---|
| 400 | `malformed_request` | ボディまたは `Idempotency-Key` ヘッダーの形式が不正な場合。 |
| 401 | `unauthenticated` | APIキーが未指定、無効、または取り消し済みの場合。 |
| 403 | `insufficient_permissions` | キーに `users:export` 権限がない場合、または `include_ip` が `true` でキーに `audit-events:read_ip` 権限がない場合（`required_permissions` には両方が記載されます）。 |
| 404 | `not_found` | この環境にユーザーが存在しない場合、またはIDの形式が不正な場合。 |
| 422 | `idempotency_key_reuse` | `Idempotency-Key` が別のリクエストで使用された場合。 |
| 429 | `rate_limited` | この環境でエクスポートジョブが多数キューに入っているか実行中の場合、またはレート制限を超えた場合。`Retry-After` に従ってください。 |
| 503 | `service_unavailable` | 依存先が一時的に利用できない場合。後で再試行してください。 |

## 例

```bash
curl -X POST https://api.eu.keenauth.com/v1/users/usr_01j9xk3m7q8r2s4t6v8w0y2z4a:export \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Idempotency-Key: dsar-2026-10-28-0001" \
  -H "Content-Type: application/json" \
  -d '{"include_ip": false}'
```

CLI: `keenauth users export usr_01j9xk3m7q8r2s4t6v8w0y2z4a`

## 個人データ

このエンドポイントは個人データ（エンドユーザーのプロフィール）を扱います。[KeenAuth APIにおける個人データ](/docs/policies/personal-data)では、保存される内容、保存期間、削除方法について説明しています。どのフィールドにも、特別な種類の個人データ（健康、生体情報、宗教、政治的意見、性的指向）を送信しないでください。
