---
title: "Admin Refresh Calibration Anchors"
method: POST
path: "/api/v1/admin/clients/{client_id}/refresh-calibration-anchors"
tags: ["admin"]
---

# Admin Refresh Calibration Anchors

`POST /api/v1/admin/clients/{client_id}/refresh-calibration-anchors`

## Request

- Base URL: `https://api.nudgelink.co` (the document declares no server; this is the origin it was published from)
- URL: `https://api.nudgelink.co/api/v1/admin/clients/{client_id}/refresh-calibration-anchors`
- Auth: HTTP bearer

§2.3c (learning loop): rebuild this client's ICP calibration anchors from
their real accept/reply/reject decisions, so scoring calibrates to who they
actually want. Gated by ``feature_calibration_learning`` (makes a Claude call
+ overwrites the generated anchors). Returns what it did (or why it didn't:
no ICP / not enough decisions / no anchors produced).

## Path parameters

- `client_id` string, uuid, required

## Response `200`

Successful Response

- RefreshAnchorsResponse
  - `updated` boolean, required
  - `reason` string, nullable
  - `counts` object, nullable
  - `anchors` object[], nullable

## Other responses

- `422`: Validation Error

---

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