> ## Documentation Index
> Fetch the complete documentation index at: https://docs.curator.interworks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Importing and Exporting

> Manual backup and migration process for transferring Curator content between installations.

We provide a simple manual backup process that can help with migrating your Curator content from one
environment to another, or to the server as a backup so you don't lose all that hard work.

## Migration Via File

This method to migrate data involves downloading a file from the source Curator and uploading it to the destination
Curator. These files can be used as backups or a simple way to pass data to the Curator support team for debugging
your specific content. The maximum file size for imports is 1.5GB. If your export file exceeds this limit, consider
breaking it into smaller pieces by exporting fewer items at a time.

***To export your Curator metadata:***

1. Login to the backend of your source Curator instance (e.g. `https://curator.example.com/backend`).
2. Navigate to **Settings** > **Curator** > **Import/Export** section using the left-hand menu.
3. Check the necessary items you need to backup. Items are grouped into category cards (such as Settings,
   Users & Access, and Content & Theme). Each card has its own "Select all" link, and the "Select All" link at
   the top selects everything. The bar at the bottom of the page shows how many items are selected.
4. Click "Export" in the bar at the bottom. This will download a file you can keep as a backup or use to
   import your settings to another Curator instance.

***To import your Curator metadata:***

1. Login to the backend of your destination Curator instance (e.g. `https://curator.example.com/backend`).
2. Navigate to **Settings** > **Curator** > **Import/Export** section using the left-hand menu.
3. Click on the "Import" tab at the top.
4. Click the "Upload" icon (upwards arrow) to locate the `.iwe` or `.iwgz` file you exported using the steps
   above, then click "Preview Import".
5. Curator analyzes the import in the background and shows a progress screen with the current phase and a
   progress bar. Large imports can take several minutes. Keep the page open; the review screen appears
   automatically when the analysis finishes. *Note: The Curator scheduler (cron), which is part of every standard
   installation, normally performs this processing. If the scheduler has not picked the job up (for example, on a
   development instance where it is not running), the page takes over and processes the import itself after about
   a minute, and a note appears asking you to keep the tab open until the import finishes. This fallback applies
   to both file-based and API-based imports.*
6. Review the import summary. Each content type shows how many items were found and how many conflict with
   existing content. Choose "Include" or "Skip" per type (or use the "Skip All" / "Include All" links), and
   resolve any conflicting items listed below the summary.
7. Click the "Import" button. Another progress screen tracks the import itself, and a results table showing
   succeeded, skipped, and failed items appears when it completes.

## Migration Via API

This method to migrate data involves using Curator's REST API from the destination Curator to request data from the
source Curator. This option can be convenient because it requires fewer steps after the initial setup.

***Retrieve an API key:***

1. Login to the backend of your source Curator instance (e.g. `https://curator.example.com/backend`).
2. Navigate to **Settings** > **Curator** > **API Keys** section using the left-hand menu.
3. Copy an API Key using the icon in the "ACTIONS" column. *Note: If the API Key has "Restrict Access" enabled, ensure
   the "export" endpoint in the "Portal Permissions" section is allowed.*

***To import your Curator metadata:***

1. Login to the backend of your destination Curator instance (e.g. `https://curator.example.com/backend`).
2. Navigate to **Settings** > **Curator** > **Import/Export** section using the left-hand menu.
3. Click on the "Import" tab at the top.
4. Click the "Use API" radio button.
5. Enter the source Curator's URL and API Key. *Note: After completing one import from the source Curator this info
   will be stored. The next time you need to migrate data you can simply select that stored data instead of re-entering
   it.*
6. Check the data types you'd like migrated. Every item of the selected types will be retrieved, but you can select
   specific items in the next page.
7. Click "Preview Import" at the bottom of the screen.
8. Curator analyzes the import in the background and shows a progress screen. Keep the page open; the review
   screen appears automatically when the analysis finishes. The same scheduler note from the file-based import
   steps above applies here: if the scheduler has not picked the job up, the page processes the import itself
   while it stays open.
9. Review the import summary, choose "Include" or "Skip" per type, and resolve any conflicting items listed
   below the summary.
10. Click the "Import" button. A results table showing succeeded, skipped, and failed items appears when the
    import completes.

## Automatic Exports

Alongside the manual export above, Curator keeps a rolling set of automatic exports: scheduled `.iwe` snapshots
of your metadata that you can restore or download at any time. These are listed on the **Automatic Exports** tab
of the Import/Export page.

***To view, restore, or download an automatic export:***

1. Login to the backend of your Curator instance (e.g. `https://curator.example.com/backend`).
2. Navigate to **Settings** > **Curator** > **Import/Export** using the left-hand menu, then open the
   **Automatic Exports** tab.
3. Each export is listed with the date it was taken and its file size. Use the "Restore Export" icon to restore
   Curator to that point in time, click the export name to download the file, or use the "Delete Export" icon to
   remove it.
4. Click "Take New Export" to generate a new automatic export immediately.

***To set the number of exports to retain:***

By default, Curator keeps automatic exports based on the free space available on your server. You can instead cap
retention to a fixed number of exports.

1. On the **Automatic Exports** tab, click the gear icon next to "Take New Export" to open the **Export Settings**
   popup.
2. Set **Number of exports to retain** to how many of the most recent exports you want to keep (1 through 10),
   then click "Save".
3. After each automatic export runs, Curator keeps only that many of the most recent exports and removes the
   older ones. Select **Use default (disk-based)** to return to keeping exports based on available disk space.

<Note>
  On Curator SaaS (InterWorks-hosted) instances, automatic exports are stored in S3 and protected by S3 Object Lock,
  so they are retained indefinitely and cannot be deleted through Curator. The **Export Settings** retention option
  is therefore not shown on SaaS deployments. See
  [Curator Backup](/upgrading_migration/backups/curator_backup) for more on SaaS backup retention.
</Note>

## Permissions

Each backend user in Curator can be assigned permissions for handling certain content. If your user doesn't have
permissions to make changes to the content included in an import it will be filtered out of the data. You can
request these permissions be added by your Curator administrator or have them process the import.

## Troubleshooting

If an import returns an error, no data, or unexpectedly missing items, work through the relevant section below.

### API Import Issues

If an API import returns an error or no data, work through the following checks in order:

1. **Verify the API key is still valid.** Login to the source Curator backend, navigate to
   **Settings** > **Curator** > **API Keys**, and confirm the key you're using is listed and has not been rotated or
   deleted.
2. **Check restricted-key export permissions.** If the API key has "Restrict Access" enabled, open it and confirm
   the "export" endpoint in the "Portal Permissions" section is allowed. Without this permission the source Curator
   will reject the request even though the key itself is valid.
3. **Confirm the source URL is reachable from the destination.** From the destination server (not your local
   machine), verify the source Curator URL resolves and responds. Firewalls, VPN-only networks, and self-signed
   certificates on the source can all block the request.
4. **Check destination backend user permissions.** The backend user running the import must have permission to
   create or update every content type included in the import. See the [Permissions](#permissions) section for details
   on how items without sufficient permissions are handled.

### File Size Limit

The maximum file size for imports is 1.5GB. If your export file exceeds this limit, break it into smaller pieces
by exporting fewer items at a time and importing each piece separately.

### Items Missing After a Successful Import

If the import completes without errors but some expected items are missing on the destination, this is almost
always caused by permission filtering. Items the destination backend user does not have permission to create or
update are silently skipped rather than failing the import. Re-run the import as a high level administrator, or have your
Curator administrator grant the necessary permissions to your user. See the [Permissions](#permissions) section
above for more detail.
