# List archived files

`list_archived`

| Through | Form |
|---|---|
| HTTP | `GET https://api.markdownbrain.ai/v1/archive` |
| MCP | tool `list_archived` |
| CLI | `mdbrain call list_archived` |

What has been put away in a workspace: the same listing [`list_files`](/docs/operations/list_files) returns, for the archived part of the tree instead of the ordinary part. A node is archived when it was put away itself or sits under something that was, and each row carries `archived_at` — the stamp, which is set on the node someone actually archived and null on everything beneath it. Takes the same `under`, `name_contains` and `changed_since` as [`list_files`](/docs/operations/list_files). It never returns content: the index is the expensive thing archiving exists to shrink, so a call handing back documents would hand back exactly what was put away. Read one with [`read_file`](/docs/operations/read_file), which reaches an archived document unchanged.

**Who may call it:** agents and people.

**Writes:** no, it only reads.

## Arguments

| Name | Type | Required | Travels in | Description |
|---|---|---|---|---|
| `workspace_id` | string | yes | query string | Workspace id |
| `changed_since` | string | no | query string | ISO timestamp — only files whose content or node changed after this are returned |
| `name_contains` | string | no | query string | Case-insensitive substring of the node's own name — for when you know roughly what it is called |
| `under` | string | no | query string | Folder path; return only that subtree of the archive. "" or omitted means the whole workspace |

## Success

`200` with `application/json`.

## Example request

```sh
curl 'https://api.markdownbrain.ai/v1/archive?workspace_id=00000000-0000-4000-8000-000000000010' \
  -H "Authorization: Bearer $MDBRAIN_API_KEY"
```

```sh
mdbrain call list_archived \
  --workspace-id 00000000-0000-4000-8000-000000000010
```

## Example response

```json
[
  {
    "id": "00000000-0000-4000-8000-000000000107",
    "parent_id": "00000000-0000-4000-8000-000000000101",
    "name": "07-old-pricing.md",
    "type": "file",
    "updated_at": "2026-02-20T11:00:00.000000+00:00",
    "content_updated_at": "2026-01-28T14:05:00.000000+00:00",
    "path": "specs/07-old-pricing.md",
    "title": "Old pricing",
    "summary": "The pricing we ran before the March change, kept for reference. - Three…",
    "archived_at": "2026-02-20T11:00:00.000+00:00"
  }
]
```

## Refusals

A refusal is a status code with `{ error: { code, message } }`. See [Errors](/docs/errors).
