---
title: "POST /v1/feedback/capture"
method: POST
path: "/v1/feedback/capture"
---

# POST /v1/feedback/capture

`POST /v1/feedback/capture`

## Request

- Base URL: `https://thumbgate.ai`
- URL: `https://thumbgate.ai/v1/feedback/capture`
- Auth: HTTP bearer

## Request body

- CaptureFeedbackRequest
  - `signal` 'up' | 'down' | 'positive' | 'negative', required
  - `context` string: One-sentence reason describing what worked or failed
  - `whatWentWrong` string
  - `whatToChange` string
  - `whatWorked` string
  - `rubricScores` RubricScore[]
    - `criterion` string, required
    - `score` number, required
    - `evidence` string
    - `judge` string
  - `guardrails` object
    - `testsPassed` boolean
    - `pathSafety` boolean
    - `budgetCompliant` boolean
  - `tags` union: Optional domain tags. If omitted, ThumbGate infers one from the feedback text before promotion.
    - string[]
    - string
  - `skill` string
  - `source` 'chatgpt_gpt': Attribution marker for ThumbGate analytics. The published ThumbGate GPT should send `chatgpt_gpt` so owner dashboards can distinguish GPT Action calls from local API calls.

## Response `200`

Feedback accepted and promoted to memory

## Other responses

- `401`: Unauthorized
- `422`: Feedback logged only; clarification required or promotion rejected

---

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