---
title: "Restore multiple objects."
method: POST
path: "/v2/assets/bulk/restore/"
---

# Restore multiple objects.

`POST /v2/assets/bulk/restore/`

## Request

- Base URL: `https://app.iconik.io/API/files`
- URL: `https://app.iconik.io/API/files/v2/assets/bulk/restore/`
- Auth: none declared. Required headers: `Auth-Token`, `App-ID`
- TypeScript: <https://skmtc.dev/iconik/apis/iconik-files/docs/v2/assets/bulk/restore/post.ts> (a function with typed inputs; its response is checked against the schema)

Required roles:
 - can_restore_archived_formats

## Query parameters

- `allow_host_transfer` boolean

## Headers

- `Auth-Token` string, required
- `App-ID` string, required

## Request body

- BulkRestoreAssetRequestSchema
  - `destination_storage_id` string, uuid, nullable: ID of the storage to restore the assets to.
  - `objects` RestoreAssetToStorageRequest[]: List of assets to restore. Each asset should contain the asset ID and the storage ID.
    - `all_versions` boolean
    - `destination_directory_path` string, nullable
    - `formats` string[]: List of format names to transfer. If not specified, ORIGINAL will be transferred.
    - `id` string, uuid, required: ID of the object to transfer.
    - `preferred_original_storage_id` string, uuid, nullable
    - `restore_priority` 'LOW' | 'MID' | 'HIGH' | 'null', nullable: The restore tier to use when retrieving from cold storage one of LOW, MID, HIGH.
    - `version_ids` string[]: List of version IDs to transfer.
  - `parent_job_id` string, uuid, nullable: Parent job ID

## Response `202`

Restore jobs created

## Other responses

- `400`: Bad request
- `401`: Token is invalid
- `403`: Permission on storage denied
- `404`: Format or storage not found
- `409`: Format already exists on storage.
- `default`: Error response

---

[API](https://skmtc.dev/iconik/apis/iconik-files.md) - [All operations](https://skmtc.dev/iconik/apis/iconik-files/llms.txt) - [OpenAPI document](https://skmtc.dev/iconik/apis/iconik-files/revisions/ed57d13791a2?raw)
