---
title: "Archive a piece of content"
method: POST
path: "/v1/content/{contentId}/archive"
tags: ["content"]
---

# Archive a piece of content

`POST /v1/content/{contentId}/archive`

Put a piece away without deleting it. Archived content drops out of the default list and out of the writer's Content surface, and `POST /v1/content/{contentId}/restore` brings it back.

Any suggestion still proposing the piece is dismissed along with it, so nothing is left offering to send something you've filed away. A piece with a send already queued can't be archived — cancel the schedule first.

## Path parameters

- `contentId` string, required

## Request body

- object

## Response `200`

Content archived successfully

- object
  - `id` string, required — Unique identifier for this piece of content
  - `kind` string, required — What this piece is: `tweet`, `linkedin`, `newsletter`, or `x_article`
  - `title` string, required — What this piece is called in your library
  - `excerpt` string, required — First readable line of the body, for listing views
  - `status` 'draft' | 'published' | 'archived', required — Whether this piece has been delivered, is still a draft, or was archived
  - `scheduled` boolean, required — Whether a scheduled send is queued against this piece
  - `lockedReason` string, nullable, required — Why this piece can't be edited right now, or null when it can. A queued or in-flight send locks the words, because they go out exactly as written.
  - `publishedAt` string, nullable, required — ISO 8601 timestamp of the first delivery, or null
  - `url` string, nullable, required — Where this piece went live, from the same delivery `publishedAt` came from. Null when it hasn't been delivered, and null by design for a channel that publishes no page: a custom email renders into the message itself, so there is no address to link to. Never guessed — a delivery whose id isn't shaped like its channel reports null rather than a link that would 404.
  - `archivedAt` string, nullable, required — ISO 8601 timestamp of when this piece was archived, or null
  - `createdAt` string, required — ISO 8601 timestamp of creation
  - `updatedAt` string, required — ISO 8601 timestamp of the last change
  - `body` object, required — The artifact itself, in the shape its kind uses

## Other responses

- `400` — A queued send is blocking this
- `401` — Invalid or missing API key
- `404` — Content not found
- `500` — Internal server error

---

[API](https://skmtc.net/paragraph-xyz/apis/paragraph-api.md) · [All operations](https://skmtc.net/paragraph-xyz/apis/paragraph-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/paragraph-xyz/paragraph-api/revisions/d7ee6288035e/schema)
