# captureFeedback

Source: /openapi/thomas-federated.openapi.json

## Operation

| Method | URL |
|---|---|
| POST | https://api.thomas.co/v1/feedback |

| Field | Value |
|---|---|
| operationId | captureFeedback |
| method | POST |
| server | https://api.thomas.co/v1 |
| path | /feedback |
| tags | `Feedback` |
| summary | Capture one content-feedback event — a rating OR a rating-less engagement event (one action = one row). No read path exists. |
| badges | `{"name":"Viewer"}`, `{"name":"Admin"}`, `{"name":"Owner"}` |

## Request Parameters

None.

## Request Body

None.

## Responses

| Status | Description | Schema refs |
|---|---|---|
| 202 | Feedback capture accepted (empty body) |  |
| 400 | Invalid feedback capture payload | #/components/schemas/ApiErrorResponseDto |
| 401 | Invalid or missing authentication token (AUTH_TOKEN_INVALID) | #/components/schemas/ApiErrorResponseDto |
| 403 | A self-perspective rating targets someone other than the caller | #/components/schemas/ApiErrorResponseDto |
| 404 | Feedback subject is not a live member of the current tenant | #/components/schemas/ApiErrorResponseDto |

## Artifact Examples

### Response 400 example

```json
{
  "statusCode": 400,
  "message": "Validation failed",
  "error": "HTTP_BAD_REQUEST"
}
```

### Response 401 example

```json
{
  "statusCode": 401,
  "message": "Invalid or missing authentication token",
  "error": "AUTH_TOKEN_INVALID"
}
```

### Response 403 example

```json
{
  "statusCode": 403,
  "message": "A self-perspective feedback rating may only target the caller's own content",
  "error": "FEEDBACK_NOT_SUBJECT"
}
```

### Response 404 example

```json
{
  "statusCode": 404,
  "message": "Feedback subject does not exist",
  "error": "FEEDBACK_SUBJECT_NOT_FOUND"
}
```
