---
title: "Send or skip the reason picker. Fires `video_feedback_created`."
method: POST
path: "/api/v1/videos/{video_id}/rating/feedback"
tags: ["Videos"]
---

# Send or skip the reason picker. Fires \`video_feedback_created\`.

`POST /api/v1/videos/{video_id}/rating/feedback`

## Request

- Base URL: `https://api.avatarfactory.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.avatarfactory.io/api/v1/videos/{video_id}/rating/feedback`
- Auth: one of:
  - API key in cookie `session`
  - HTTP bearer

## Path parameters

- `video_id` integer, required

## Request body

- VideoFeedbackRequest: Body for `POST /api/v1/videos/:id/rating/feedback`. `reasons` are keys from `video_rating.REASONS`; `skipped` drops both reasons and note.
  - `note` string, nullable
  - `reasons` string[]
  - `skipped` boolean

## Response `200`

OK

- VideoRatingResponse: Response for the `/api/v1/videos/:id/rating` routes. `rating` is null until the caller has rated the video.
  - `rating` VideoRatingPayload: The caller's stored rating of a video (the Video Detail feedback strip).
    - `feedback_submitted` boolean, required
    - `note` string, nullable
    - `rating` integer, required
    - `reasons` string[], required

## Other responses

- `400`: Bad Request
- `404`: Not Found
- `409`: Conflict
- `422`: Unprocessable Entity

---

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