Access requests

Withdraw an access request

Withdraws an access request. Only the request’s own requester may withdraw it, and only while it is still pending. No body, and no permission beyond membership. Someone else’s request id is 404; a request that already left pending is 409.

post/access-request/{id}/withdraw

Request

  • Base URL: https://api.elaichi.ai
  • URL: https://api.elaichi.ai/access-request/{id}/withdraw
  • Auth: HTTP bearer

Path parameters

idstring required

Access request id (areq_…).

Headers

X-Organization-Idstring

Target organization (org_…). Required for cookie/session auth on org-scoped routes; optional for API tokens, which carry their organization, and rejected when it names a different one.

Response

Withdrawn (self view, can_withdraw: false)

idstring

Access request id (areq_…).

requester_user_idstring

User id (usr_…) of whoever filed the request.

toolstring

What was asked for: a tool name, or a connector slug when resource_type is "connector".

resource_type'tool' | 'connector'
connector_slugstring nullable

On a "tool" request, the connector the tool lives on when the request named one — what makes approving it able to lift the restriction on that tool. Always null on a "connector" request.

connector_labelstring

Display name of connector_slug (or, on a "connector" request, of tool itself), falling back to the slug. Present on every view: the requester reads it in the self view exactly as an admin does in the queue.

connector_logostring nullable

The connector’s logo for the slug connector_label names. null when the catalog has no logo for the slug; present under the same conditions as connector_label.

reason'permission' | 'restriction'

What kind of refusal this request is asking to be reconsidered.

permissionstring nullable

Present only when reason is "permission" — never populated for a "restriction"-reason request, on either write or read. That is the disclosure rule: a restriction refusal never names the rule that blocked the caller, so this field must not become a second channel for the same fact.

notestring nullable

Optional free text from the requester, ≤ 2000 characters.

status'pending' | 'approved' | 'denied' | 'withdrawn'
created_atstring date-time
resolved_atstring date-time nullable
resolved_by_user_idstring nullable

User id (usr_…) of the admin who resolved it.

resolution_notestring nullable
restriction_liftedboolean nullable

What an approval did to the requester’s access, on every view: true when it wrote a grant, false when the request was approved and nothing was lifted (a resolution: "policy" approval, access that was already open, or a shape no grant can open), null when the question does not apply (not approved, a permission request, a tool request with no connector_slug). It never says why; the connector’s own restricted, restricted_by and restricted_inherited_from do, within what the caller may be told. An older approval may read false for access it did give, so read the connector’s restricted for the live answer. It is the outcome at resolve time: a later revoke, expiry or replacement does not change it.

updated_atstring date-time
can_withdrawboolean

True when the caller is the requester and status is still pending.

Changes

No recorded changes to this operation across all 1 revision of this API.