---
title: "Compact response"
method: POST
path: "/v1/responses/compact"
tags: ["Responses"]
---

# Compact response

`POST /v1/responses/compact`

Compacts a conversation by summarizing older items to free up context window space. Returns a compaction item containing the generated summary.

## Request body

- object
  - `input` union — Input to compact: a string or an array of input items (messages, files, etc.).
    - string — A simple text string.
    - object[] — An array of input items.
      - `content` string — The content of the item.
      - `id` string — The ID of the item.
      - `role` 'user' | 'assistant' | 'system' — The role of the message sender (for message items).
      - `type` 'message' | 'function_call' | 'function_call_output' | 'item_reference' | 'reasoning' | 'custom_tool_call' | 'custom_tool_call_output' | 'compaction' — The type of item.
  - `instructions` string — Custom instructions for the compaction summarization.
  - `model` string — The model to use for compaction in provider/model format (e.g. openai/gpt-4o). Required.
  - `previous_response_id` string — The ID of a previous response to continue from.
  - `prompt_cache_key` string — Key for prompt caching across requests.

## Response `200`

Compaction completed successfully.

- object
  - `created_at` integer, required — Unix timestamp (seconds) when the response was created.
  - `id` string, required — The ID of the compaction response.
  - `object` 'response.compaction', required — Always "response.compaction".
  - `output` PublicCompactionItem[], nullable, required — The compacted list of output items.
    - `content` string — Not populated by this endpoint.
    - `created_by` string — The model that created this summary.
    - `encrypted_content` string — The summary content generated by the model.
    - `id` string — The ID of the compaction item.
    - `type` 'compaction', required — Always "compaction".
  - `usage` PublicUsage, required
    - `input_cost` number, double — Cost (USD) of input tokens. Present when billing was computed for this response.
    - `input_tokens` integer, required
    - `input_tokens_details` InputTokensDetails, required
      - `cache_creation_1h_tokens` integer
      - `cache_creation_5m_tokens` integer
      - `cache_creation_tokens` integer, required
      - `cache_write_tokens` integer, required
      - `cached_tokens` integer, required
    - `output_cost` number, double — Cost (USD) of output tokens. Present when billing was computed for this response.
    - `output_tokens` integer, required
    - `output_tokens_details` OutputTokensDetails, required
      - `reasoning_tokens` integer, required
    - `server_tool_use` ServerToolUseDetails
      - `advisor_requests` integer
      - `code_interpreter_sessions` integer
      - `datetime_requests` integer
      - `fusion_requests` integer
      - `image_generation_calls` integer
      - `search_models_requests` integer
      - `shell_commands` integer
      - `subagent_requests` integer
      - `web_fetch_requests` integer
      - `web_search_requests` integer
    - `total_cost` number, double — Total cost (USD) of the response. Present when billing was computed for this response.
    - `total_tokens` integer, required
    - `web_search_requests` integer

## Other responses

- `400` — Model is required or request is invalid.
- `401` — Unauthorized.
- `502` — Failed to compact conversation.

## Changes

> 350 revisions in range; 136 not diffed.

- **2026-09-28** `3c7d859558ee` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/orq-ai/apis/orq-ai-api/changes/v1/responses/compact/post.md)

---

[API](https://skmtc.dev/orq-ai/apis/orq-ai-api.md) · [All operations](https://skmtc.dev/orq-ai/apis/orq-ai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/orq-ai/apis/orq-ai-api/revisions/3c7d859558ee?raw)
