---
title: "Revoke an API key"
method: POST
path: "/v1/web3/keys/revoke"
tags: ["Web3 Authentication"]
---

# Revoke an API key

`POST /v1/web3/keys/revoke`

## Request

- Base URL: `https://api.0xarchive.io`
- URL: `https://api.0xarchive.io/v1/web3/keys/revoke`
- Auth: none required

Revoke a specific API key by its ID. Requires a fresh SIWE challenge signed with `personal_sign` (EIP-191).

## Request body

- Web3RevokeRequest
  - `message` string, required: The SIWE message from the challenge endpoint
  - `signature` string, required: Hex-encoded signature from personal_sign (0x-prefixed)
  - `key_id` string, uuid, required: UUID of the key to revoke

## Response `200`

Key revoked successfully

- Web3RevokeResponse
  - `message` string: Confirmation message
  - `wallet_address` string: The wallet address that owned the key

## Other responses

- `401`: Authentication required: the API key is missing or invalid.
- `404`: Not found. `not_found`: the resource id is unknown. `unsupported_for_venue`: the venue does not offer this datatype (`available_on` names where it is served). `route_not_found`: no route matches the path.
- `429`: Rate limit, concurrency limit or monthly credits exceeded. See `error_code`.
- `default`: Any other error. The body is an `ErrorResponse`; branch on `error_code`. A 503 (`upstream_unavailable`) carries `Retry-After`.

---

[API](https://skmtc.dev/0xarchive/apis/0xarchive-api-2.md) · [All operations](https://skmtc.dev/0xarchive/apis/0xarchive-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/0xarchive/apis/0xarchive-api-2/revisions/27076f55595f?raw)
