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

# Amend access request

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

Amend pending items on an access request.

## Path parameters

- `request_id` string, required

## Request body

- AmendRequest — Request body for the :amend verb.
  - `items` AmendItemSchema[], required
    - `item_id` string, required
    - `resource_id` string, nullable
    - `rules` JenticOneControlWebSchemasAccessRequestsPermissionRuleSchema[], nullable
      - `effect` 'allow' | 'deny' | 'require-approval', required
      - `match_mode` 'regex' | 'prefix' | 'exact' — How `path` is interpreted: `regex` (full-match), `prefix` (string prefix), or `exact` (equality). Defaults to `regex` for backwards compatibility.
      - `methods` string[], nullable — HTTP methods to match (case-insensitive). None matches all.
      - `operations` string[], nullable — OpenAPI operation IDs to match. None matches all operations.
      - `path` string, nullable — Path pattern to match. Interpreted per `match_mode`: `regex` uses full-match semantics (the pattern must describe the whole path); `prefix` and `exact` are literal. None matches all paths.
    - `to_id` string, nullable

## 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

---

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