---
title: "Feedback for experiment events"
method: POST
path: "/v1/experiment/{experiment_id}/feedback"
tags: ["Experiments"]
---

# Feedback for experiment events

`POST /v1/experiment/{experiment_id}/feedback`

Log feedback for a set of experiment events

## Path parameters

- `experiment_id` string, uuid, required — Experiment id

## Request body

- FeedbackExperimentEventRequest
  - `feedback` FeedbackExperimentItem[], required — A list of experiment feedback items
    - `id` string, required — The id of the experiment event to log feedback for. This is the row `id` returned by `POST /v1/experiment/{experiment_id}/insert`
    - `scores` object, nullable — A dictionary of numeric values (between 0 and 1) to log. These scores will be merged into the existing scores for the experiment event
    - `expected` unknown
    - `comment` string, nullable — An optional comment string to log about the experiment event
    - `metadata` object, nullable — A dictionary with additional data about the feedback. If you have a `user_id`, you can log it here and access it in the Braintrust UI.
    - `source` 'app' | 'api' | 'external' | 'null', nullable — The source of the feedback. Must be one of "external" (default), "app", or "api"

## Response `200`

Returns a success status

- FeedbackResponseSchema
  - `status` 'success', required

## Other responses

- `400` — The request was unacceptable, often due to missing a required parameter
- `401` — No valid API key provided
- `403` — The API key doesn’t have permissions to perform the request
- `429` — Too many requests hit the API too quickly. We recommend an exponential backoff of your requests
- `500` — Something went wrong on Braintrust's end. (These are rare.)

## Changes

- **2024-09-30** `ac2727014d93` — 5 breaking, 2 info
  - the response's body became nullable
  - the response's body became nullable
  - the response's body became nullable
  - the response's body became nullable
  - …3 more
- **2024-09-21** `1e677afe2f7b` — 1 info
  - added the media type `application/json` for the response with the status `200`
- **2024-07-23** `9eeeeb30b963` — 1 info
  - request body became optional
- **2024-05-10** `a44e16cb39fc` — 1 info
  - added the new `undefined` enum value to the request property `feedback/items/source`
- **2024-05-06** `44b51ad3239a` — 10 info
  - the request property `feedback/items/comment` became nullable
  - the request property `feedback/items/metadata` became nullable
  - the request property `feedback/items/scores` became nullable
  - the request property `feedback/items/scores/additionalProperties/` became nullable
  - …6 more

[Change history](https://skmtc.dev/braintrustdata/apis/braintrust-api/changes/v1/experiment/:experiment_id/feedback/post.md)

---

[API](https://skmtc.dev/braintrustdata/apis/braintrust-api.md) · [All operations](https://skmtc.dev/braintrustdata/apis/braintrust-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/braintrustdata/braintrust-api/revisions/9d216c8243fe/schema)
