---
title: "Post Rotation"
method: POST
path: "/v1/cgr/rotation"
tags: ["Governed Decisions"]
---

# Post Rotation

`POST /v1/cgr/rotation`

## Request

- Base URL: `https://api.grafomem.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.grafomem.com/v1/cgr/rotation`
- Auth: none declared

Capture an emitter-supplied key-rotation proof (Ticket #7). Stored raw,
append-only; the signature is verified at scoring time before keyA and keyB
are folded into one identity.

## Request body

- RotationProofRequest: A self-certifying key-rotation link (Ticket #7), EMITTER-supplied: the agent's OLD key signs {prev_key, new_key, seq, not_before}. Stored raw (append-only); the signature is verified at aggregation time, never trusted on write.
  - `prev_key` string, required
  - `new_key` string, required
  - `seq` integer
  - `not_before` string, nullable
  - `sig` string, required
  - `source` string

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/grafomem/apis/grafomem-cloud.md) · [All operations](https://skmtc.dev/grafomem/apis/grafomem-cloud/llms.txt) · [OpenAPI document](https://skmtc.dev/grafomem/apis/grafomem-cloud/revisions/a472af705375?raw)
