---
search:
  tags:
    - Training
    - PUT
seo:
  description: >-
    Records feedback for one muscle in one session, the input to next… Reference
    for the PUT /api/training/mesocycles/{id}/feedback endpoint in the skcal
    API.
sidebar:
  label: Rate a muscle
  badge: PUT
title: Rate a muscle
type: openapi-operation
---
Records feedback for one muscle in one session, the input to next week's set progression. Soreness (asked before the muscle's first exercise) is how it recovered since it was last trained; pump, joint pain, and workload are asked after its last exercise. Each is the index of an answer in the library's feedbackScales.

`PUT /api/training/mesocycles/{id}/feedback`

**Request body** (`application/json`, required)

The feedback.

- `week` (integer, required) — Week the feedback is for.
- `day` (integer, required) — Day number.
- `muscle` (string, required) — Muscle key trained that day.
- `soreness` (integer | null) — 0 never got sore, 1 healed a while ago, 2 healed just on time, 3 still sore.
- `pump` (integer | null) — 0 low, 1 moderate, 2 amazing.
- `jointPain` (integer | null) — 0 none, 1 low, 2 moderate, 3 a lot.
- `workload` (integer | null) — 0 not enough, 1 just right, 2 pushed my limits, 3 too much.

Request body example:

```json
{
  "week": 2,
  "day": 1,
  "muscle": "chest",
  "soreness": 1,
  "pump": 1,
  "jointPain": 0,
  "workload": 1
}
```

**Responses**

- `200` — The feedback was saved.
- `400` — The request body or parameters failed validation.
- `404` — No matching resource owned by the caller.

Response example, 200:

```json
{
  "ok": true,
  "week": 2,
  "day": 1,
  "exerciseName": "Barbell Bench Press",
  "muscle": "chest"
}
```
