---
title: "Rotate a paid API key with its subscriber-wallet signature"
method: POST
path: "/v1/keys/recovery/claim"
tags: ["Keys"]
---

# Rotate a paid API key with its subscriber-wallet signature

`POST /v1/keys/recovery/claim`

## Request

- Base URL: `https://api.m2msentinel.com`
- URL: `https://api.m2msentinel.com/v1/keys/recovery/claim`
- Auth: none required

Atomically revokes the previous secret and returns a replacement exactly once. The tier and expiration are preserved.

## Request body

- object
  - `intentId` string, required
  - `signature` string, required

## Response `200`

Replacement key issued and previous key revoked

- IssuedKey
  - `status` string
  - `message` string
  - `apiKey` string: Returned exactly once for a new or recovered key. Storage uses a server-keyed HMAC-SHA-256 lookup index plus a separate randomly salted SHA-256 verifier; the plaintext key is not persisted. Paid keys can later be wallet-rotated; renewal keeps the current raw secret and omits this field.
  - `tier` string
  - `plan` Plan
    - `id` string
    - `label` string
    - `priceUsd` number, nullable
    - `monthlyCredits` integer, nullable: Hard cap per issuance-anchored 31-day access cycle. Never null for a purchasable plan.
    - `dailyCredits` integer, nullable
    - `burstPerMinute` integer, nullable
    - `sla` string, nullable
    - `purchasable` boolean
    - `description` string
    - `usdcBaseUnits` string, nullable
  - `expiresAt` string, date-time
  - `txHash` string
  - `renewed` boolean
  - `durationDays` 31 | 90 | 365

## Other responses

- `400`: Malformed input
- `401`: Missing or invalid credential, or a credential was supplied in the query string
- `409`: Challenge already consumed or target changed
- `429`: A plan burst limit or bounded public/intent retry limit was exceeded
- `503`: A required dependency is unavailable; the request failed closed

---

[API](https://skmtc.dev/m2msentinel/apis/m2m-sentinel-base-contract-capability-checks-before-you-sign.md) · [All operations](https://skmtc.dev/m2msentinel/apis/m2m-sentinel-base-contract-capability-checks-before-you-sign/llms.txt) · [OpenAPI document](https://skmtc.dev/m2msentinel/apis/m2m-sentinel-base-contract-capability-checks-before-you-sign/revisions/2dadd4e704fd?raw)
