---
title: "Rotate a federation enrollment"
method: POST
path: "/api/v1/federation/enrollments/actions/rotate"
---

# Rotate a federation enrollment

`POST /api/v1/federation/enrollments/actions/rotate`

Transactionally revokes active project-scoped grants for the spoke and installs the caller-supplied replacement token. After canonical capability normalization and token-authenticated actor resolution, an exact replay with the same replacement token, spoke instance, project, canonical capabilities, resolved actor, and adoption policy returns the same active enrollment. An attribute mismatch or revoked replacement enrollment returns 409 with code federation_enrollment_token_conflict.

## Request body

- RotateFederationEnrollmentRequestBody
  - `actor` string
  - `allow_adoption_snapshot_authors` boolean
  - `capabilities` string, required
  - `project_id` integer, required
  - `spoke_instance_uid` string, required
  - `token` string, required

## Response `200`

OK

- FederationEnrollmentOut
  - `actor` string, required
  - `capabilities` string, required
  - `created_at` string, date-time, required
  - `id` integer, required
  - `project_id` integer, nullable, required
  - `revoked_at` string, date-time
  - `spoke_instance_uid` string, required
  - `token` string
  - `updated_at` string, date-time, required

## Other responses

- `default` — Error

---

[API](https://skmtc.net/kenn-io/apis/kata.md) · [All operations](https://skmtc.net/kenn-io/apis/kata/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/kenn-io/kata/versions/d8237a47d2fc/schema)
