
# Kullanıcı veri dışa aktarımını indir

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

Tamamlanmış bir [kullanıcı veri dışa aktarımının](/docs/api/management/users/export) paketi için tek kullanımlık bir bağlantı verir. Her çağrı, bağlantı verilmeden önce yönetim denetim günlüğüne bir `user_export.downloaded` kaydı yazar.

## İstek

| Parametre | Konum | Zorunlu | Açıklama |
|---|---|---|---|
| `job_id` | path | evet | `job_` önekli iş kimliği. |

`include_ip: true` ile oluşturulan bir iş, indiren kimlik bilgisinde ayrıca `audit-events:read_ip` iznini de gerektirir.

## Yanıt

Gövdesi boş bir `302 Found`. `Location`, aynı ana makinedeki göreli bir bağlantıdır: `/downloads/user-exports/{environment_id}/{job_id}/{token}`. Yanıt `Cache-Control: no-store` ve `Referrer-Policy: no-referrer` içerir.

- Bağlantı 15 dakika geçerlidir ve yalnızca bir kez çalışır: belirteç, aktarım kesilse bile ilk istekte harcanır. Yeni bir bağlantı için bu işlemi yeniden çağırın.
- Bağlantı kimlik bilgisi gerektirmez; belirteç tek kimlik bilgisidir. `Location` değerini gizli tutun ve günlüğe kaydetmeyin.
- Dosya, ortamın anahtarıyla bekleme durumunda şifrelenir; bu nedenle depolama alanının önceden imzalı bir URL'si kullanılmaz; KeenAuth dosyanın şifresini çözer ve akıtır.

Bağlantıyı `GET` ile izlemek, `Content-Type: application/zip`, `Content-Length` ve `Content-Disposition: attachment; filename="user-export-job_….zip"` başlıklarıyla `200 OK` döndürür. `HEAD` isteği `405` ile reddedilir, böylece bağlantı önizlemeleri belirteci harcamaz. Dosyanın SHA-256 değerini işin `file.sha256` değeriyle karşılaştırın. `Content-Length` kadar bayt ulaşmadan bağlantı sona ererse paket eksiktir; bunu atın ve yeni bir bağlantı isteyin. Geçersiz, kullanılmış veya süresi dolmuş bir bağlantı `404 not_found` döndürür.

## Hatalar

Her hata, kararlı bir `code` içeren bir `application/problem+json` gövdesidir.

| HTTP | `code` | Ne zaman |
|---|---|---|
| 401 | `unauthenticated` | API anahtarı eksik, geçersiz veya iptal edilmiş. |
| 403 | `insufficient_permissions` | Anahtarda `users:export` izni yok ya da iş `include_ip` ile oluşturulmuş ve anahtarda `audit-events:read_ip` izni yok (`required_permissions` ikisini de listeler). |
| 404 | `not_found` | İş mevcut değil, başka bir ortama ait veya kimlik hatalı biçimde. Bağlantıda: belirteç geçersiz, kullanılmış veya süresi dolmuş. |
| 409 | `conflict` | İş henüz tamamlanmadı ya da dosyasının süresi doldu. |
| 429 | `rate_limited` | Hız sınırı aşıldı; `Retry-After` değerine uyun. Bağlantının kendisi IP adresi başına dakikada 10 isteğe izin verir. |
| 503 | `service_unavailable` | Bir bağımlılık geçici olarak kullanılamıyor; daha sonra yeniden deneyin. |

## Örnek

```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 bağlantıyı kendisi izler, paketi bir dosyaya yazar (asla standart çıktıya yazmaz), mevcut bir dosyanın üzerine yazmayı reddeder ve yazdığı verinin boyutunu ve SHA-256 değerini yazdırır:

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

## Kişisel veriler

Bu uç nokta kişisel veri içerir: son kullanıcı profili. [KeenAuth API'lerinde kişisel veriler](/docs/policies/personal-data) neyin saklandığını, ne kadar süre tutulduğunu ve nasıl silindiğini açıklar. Hiçbir alanda özel nitelikli kişisel verileri (sağlık, biyometrik veriler, din, siyasi görüşler, cinsel yönelim) göndermeyin.
