---
title: "Pin a memory item"
method: POST
path: "/v1/memory-items/{item_id}/pin"
tags: ["brain-overrides"]
---

# Pin a memory item

`POST /v1/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/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

## Query parameters

- `protected` boolean, nullable

## Headers

- `X-Tenant-Id` string, nullable

## Response `200`

Successful Response

- PinnedMemoryResponse
  - `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
  - `displaced_rule` object, nullable
  - `reaches_runs` boolean, nullable
  - `window_message` string, nullable

## 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)
