---
title: "Restore a soft-deleted artifact"
method: POST
path: "/v1/artifacts/{id}/restore"
tags: ["Artifacts"]
---

# Restore a soft-deleted artifact

`POST /v1/artifacts/{id}/restore`

Bring a trashed artifact back. Allocates a fresh routing + display slug (suffixed if the original was reclaimed by a re-publish while it was trashed), recreates the production deployment from the latest version, and returns the artifact detail. Caller must be the owner, or a workspace owner/admin. Only works inside the 30-day window — after that the artifact is permanently purged.

## Response `200`

Restored

- Artifact
  - `id` string
  - `name` string
  - `slug` string
  - `visibility` 'public' | 'workspace' | 'private' — 'unlisted' was retired 2026-07 — still accepted as input and treated as 'public'.
  - `moderation_status` 'approved' | 'pending' | 'blocked' — Safety review state for open visibility.
  - `allow_anon_write` boolean
  - `allow_anon_email` boolean
  - `allow_anon_agent` boolean
  - `allow_anon_collab` boolean
  - `url` string, uri
  - `thumbnail_url` string, uri
  - `is_favorite` boolean
  - `created_at` integer

## Other responses

- `400` — Artifact is not deleted
- `403` — Access denied
- `404` — Resource not found
- `409` — Artifact has no version to restore

---

[API](https://skmtc.net/shareout/apis/shareout-rest-api.md) · [All operations](https://skmtc.net/shareout/apis/shareout-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/shareout/shareout-rest-api/versions/804359ead65a/schema)
