
# ユーザーデータのエクスポートをダウンロードする

`GET /v1/jobs/user-exports/{job_id}/download` · 権限 `users:export`

完了した[ユーザーデータのエクスポート](/docs/api/management/users/export)のパッケージに対する、1回限り有効なリンクを発行します。リンクを発行する前に、呼び出しごとに管理監査ログへ `user_export.downloaded` レコードが書き込まれます。

## リクエスト

| パラメータ | 指定場所 | 必須 | 説明 |
|---|---|---|---|
| `job_id` | path | はい | ジョブ ID（`job_` で始まる）。 |

`include_ip: true` を指定して作成されたジョブでは、ダウンロードする認証情報に `audit-events:read_ip` も必要です。

## レスポンス

空のボディで `302 Found` を返します。`Location` は同じホスト上の相対リンク `/downloads/user-exports/{environment_id}/{job_id}/{token}` です。レスポンスには `Cache-Control: no-store` と `Referrer-Policy: no-referrer` が含まれます。

- リンクは15分間有効で、1回だけ使用できます。転送が中断された場合でも、トークンは最初のリクエストで消費されます。新しいリンクを取得するには、この操作を再度呼び出してください。
- リンクに認証情報は不要で、トークンのみが認証情報となります。`Location` は秘密に保ち、ログに記録しないでください。
- ファイルは環境の鍵で保存時に暗号化されるため、ストレージの署名付き URL は使用されません。KeenAuth が復号してストリーミングします。

リンクに `GET` でアクセスすると、`200 OK`、`Content-Type: application/zip`、`Content-Length`、`Content-Disposition: attachment; filename="user-export-job_….zip"` が返されます。リンクプレビューがトークンを消費しないように、`HEAD` は `405` で拒否されます。ファイルの SHA-256 をジョブの `file.sha256` と照合してください。`Content-Length` バイトが届く前に接続が終了した場合、パッケージは不完全です。破棄して新しいリンクを要求してください。無効、使用済み、または期限切れのリンクは `404 not_found` を返します。

## エラー

すべてのエラーは、安定した `code` を持つ `application/problem+json` ボディで返されます。

| HTTP | `code` | 発生条件 |
|---|---|---|
| 401 | `unauthenticated` | API キーが欠落している、無効である、または取り消されています。 |
| 403 | `insufficient_permissions` | キーに `users:export` がない、またはジョブが `include_ip` 付きで作成されており、キーに `audit-events:read_ip` がありません（`required_permissions` に両方が一覧されます）。 |
| 404 | `not_found` | ジョブが存在しない、別の環境に属している、または ID の形式が不正です。リンクの場合：トークンが無効、使用済み、または期限切れです。 |
| 409 | `conflict` | ジョブがまだ完了していない、またはファイルの有効期限が切れています。 |
| 429 | `rate_limited` | レート制限を超えました。`Retry-After` に従ってください。リンク自体は IP アドレスごとに1分あたり10回のリクエストを許可します。 |
| 503 | `service_unavailable` | 依存先が一時的に利用できません。後で再試行してください。 |

## 例

```bash
curl -L -o user-export.zip \
  https://api.eu.keenauth.com/v1/jobs/user-exports/job_01j9xk3m7q8r2s4t6v8w0y2z4e/download \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

CLI はリンクを自動でたどり、パッケージをファイルに書き込みます（標準出力には書き込みません）。既存のファイルは上書きせず、書き込んだ内容のサイズと SHA-256 を表示します。

```bash
keenauth jobs user-exports download job_01j9xk3m7q8r2s4t6v8w0y2z4e --file user-export.zip
```

## 個人データ

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