---
title: "Reject an unworkable open request, or withdraw it from a signed-in workspace session. Applied/superseded states remain server-owned."
method: PATCH
path: "/api/v1/intents/{id}/change-requests/{requestId}"
tags: ["change requests"]
---

# Reject an unworkable open request, or withdraw it from a signed-in workspace session. Applied/superseded states remain server-owned.

`PATCH /api/v1/intents/{id}/change-requests/{requestId}`

There is no accepted state. applied is set only by the revision settlement transaction after a request-scoped repo sync satisfies the operation; unrelated body movement supersedes the request.

## Path parameters

- `id` string, required
- `requestId` string, required

## Request body

- object
  - `action` string, required — reject or withdraw. API keys may reject; only a signed-in writer may withdraw.
  - `reason` string, required — Concrete resolution reason (max 4000 chars).

## Response `200`

Open request closed with actor/principal and reason

- object

## Other responses

- `400` — Invalid action or missing reason
- `401` — Missing or invalid API key/session
- `403` — Lacks write permission, or an API key attempted withdrawal
- `409` — Request is no longer open
- `500` — DB error closing the request

## Changes

- **2026-09-01** `a660c0d36148` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/pathmode/apis/pathmode-api/changes/api/v1/intents/:id/change-requests/:requestId/patch.md)

---

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