---
title: "Get a realm export"
method: GET
path: "/realm-exports/{export_id}"
tags: ["Exports"]
---

# Get a realm export

`GET /realm-exports/{export_id}`

## Request

- Base URL: `http://localhost:8000`
- URL: `http://localhost:8000/realm-exports/{export_id}`
- Auth: API key in header `API-Key`

Returns a single realm export. Poll to observe `status` and `progress` until the export is
`completed` or `failed`; when completed, `download_url` is a presigned link valid until
`expires_at` (bounded by the 24h retention window, so a link fetched late in the window is
valid for less time). Fetch it promptly: Skycloak deletes the artifact at `expires_at`.

Required scope: `clusters:exports:read`

## Path parameters

- `export_id` string, uuid, required

## Headers

- `API-Version` '2026-06-01.beta', required

## Response `200`

The request has succeeded.

- RealmExport
  - `id` string, uuid, required
  - `cluster_id` string, uuid, required
  - `realm` string, required: The exported realm's name (Keycloak realm id).
  - `scope` 'full', required
  - `status` 'pending' | 'processing' | 'completed' | 'failed', required
  - `progress` integer, required: Percent complete, 0-100.
  - `source_version` string, nullable: Keycloak version that produced the export. An import target must run this version or newer. Only set once `status` is `completed`.
  - `sha256_checksum` string, nullable: SHA-256 checksum of the produced encrypted archive (hex). Only set once `status` is `completed`.
  - `download_url` string, uri, nullable: Time-limited presigned URL to download the encrypted archive. Only set when `status` is `completed` and `expires_at` is in the future. Skycloak does not retain the artifact past `expires_at`.
  - `expires_at` string, date-time, nullable: When the archive is deleted from storage (24h after completion).
  - `error_message` string, nullable: Failure description. Only set when `status` is `failed`.
  - `created_at` string, date-time, required
  - `completed_at` string, date-time, nullable

## Other responses

- `401`: Access is unauthorized.
- `403`: Access is forbidden.
- `404`: The server cannot find the requested resource.
- `429`: Client error
- `500`: Server error
- `501`: Server error

---

[API](https://skmtc.dev/skycloak/apis/skycloak-public-api.md) · [All operations](https://skmtc.dev/skycloak/apis/skycloak-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/skycloak/apis/skycloak-public-api/revisions/33a69e2ce35f?raw)
