POST /v1/responsesreturns compressed text in OpenAI Responses format. Works with any OpenAI SDK.POST /v1/compressreturns compressed messages withcompacted_line_rangesper message, so you know exactly which lines were removed.
POST /v1/responses
OpenAI-compatible. Point your SDK at https://api.morphllm.com/v1 and call responses.create().
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
model | string | Yes | morph-compactor |
input | string or array | Yes | Text or {role, content} array |
instructions | string | No | Guides what to keep. Maps to prompt in the Morph SDK. |
Response
Examples
POST /v1/compress
POST https://api.morphllm.com/v1/compress
Returns per-message compacted_line_ranges: the 1-indexed, inclusive line ranges that were replaced with (filtered N lines) markers. If a gap between kept blocks was too small to be worth a marker, the lines stay and no range is emitted.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
messages | array | Yes | {role, content} messages to compress |
compression_ratio | float | No | Fraction to keep. 0.3 = aggressive, 0.7 = light. Default 0.5. |
preserve_recent | int | No | Keep last N messages uncompressed. Default 2. |
query | string | No | Focus query. Auto-detected from last user message if omitted. |
model | string | No | Default swe-pruner-0.6b |
Response
Examples
Errors
| Status | Meaning |
|---|---|
400 | Malformed request or input too large |
401 | Invalid API key |
503 | Model not loaded |
504 | Request timed out |