---
title: "Submit user feedback (anonymous, rate-limited)."
method: POST
path: "/v1/feedback"
tags: ["feedback"]
---

# Submit user feedback (anonymous, rate-limited).

`POST /v1/feedback`

## Request

- Base URL: `https://api.andish.ru` (the document declares no server; this is the origin it was published from)
- URL: `https://api.andish.ru/v1/feedback`
- Auth: none declared

Accept a feedback submission from the form (public, no auth required).

Writes the record to the feedback table via the superuser session and then
fires a best-effort Telegram relay.  The relay is attempted AFTER commit so
that a relay error never rolls back the DB record.

contact is stored in DB for private replies but is NEVER included in the
Telegram relay text (ADR-060 §2 hard rule, ФЗ-152 / PII).
ip_address is captured for anti-abuse but NOT logged via structlog.

## Request body

- FeedbackCreateRequest: Request body for POST /v1/feedback.
  - `message` string, required: Feedback text (required). Control characters are stripped.
  - `category` 'bug' | 'idea' | 'question', nullable: Feedback category for triaging.
  - `contact` string, nullable: Optional contact (email or @handle) for private reply. Stored in DB only — never sent to Telegram (ФЗ-152 / PII). Requires consent_fz152=true when non-empty.
  - `page_url` string, nullable: URL of the page the form was submitted from (triaging context). Must start with http:// or https://.
  - `consent_fz152` boolean: Explicit consent to process personal contact data per ФЗ-152 (Russian law). Required when contact is provided — request is rejected with 422 if False.

## Response `202`

Feedback accepted — stored and relayed.

- FeedbackCreateResponse: Response for 202 Accepted.
  - `status` 'accepted'
  - `message` string

## Other responses

- `422`: Validation error (missing message, too long, etc.).
- `429`: Rate limit exceeded (10 req/min per IP).

---

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