
# 감사 내보내기 조회

`GET /v1/audit-exports/{export_id}` · 권한 `audit-exports:read`

내보내기 작업과 상태를 반환합니다: `queued`, `running`, `completed`, `failed` 또는 `expired`.

## 요청

| 매개변수 | 위치 | 필수 | 설명 |
|---|---|---|---|
| `export_id` | path | yes | 내보내기 작업 ID이며 `aex_`로 시작합니다. |

## 응답

`200 OK`와 작업 정보를 반환합니다. 비어 있는 필드는 `null`입니다.

- `record_count`, `file`, `manifest_sha256`은 `completed` 및 `expired` 작업에만 채워집니다. `file`은 패키지 내부의 `records.ndjson.gz`를 설명합니다(`sha256`은 16진수입니다).
- `failure_reason`은 `failed` 작업에만 채워집니다: `too_many_records`, `checkpoint_unavailable`, `integrity_error` 또는 `attempts_exhausted`.
- 파일은 `expires_at`(`completed_at` + 7일)에 삭제됩니다. 이후 작업은 `expired`로 표시되며 더 이상 다운로드할 수 없습니다.

```json
{
  "id": "aex_01j9xk3m7q8r2s4t6v8w0y2z4e",
  "status": "completed",
  "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": 18240,
  "file": {
    "name": "records.ndjson.gz",
    "sha256": "9f2c4b8e1d7a3f6c0b5e8d2a4c7f1e3b6a9d0c2e5f8b1a4d7c0e3f6a9b2c5d8e",
    "size": 2381904
  },
  "manifest_sha256": "3b7e1f9c2d5a8e0b4f6c1a3d7e9b2f5c8a0d4e6b1c3f7a9e2d5b8c0f4a6e1d3b",
  "failure_reason": null,
  "created_at": "2026-10-19T09:00:00Z",
  "started_at": "2026-10-19T09:00:02Z",
  "completed_at": "2026-10-19T09:01:10Z",
  "expires_at": "2026-10-26T09:01:10Z",
  "recorded_before": "2026-10-19T09:00:00Z",
  "requested_by": {"type": "api_key", "id": "key_01j9xk3m7q8r2s4t6v8w0y2z4d"}
}
```

## 오류

모든 오류는 안정적인 `code`를 포함한 `application/problem+json` 본문입니다.

| HTTP | `code` | 발생 시점 |
|---|---|---|
| 401 | `unauthenticated` | API 키가 없거나, 잘못되었거나, 취소되었습니다. |
| 403 | `insufficient_permissions` | 키에 `audit-exports:read` 권한이 없습니다. |
| 404 | `not_found` | 작업이 없거나, 다른 환경에 속하거나, ID 형식이 잘못되었습니다. |
| 429 | `rate_limited` | 호출 한도를 초과했습니다. `Retry-After`를 준수하십시오. |
| 503 | `service_unavailable` | 종속 구성 요소를 일시적으로 사용할 수 없습니다. 나중에 다시 시도하십시오. |

## 예제

```bash
curl https://api.eu.keenauth.com/v1/audit-exports/aex_01j9xk3m7q8r2s4t6v8w0y2z4e \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

```bash
keenauth audit-exports get aex_01j9xk3m7q8r2s4t6v8w0y2z4e
```

## 개인 정보

이 엔드포인트는 개인 정보(감사 이벤트)를 다룹니다. [KeenAuth API의 개인 정보](/docs/policies/personal-data)에서 저장되는 항목, 보관 기간, 삭제 방법을 설명합니다. 어떤 필드에도 특수 범주의 개인 정보(건강, 생체 정보, 종교, 정치적 견해, 성적 지향)를 보내지 마십시오.
