---
title: "POST /v1/memory"
method: POST
path: "/v1/memory"
---

# POST /v1/memory

`POST /v1/memory`

Compress a conversation with Context Memory and return compressed messages and usage (no model inference)

## Request body

- MemoryRequest
  - `messages` object[], required — OpenAI-style messages array to compress
    - `role` 'system' | 'user' | 'assistant' | 'tool' | 'function', required
    - `content` string, required
  - `expiration_days` integer — Retention in days (1..365). Defaults to 30 if not provided.
  - `model_context_limit` integer — Target context size for compression (minimum enforced 10,000)

## Response `200`

Memory compression response

- MemoryResponse
  - `messages` object[], required — Compressed memory message array
    - `role` string, required
    - `content` string, required
  - `usage` object, required
    - `prompt_tokens` integer
    - `completion_tokens` integer
    - `total_tokens` integer
    - `prompt_tokens_details` object
      - `cached_tokens` integer

## Other responses

- `400` — Bad Request - Missing or invalid messages
- `401` — Unauthorized - Invalid or missing API key
- `402` — Payment Required - Insufficient balance
- `429` — Too Many Requests - Rate limit exceeded

---

[API](https://skmtc.dev/nano-gpt/apis/nanogpt-api.md) · [All operations](https://skmtc.dev/nano-gpt/apis/nanogpt-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/nano-gpt/nanogpt-api/revisions/584e96d146b0/schema)
