---
title: "Withdraw access request"
method: POST
path: "/access-requests/{request_id}:withdraw"
tags: ["Access Requests"]
---

# Withdraw access request

`POST /access-requests/{request_id}:withdraw`

Withdraw a pending access request.

## Path parameters

- `request_id` string, required

## Response `200`

Successful Response

- AccessRequestResponse — Response model for an access request envelope.
  - `actor_id` string, required
  - `approve_url` string, required
  - `created_by` string, required
  - `evaluation` EvaluationResponse — Computed evaluation of whether the caller can fulfill a request.
    - `can_fulfill` boolean, required
    - `checks` EvaluationCheckResponse[], required
      - `blocker` string, nullable
      - `check` string, required
      - `passed` boolean, required
  - `expires_at` string, date-time, required
  - `filed_at` string, date-time, required
  - `filer_owner` AccessRequestOwnerResponse — Display info for the filer's human owner (labelling only, not authorization). Server-resolved from ``filer_owner_id`` (falling back to ``created_by`` when the former is null, mirroring what consumers render) so they don't need ``users:read`` (or a roster fetch) just to label a row. Absent when the id doesn't resolve to a user (service-account filers, purged rows) or on mutation responses, which skip the enrichment.
    - `display_name` string, nullable — The owner's full name, when set on the profile.
    - `email` string, required — The owner's email address.
    - `id` string, required — The resolved owner's user id (filer_owner_id, or created_by when null).
  - `filer_owner_id` string, nullable
  - `id` string, required
  - `items` AccessRequestItemResponse[], required
    - `action` string, required
    - `already_satisfied` boolean, nullable — Whether this item's outcome is already in effect (the binding or grant it asks for already exists), letting a reviewer approve manually-fulfilled work instead of re-doing it in the wizard. Populated on single-request GETs for pending credential:bind, toolkit:bind, and scope:grant items; null when not computed (list endpoints, decided items, fulfilment-only intents, an item whose target cannot be determined, an ambiguous toolkit reference — which approval would refuse as filed — or a credential:bind whose credential is not visible to the caller). Toolkit REFERENCES are resolved under the caller's visibility, mirroring decide-time resolution, so False can also mean 'satisfied by a toolkit this caller cannot see'; explicit-id targets are probed directly.
    - `already_satisfied_by` string, nullable — For a satisfied toolkit:bind, the id of the toolkit the agent is already bound to — names the exact object so consumers can point the operator at it. Null for other item types and whenever already_satisfied is not true.
    - `applied_effects` object, nullable
    - `credential_name` string, nullable
    - `decided_at` string, date-time, nullable
    - `decided_by` string, nullable
    - `decision_reason` string, nullable
    - `id` string, required
    - `resource_id` string, nullable
    - `resource_reference` object, nullable
    - `resource_type` string, required
    - `rules` object[], nullable
    - `status` string, required
    - `to_id` string, nullable
    - `to_type` string, nullable
    - `toolkit_name` string, nullable
  - `reason` string, nullable
  - `requested_by` string, required
  - `status` string, required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Unprocessable Entity
- `500` — Internal Server Error
- `503` — Service Unavailable

## Changes

- **2026-07-31** `cf056e378281` — 2 info
  - added the optional property `items/items/already_satisfied` to the response with the `200` status
  - added the optional property `items/items/already_satisfied_by` to the response with the `200` status
- **2026-07-29** `16dd484920cc` — 1 info
  - added the optional property `filer_owner` to the response with the `200` status
- **2026-07-01** `d65fcba0d25a` — 1 info
  - endpoint added
- **2026-04-13** `76e8f6063728` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/jentic/apis/jentic-control-plane-api/changes/access-requests/:request_id:withdraw/post.md)

---

[API](https://skmtc.dev/jentic/apis/jentic-control-plane-api.md) · [All operations](https://skmtc.dev/jentic/apis/jentic-control-plane-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/jentic/jentic-control-plane-api/revisions/f4594f50f4d3/schema)
