---
title: "Restore an archived collection"
method: POST
path: "/collections.restore"
tags: ["Collections"]
---

# Restore an archived collection

`POST /collections.restore`

## Request

- Base URL: `https://app.getoutline.com/api`
- URL: `https://app.getoutline.com/api/collections.restore`
- Auth: one of:
  - HTTP bearer
  - OAuth 2
    - Authorization code: `https://app.getoutline.com/oauth/authorize`
    - Token URL: `https://app.getoutline.com/oauth/token` scopes: `read`, `write`

Restore a previously archived collection, making it and the documents within it visible in the sidebar and search results once again.

## Request body

- object
  - `id` string, uuid, required: Unique identifier for the collection.

## Response `200`

OK

- object
  - `data` Collection
    - `id` string, uuid: Unique identifier for the object.
    - `url` string: The relative URL path at which the collection can be accessed.
    - `urlId` string: A short unique identifier that can be used to identify the collection instead of the UUID.
    - `name` string: The name of the collection.
    - `description` string, nullable: A description of the collection, may contain markdown formatting
    - `data` object, nullable: The collection description as rich-text JSON, when available.
    - `sort` object: The sort of documents in the collection. Note that not all API responses respect this and it is left as a frontend concern to implement.
      - `field` string
      - `direction` 'asc' | 'desc'
    - `index` string, nullable: The position of the collection in the sidebar
    - `color` string, nullable: A color representing the collection, this is used to help make collections more identifiable in the UI. It should be in HEX format including the #
    - `icon` string, nullable: A string that represents an icon in the outline-icons package or an emoji
    - `ownerId` string, uuid, nullable: The identifier of the user who owns this collection when it is a personal collection. This is `null` for regular shared collections.
    - `permission` 'read' | 'read_write'
    - `templateManagement` 'read' | 'read_write'
    - `sharing` boolean: Whether public document sharing is enabled in this collection
    - `commenting` boolean, nullable: Whether commenting is enabled in this collection
    - `createdAt` string, date-time: The date and time that this object was created
    - `updatedAt` string, date-time: The date and time that this object was last changed
    - `deletedAt` string, date-time, nullable: The date and time that this object was deleted
    - `archivedAt` string, date-time, nullable: The date and time that this object was archived
    - `archivedBy` User
      - `id` string, uuid: Unique identifier for the object.
      - `name` string: The name of this user, it is migrated from Slack or Google Workspace when the SSO connection is made but can be changed if necessary.
      - `avatarUrl` string, uri: The URL for the image associated with this user, it will be displayed in the application UI and email notifications.
      - `color` string: A color representing the user, used in the UI for avatars without an image.
      - `email` string, email: The email associated with this user, it is migrated from Slack or Google Workspace when the SSO connection is made but can be changed if necessary.
      - `role` 'admin' | 'member' | 'viewer' | 'guest'
      - `isSuspended` boolean: Whether this user has been suspended.
      - `lastActiveAt` string, date-time, nullable: The last time this user made an API request, this value is updated at most every 5 minutes.
      - `timezone` string, nullable: The timezone this user has registered.
      - `createdAt` string, date-time: The date and time that this user first signed in or was invited as a guest.
      - `updatedAt` string, date-time: The date and time that this user was last updated.
      - `deletedAt` string, date-time, nullable: The date and time that this user was deleted, if applicable.
      - `invitedBy` User (recursive)
    - `deprecatedReason` string, nullable: The reason the collection was archived or deleted, if one was provided.
    - `sourceMetadata` object, nullable: Metadata about the external source this collection was imported from, if any.
      - `externalId` string
      - `externalName` string
      - `createdByName` string
  - `policies` Policy[]
    - `id` string, uuid: Unique identifier for the object this policy references.
    - `abilities` object: The abilities that are allowed by this policy, if an array is returned then the individual ID's in the array represent the memberships that grant the ability.

## Other responses

- `400`: The request failed one or more validations.
- `401`: The API key is missing or otherwise invalid.
- `403`: The current API key is not authorized to perform this action.
- `404`: The specified resource was not found.
- `429`: The request was rate limited.

## Changes

- **2026-10-16** `c09b7940e788`: 1 info
  - added the optional property `data/ownerId` to the response with the `200` status
- **2026-09-20** `a75820943fbb`: 1 info
  - added the optional property `data/deprecatedReason` to the response with the `200` status
- **2026-09-05** `6287bce7caad`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/defaulr/apis/outline-api/changes/collections.restore/post.md)

---

[API](https://skmtc.dev/defaulr/apis/outline-api.md) - [All operations](https://skmtc.dev/defaulr/apis/outline-api/llms.txt) - [OpenAPI document](https://skmtc.dev/defaulr/apis/outline-api/revisions/5ddf01ffba84?raw)
