---
title: "DEPRECATED alias of POST /api/credits/admin/deny"
method: POST
path: "/api/zai-keys/admin/deny"
tags: ["keys"]
deprecated: true
---

# DEPRECATED alias of POST /api/credits/admin/deny

`POST /api/zai-keys/admin/deny`

## Request

- Base URL: `https://www.immersivecommons.com`
- URL: `https://www.immersivecommons.com/api/zai-keys/admin/deny`
- Auth: one of:
  - API key in cookie `__session`
  - HTTP bearer

> **Deprecated.**

Deprecated 2026-09-15 (IC Credits rename); removed one release later. A thin re-export of POST /api/credits/admin/deny. Move to the new path.

## Request body

- ZaiKeyDenyRequest
  - `request_id` string, required: The pending request to deny.
  - `reason` string: Free text for the audit trail; trimmed to 400 characters.
  - `confirm` boolean: Omit or false for a dry-run preview; true denies. Default false.

## Response `200`

Same as POST /api/credits/admin/deny.

- ZaiKeyDenyResponse
  - `ok` boolean, required
  - `dry_run` boolean: True on the preview call.
  - `request_id` string
  - `action` string: The verb the preview describes — deny.
  - `was_pending` boolean: False when the request had already been denied.
  - `message` string: Human-readable note on the preview.

## Other responses

- `400`: Invalid body.
- `401`: No auth.
- `403`: Not an operator / scope not authorized.
- `404`: No such request.
- `409`: Already approved.
- `429`: Per-actor daily review cap reached.

---

[API](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api.md) · [All operations](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api/revisions/be67c1f67c27?raw)
