---
title: "Pin a memory as a standing rule"
method: POST
path: "/v1/admin/memory-items/{item_id}/pin"
tags: ["admin"]
---

# Pin a memory as a standing rule

`POST /v1/admin/memory-items/{item_id}/pin`

## Request

- Base URL: `https://api.patricia.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.patricia.app/v1/admin/memory-items/{item_id}/pin`
- Auth: HTTP bearer

Make a memory a standing rule. Every run in its scope carries up to 10 pinned memories, protected rules first and then newest unprotected pins, whatever the run asks. Protected rules count against this limit. A pin protects the memory from Curator decay, prune, and consolidation. A personal memory stands only in a run that answers its owner in the owner's own chat-platform direct message. A meeting memory keeps that protection but reaches a run only through ordinary recall.

## Path parameters

- `item_id` string, uuid, required

## Response `200`

Successful Response

- ModelsBrainMemoryItemFullValidator: Response shape for memory reads and pin, unpin and restore. The raw vector is never exposed.
  - `id` string, uuid, required
  - `tenant_id` string, uuid, required
  - `scope_code` 'tenant' | 'group' | 'conversation' | 'actor', required
  - `scope_ref` string, nullable
  - `kind_code` 'fact' | 'preference' | 'entity' | 'event' | 'lesson' | 'summary', required
  - `content` string, required
  - `salience` number, required
  - `hit_count` integer, required
  - `last_used_at` string, date-time, nullable
  - `expires_at` string, date-time, nullable
  - `pruned_at` string, date-time, nullable
  - `pinned` boolean, required
  - `protected` boolean
  - `source` string, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden. Inspect response body `code` for the specific reason (for example: PERMISSION_DENIED, EMAIL_NOT_VERIFIED, TENANT_ACCESS_REQUIRED, ROLE_UNRESOLVED)
- `404`: Not found
- `422`: Validation error

---

[API](https://skmtc.dev/patricia/apis/patricia-api.md) · [All operations](https://skmtc.dev/patricia/apis/patricia-api/llms.txt) · [OpenAPI document](https://skmtc.dev/patricia/apis/patricia-api/revisions/0dfb44495ea1?raw)
