---
title: "Compress History Stream"
method: POST
path: "/api/compress/history/stream"
tags: ["Compression-Agentic"]
---

# Compress History Stream

`POST /api/compress/history/stream`

## Headers

- `X-API-Key` string, required

## Request body

- HistoryCompressRequest — Request to compress conversation history. The service layer injects a default query when the resolved backbone requires one (GemFilter), so callers never pass a query directly.
  - `messages` HistoryMessage[], required — Conversation history to compress (list of messages, REQUIRED, max 1000)
    - `role` string, required — Message role: 'user', 'assistant', 'system', or 'tool'
    - `content` string, required — Message content
    - `name` string, nullable — Optional name for the message sender
    - `tool_call_id` string, nullable — Tool call ID for tool messages
  - `keep_recent` integer — Number of recent messages to keep uncompressed (default: 3)
  - `compression_model_name` string, nullable — Compression model to use. Defaults to DEFAULT_MODEL_HISTORY (hcc_latte_v1).
  - `target_compression_ratio` number — Target compression ratio: 0-1 (strength) or >1 for factor. Max 200. Default: 0.3
  - `source` 'demo' | 'extension' | 'sdk:python' | 'sdk:typescript' | 'sdk:curl' | 'gateway:unknown' | 'gateway:anthropic' | 'gateway:openai' | 'gateway:gemini' | 'integration:litellm' | 'integration:hermes' — Source of an API request. Format: source[:detail] - demo, extension: no detail needed - sdk:python, sdk:typescript, sdk:curl - gateway:anthropic, gateway:openai, gateway:gemini - integration:litellm, integration:hermes

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/compresr/apis/compresr-platform-api.md) · [All operations](https://skmtc.net/compresr/apis/compresr-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/compresr/compresr-platform-api/revisions/93ee959dfa51/schema)
