---
title: "Evaluate decay candidates. dry_run=false archives them."
method: POST
path: "/v1/memories/decay"
tags: ["Lifecycle"]
---

# Evaluate decay candidates. dry_run=false archives them.

`POST /v1/memories/decay`

## Request body

- object
  - `dry_run` boolean
  - `user_id` string, required — Required. user_id.

## Response `200`

Decay evaluation + archived count.

- object — Decay evaluation (+ archive count when not dry-run).
  - `archived` number, required
  - `avg_retention_score` number, required
  - `candidates_for_archival` object[], required
    - `access_count` number, required
    - `content` string, required
    - `days_since_access` number, required
    - `id` string, required
    - `importance` number, required
    - `retention_score` number, required
  - `memories_evaluated` number, required
  - `retention_threshold` number, required

## Other responses

- `400` — Input validation error
- `500` — Internal server error
- `502` — Upstream AI provider returned an unrecoverable failure (auth, non-retryable 4xx).
- `503` — Upstream AI provider is rate-limited, quota-exhausted, or returned 5xx; consult `retryable`.

---

[API](https://skmtc.dev/atomicstrata/apis/atomicmemory-http-api.md) · [All operations](https://skmtc.dev/atomicstrata/apis/atomicmemory-http-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/atomicstrata/atomicmemory-http-api/revisions/d501daa39bb2/schema)
