## Record product feedback

**post** `/feedback`

Records product feedback from the authenticated user. Use kind=missing_capability for blocked public API workflows such as unsupported upload-asset source hosts, and include attempted_tools when relevant. Feedback can be optionally linked to a workspace, project, or run. Mutating public API requests support an optional Idempotency-Key header for client retries; duplicate keys within two hours return idempotency_duplicate.

### Body Parameters

- `detail: string`

  Detailed description

- `kind: "feature_request" or "bug" or "technique_request" or "missing_capability"`

  Feedback kind. Use missing_capability for blocked API workflows such as unsupported asset source hosts.

  - `"feature_request"`

  - `"bug"`

  - `"technique_request"`

  - `"missing_capability"`

- `summary: string`

  Short summary

- `attempted_tools: optional array of string`

  Tools or capabilities attempted before submitting feedback

- `project_id: optional string`

  Project identifier. Use the public API ID returned by list projects; it must start with prj_.

- `run_id: optional string`

  Run identifier. It must start with run_.

- `workspace_id: optional string`

  Workspace identifier. Use the public API ID returned by list workspaces; it must start with ws_.

### Returns

- `feedback_id: string`

  Feedback identifier

- `received_at: number`

### Example

```http
curl https://app.flora.ai/api/v1/feedback \
    -H 'Content-Type: application/json' \
    -H "Authorization: Bearer $FLORA_API_KEY" \
    -d '{
          "detail": "upload-asset rejected an image hosted on scontent-lga3-1.cdninstagram.com.",
          "kind": "missing_capability",
          "summary": "Need support for Instagram CDN asset URLs"
        }'
```

#### Response

```json
{
  "feedback_id": "fb_abc123",
  "received_at": 0
}
```
