---
title: "Deny Request"
method: POST
path: "/agent-keys/requests/{request_id}/deny"
tags: ["agent-keys"]
---

# Deny Request

`POST /agent-keys/requests/{request_id}/deny`

## Request

- Base URL: `https://app.zeno-works.ch` (the document declares no server; this is the origin it was published from)
- URL: `https://app.zeno-works.ch/agent-keys/requests/{request_id}/deny`
- Auth: none declared

*No, that was not me.* A state of its own, deliberately.

Without it a refusal lands as a timeout, and a person saying no reads to the waiting
agent as *try again* — which is the whole reason `denied` exists in the state
machine. The claim route reports it as terminal.

**Bound to the session user's ADDRESS, not to `user_id`.** This route used to be open
to any session, and that was the right call while it was the only one available: a
pairing row has no `user_id` until somebody approves it, so requiring ownership would
have made the request nobody has approved — the only kind an attacker starts — the one
kind nobody can refuse. The address closes that gap without reopening it: an unapproved
row is now attributable to the mailbox it names, so the person it was aimed at can
refuse it and nobody else can.

## Path parameters

- `request_id` string, required

## Headers

- `authorization` string, nullable

## Cookies

- `access_token` string, nullable

## Response `200`

Successful Response

- PairingApproveOut: Approval's answer. **May carry the key itself** — the manual fallback. If the agent is gone (context compacted, client restarted) the page shows the key once. Having the user paste a *secret* so the agent can exchange it for a key adds a round trip and no security: both are bearer credentials.
  - `status` string
  - `api_key` string, nullable
  - `purpose` string, nullable
  - `company_id` string, nullable

## Other responses

- `422`: Validation Error

---

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